diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index e822c838..e4500fd6 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -9,11 +9,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/setup-python@v4 + - uses: actions/checkout@master + with: + fetch-depth: 2 - uses: actions/setup-go@v5 with: - go-version: 1.19 + go-version-file: "go.mod" + check-latest: true - run: go install golang.org/x/tools/cmd/goimports@latest - - run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s - -b $(go env GOPATH)/bin v1.49.0 - - run: echo "PATH=$PATH:/home/runner/go/bin" >> $GITHUB_ENV - - uses: actions/checkout@v3 + - run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.59.0 - uses: pre-commit/action@v2.0.2 diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index c95973fc..1fdfffc4 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -8,12 +8,13 @@ jobs: run-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@master with: fetch-depth: 2 - uses: actions/setup-go@v5 with: - go-version: 1.19 + go-version-file: "go.mod" + check-latest: true - name: Run test and calculate coverage run: make coverage - name: Upload coverage to Codecov diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..d679ee99 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,53 @@ +{ + "run": { + "tests": false, + }, + "linters": { + "fast": false, + "enable": [ + "errcheck", + "errorlint", + "gas", + "gocritic", + "gosimple", + "govet", + "ineffassign", + "megacheck", + "misspell", + "nakedret", + "prealloc", + "revive", + "staticcheck", + "unconvert", + "unparam", + ], + "disable": [ + "unused", + ] + }, + "linters-settings": { + "revive": { + "enableAllRules": true, + "rules": [ + { + "name": "var-naming", + "arguments": [ + ["ID"] + ] + } + ] + }, + "gocritic": { + "enabled-tags": [ + "diagnostic", + "experimental", + "opinionated", + "performance", + "style", + ], + "disabled-checks": [ + "hugeParam", + ] + } + }, +} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a70840d1..6641de94 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,7 @@ repos: - id: end-of-file-fixer - id: check-yaml - repo: https://github.com/dnephin/pre-commit-golang - rev: v0.5.0 + rev: master hooks: - id: go-fmt - id: go-imports diff --git a/Makefile b/Makefile index 051ce836..4492bf96 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ all: copy-exchange-client: rm -rf exchange/* + mkdir -p exchange/health_rpc mkdir -p exchange/accounts_rpc mkdir -p exchange/auction_rpc mkdir -p exchange/campaign_rpc @@ -15,6 +16,8 @@ copy-exchange-client: mkdir -p exchange/spot_exchange_rpc mkdir -p exchange/trading_rpc + cp -r ../injective-indexer/api/gen/grpc/health/pb exchange/health_rpc/pb + cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_accounts_rpc/pb exchange/accounts_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_auction_rpc/pb exchange/auction_rpc/pb cp -r ../injective-indexer/api/gen/grpc/injective_campaign_rpc/pb exchange/campaign_rpc/pb @@ -31,10 +34,10 @@ copy-exchange-client: .PHONY: copy-exchange-client tests coverage copy-chain-types: - cp ../injective-core/injective-chain/types/*.go chain/types - rm -rf chain/types/*test.go rm -rf chain/types/*gw.go cp ../injective-core/injective-chain/crypto/ethsecp256k1/*.go chain/crypto/ethsecp256k1 rm -rf chain/crypto/ethsecp256k1/*test.go rm -rf chain/crypto/ethsecp256k1/*gw.go + cp ../injective-core/injective-chain/codec/types/*.go chain/codec/types + rm -rf chain/codec/types/*test.go rm -rf chain/codec/types/*gw.go cp ../injective-core/injective-chain/modules/auction/types/*.go chain/auction/types rm -rf chain/auction/types/*test.go rm -rf chain/auction/types/*gw.go cp ../injective-core/injective-chain/modules/exchange/types/*.go chain/exchange/types @@ -48,15 +51,22 @@ copy-chain-types: rm -rf chain/oracle/types/*test.go rm -rf chain/oracle/types/*gw.go cp ../injective-core/injective-chain/modules/peggy/types/*.go chain/peggy/types rm -rf chain/peggy/types/*test.go rm -rf chain/peggy/types/*gw.go - cp ../injective-core/injective-chain/modules/wasmx/types/*.go chain/wasmx/types - rm -rf chain/wasmx/types/*test.go rm -rf chain/wasmx/types/*gw.go + cp ../injective-core/injective-chain/modules/permissions/types/*.go chain/permissions/types + rm -rf chain/permissions/types/*test.go rm -rf chain/permissions/types/*gw.go cp ../injective-core/injective-chain/modules/tokenfactory/types/*.go chain/tokenfactory/types rm -rf chain/tokenfactory/types/*test.go rm -rf chain/tokenfactory/types/*gw.go + cp ../injective-core/injective-chain/modules/wasmx/types/*.go chain/wasmx/types + rm -rf chain/wasmx/types/*test.go rm -rf chain/wasmx/types/*gw.go cp ../injective-core/injective-chain/stream/types/*.go chain/stream/types + rm -rf chain/stream/types/*test.go rm -rf chain/stream/types/*gw.go + cp ../injective-core/injective-chain/types/*.go chain/types + rm -rf chain/types/*test.go rm -rf chain/types/*gw.go - echo "👉 Replace injective-core/injective-chain/modules with sdk-go/chain" - echo "👉 Replace injective-core/injective-chain/types with sdk-go/chain/types" - echo "👉 Replace injective-core/injective-chain/crypto with sdk-go/chain/crypto" + @echo "👉 Replace injective-core/injective-chain/modules with sdk-go/chain" + @echo "👉 Replace injective-core/injective-chain/codec with sdk-go/chain/codec" + @echo "👉 Replace injective-core/injective-chain/codec/types with sdk-go/chain/codec/types" + @echo "👉 Replace injective-core/injective-chain/types with sdk-go/chain/types" + @echo "👉 Replace injective-core/injective-chain/crypto with sdk-go/chain/crypto" tests: go test -race ./client/... ./ethereum/... diff --git a/README.md b/README.md index eae4848a..06c07e97 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ $ go mod download injectived keys unsafe-import-eth-key inj-user 5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e # run chain example -go run examples/chain/1_MsgSend/example.go +go run examples/chain/bank/1_MsgSend/example.go # run exchange example go run examples/exchange/derivatives/4_Orderbook/example.go diff --git a/auth_vote/authz_vote.go b/auth_vote/authz_vote.go index 508a7c70..77613712 100644 --- a/auth_vote/authz_vote.go +++ b/auth_vote/authz_vote.go @@ -69,7 +69,7 @@ func main() { validators := []string{"inj156t3yxd4udv0h9gwagfcmwnmm3quy0npqc7pks", "inj16nd8yqxe9p6ggnrz58qr7dxn5y2834yendward"} grantee := senderAddress.String() proposalId := uint64(375) - var msgs []sdk.Msg + var msgs = make([]sdk.Msg, 0) for _, validator := range validators { msgVote := v1beta1.MsgVote{ @@ -92,7 +92,7 @@ func main() { msgs = append(msgs, sdkMsg) } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msgs...) if err != nil { diff --git a/chain/auction/types/auction.pb.go b/chain/auction/types/auction.pb.go index d0d2e780..164a7820 100644 --- a/chain/auction/types/auction.pb.go +++ b/chain/auction/types/auction.pb.go @@ -4,9 +4,11 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" 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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -29,7 +31,7 @@ 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"` // min_next_bid_increment_rate defines the minimum increment rate for new bids - MinNextBidIncrementRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=min_next_bid_increment_rate,json=minNextBidIncrementRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_next_bid_increment_rate"` + MinNextBidIncrementRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=min_next_bid_increment_rate,json=minNextBidIncrementRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_next_bid_increment_rate"` } func (m *Params) Reset() { *m = Params{} } @@ -117,6 +119,62 @@ func (m *Bid) GetBidder() string { return "" } +type LastAuctionResult struct { + // winner describes the address of the winner + Winner string `protobuf:"bytes,1,opt,name=winner,proto3" json:"winner,omitempty"` + // amount describes the amount the winner get from the auction + Amount github_com_cosmos_cosmos_sdk_types.Coin `protobuf:"bytes,2,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Coin" json:"amount"` + // round defines the round number of auction + Round uint64 `protobuf:"varint,3,opt,name=round,proto3" json:"round,omitempty"` +} + +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} +} +func (m *LastAuctionResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LastAuctionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_LastAuctionResult.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *LastAuctionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_LastAuctionResult.Merge(m, src) +} +func (m *LastAuctionResult) XXX_Size() int { + return m.Size() +} +func (m *LastAuctionResult) XXX_DiscardUnknown() { + xxx_messageInfo_LastAuctionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_LastAuctionResult proto.InternalMessageInfo + +func (m *LastAuctionResult) GetWinner() string { + if m != nil { + return m.Winner + } + return "" +} + +func (m *LastAuctionResult) GetRound() uint64 { + if m != nil { + return m.Round + } + return 0 +} + type EventBid struct { // bidder describes the address of bidder Bidder string `protobuf:"bytes,1,opt,name=bidder,proto3" json:"bidder,omitempty"` @@ -130,7 +188,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{2} + return fileDescriptor_49edfee5f1ef4b5a, []int{3} } func (m *EventBid) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -186,7 +244,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{3} + return fileDescriptor_49edfee5f1ef4b5a, []int{4} } func (m *EventAuctionResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -243,7 +301,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{4} + return fileDescriptor_49edfee5f1ef4b5a, []int{5} } func (m *EventAuctionStart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -296,6 +354,7 @@ func (m *EventAuctionStart) GetNewBasket() github_com_cosmos_cosmos_sdk_types.Co func init() { proto.RegisterType((*Params)(nil), "injective.auction.v1beta1.Params") proto.RegisterType((*Bid)(nil), "injective.auction.v1beta1.Bid") + proto.RegisterType((*LastAuctionResult)(nil), "injective.auction.v1beta1.LastAuctionResult") proto.RegisterType((*EventBid)(nil), "injective.auction.v1beta1.EventBid") proto.RegisterType((*EventAuctionResult)(nil), "injective.auction.v1beta1.EventAuctionResult") proto.RegisterType((*EventAuctionStart)(nil), "injective.auction.v1beta1.EventAuctionStart") @@ -306,40 +365,43 @@ func init() { } var fileDescriptor_49edfee5f1ef4b5a = []byte{ - // 517 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0x3f, 0x6f, 0xd3, 0x40, - 0x18, 0xc6, 0x73, 0xb8, 0x44, 0xe4, 0x50, 0xf9, 0x73, 0xaa, 0x20, 0x6d, 0x25, 0x3b, 0xb2, 0x04, - 0x0d, 0x43, 0x6d, 0x4a, 0xb7, 0x6e, 0x18, 0x10, 0xaa, 0x04, 0xa8, 0x32, 0x4c, 0x2c, 0xd6, 0xd9, - 0xf7, 0x2a, 0xbd, 0x36, 0x77, 0x17, 0xf9, 0xce, 0x49, 0x3b, 0x22, 0x46, 0x16, 0x3e, 0x02, 0x12, - 0x1b, 0x9f, 0x82, 0xb1, 0x63, 0x47, 0xc4, 0x10, 0x50, 0xb2, 0x20, 0x46, 0x3e, 0x01, 0x8a, 0x7d, - 0x0e, 0x66, 0xeb, 0x00, 0x53, 0xf2, 0x3c, 0xf7, 0xdc, 0x73, 0xbf, 0x93, 0xef, 0xc5, 0x5b, 0x5c, - 0x1e, 0x41, 0x66, 0xf8, 0x18, 0x42, 0x5a, 0x64, 0x86, 0x2b, 0x19, 0x8e, 0x77, 0x52, 0x30, 0x74, - 0xa7, 0xd6, 0xc1, 0x28, 0x57, 0x46, 0x91, 0xf5, 0x65, 0x30, 0xa8, 0x17, 0x6c, 0x70, 0x63, 0x6d, - 0xa0, 0x06, 0xaa, 0x4c, 0x85, 0x8b, 0x7f, 0xd5, 0x86, 0x0d, 0x37, 0x53, 0x5a, 0x28, 0x1d, 0xa6, - 0x54, 0xc3, 0xb2, 0x33, 0x53, 0xdc, 0x16, 0xfa, 0x1f, 0x11, 0x6e, 0x1f, 0xd0, 0x9c, 0x0a, 0x4d, - 0xee, 0xe0, 0x6b, 0xb6, 0x33, 0x19, 0x41, 0xce, 0x15, 0xeb, 0xa2, 0x1e, 0xea, 0x3b, 0xf1, 0xaa, - 0x75, 0x0f, 0x4a, 0x93, 0x0c, 0xf1, 0xa6, 0xe0, 0x32, 0x91, 0x70, 0x62, 0x92, 0x94, 0xb3, 0x84, - 0xcb, 0x2c, 0x07, 0x01, 0xd2, 0x24, 0x39, 0x35, 0xd0, 0xbd, 0xd4, 0x43, 0xfd, 0x4e, 0x14, 0x9c, - 0x4d, 0xbd, 0xd6, 0xd7, 0xa9, 0x77, 0x77, 0xc0, 0xcd, 0x61, 0x91, 0x06, 0x99, 0x12, 0xa1, 0x25, - 0xa9, 0x7e, 0xb6, 0x35, 0x3b, 0x0e, 0xcd, 0xe9, 0x08, 0x74, 0xf0, 0x18, 0xb2, 0xf8, 0xb6, 0xe0, - 0xf2, 0x05, 0x9c, 0x98, 0x88, 0xb3, 0xfd, 0xba, 0x2f, 0xa6, 0x06, 0xf6, 0x56, 0x7e, 0x7c, 0xf0, - 0x90, 0xff, 0x16, 0x61, 0x27, 0xe2, 0x8c, 0xec, 0xe2, 0x76, 0xca, 0x19, 0x83, 0xbc, 0x44, 0xeb, - 0x44, 0x9b, 0x3f, 0xa7, 0x9e, 0x75, 0x7e, 0x4d, 0xbd, 0xd5, 0x53, 0x2a, 0x86, 0x7b, 0x7e, 0xa5, - 0xfd, 0xd8, 0x2e, 0x90, 0xa7, 0xb8, 0x4d, 0x85, 0x2a, 0xa4, 0xb1, 0x6c, 0xa1, 0x65, 0xdb, 0xba, - 0x00, 0xdb, 0x23, 0xc5, 0x65, 0x6c, 0xb7, 0xfb, 0x6f, 0x10, 0xbe, 0xf2, 0x64, 0x0c, 0x72, 0x41, - 0x49, 0x6e, 0xfd, 0x8d, 0xf2, 0xcf, 0x4f, 0x23, 0x6b, 0xf8, 0x72, 0xae, 0x0a, 0xc9, 0xba, 0x4e, - 0x0f, 0xf5, 0x57, 0xe2, 0x4a, 0xf8, 0xef, 0x10, 0x26, 0x25, 0xc3, 0xc3, 0xea, 0xa3, 0xc4, 0xa0, - 0x8b, 0xa1, 0x59, 0xd0, 0x4c, 0xb8, 0x94, 0x7f, 0x68, 0x2a, 0xf5, 0xbf, 0x69, 0x3e, 0x23, 0x7c, - 0xb3, 0x49, 0xf3, 0xd2, 0xd0, 0xbc, 0x91, 0x45, 0x8d, 0x2c, 0xb9, 0x87, 0x6f, 0x80, 0x64, 0x5c, - 0x0e, 0x12, 0xc3, 0x05, 0x68, 0x43, 0xc5, 0xa8, 0x84, 0x72, 0xe2, 0xeb, 0x95, 0xff, 0xaa, 0xb6, - 0xc9, 0x11, 0xc6, 0x12, 0x26, 0x49, 0x4a, 0xf5, 0x31, 0x98, 0xae, 0xd3, 0x73, 0xfa, 0x57, 0x1f, - 0xac, 0x07, 0x15, 0x60, 0xb0, 0x78, 0xc9, 0xf5, 0xa3, 0x2f, 0x19, 0xa3, 0xfb, 0x8b, 0x4b, 0x7d, - 0xfa, 0xe6, 0xf5, 0x2f, 0x78, 0x29, 0x1d, 0x77, 0x24, 0x4c, 0xa2, 0xb2, 0x3d, 0x1a, 0x9c, 0xcd, - 0x5c, 0x74, 0x3e, 0x73, 0xd1, 0xf7, 0x99, 0x8b, 0xde, 0xcf, 0xdd, 0xd6, 0xf9, 0xdc, 0x6d, 0x7d, - 0x99, 0xbb, 0xad, 0xd7, 0xcf, 0x1b, 0x75, 0xfb, 0xf5, 0xd8, 0x3d, 0xa3, 0xa9, 0x0e, 0x97, 0x43, - 0xb8, 0x9d, 0xa9, 0x1c, 0x9a, 0xf2, 0x90, 0x72, 0x19, 0x0a, 0xc5, 0x8a, 0x21, 0xe8, 0xe5, 0x28, - 0x97, 0x27, 0xa7, 0xed, 0x72, 0xe0, 0x76, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x6d, 0xcb, - 0x8b, 0xec, 0x03, 0x00, 0x00, + // 567 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0x73, 0x18, 0x22, 0x7a, 0xa8, 0x40, 0xad, 0x8a, 0xa6, 0xad, 0x64, 0x47, 0x46, 0xa8, + 0x01, 0xa9, 0x3e, 0x4a, 0xb7, 0x6e, 0x18, 0x10, 0xaa, 0x14, 0x50, 0x65, 0x98, 0x58, 0xac, 0xb3, + 0xfd, 0xe4, 0x5c, 0x93, 0xbb, 0x8b, 0x7c, 0xe7, 0xa4, 0x19, 0x11, 0x5b, 0x59, 0xf8, 0x13, 0x98, + 0x61, 0xe1, 0x4f, 0x60, 0xec, 0xd8, 0x11, 0x31, 0x04, 0x94, 0x0c, 0x20, 0x46, 0xfe, 0x02, 0x14, + 0xff, 0x88, 0xbc, 0x20, 0x31, 0x74, 0x60, 0x49, 0xfc, 0xbe, 0xf7, 0xee, 0xfb, 0x3e, 0xef, 0x49, + 0xf7, 0xf0, 0x0e, 0x13, 0xc7, 0x10, 0x69, 0x36, 0x02, 0x42, 0xb3, 0x48, 0x33, 0x29, 0xc8, 0x68, + 0x2f, 0x04, 0x4d, 0xf7, 0xaa, 0xd8, 0x1d, 0xa6, 0x52, 0x4b, 0x73, 0x73, 0x99, 0xe8, 0x56, 0x07, + 0x65, 0xe2, 0xd6, 0x7a, 0x22, 0x13, 0x99, 0x67, 0x91, 0xc5, 0x57, 0x71, 0x61, 0xcb, 0x8a, 0xa4, + 0xe2, 0x52, 0x91, 0x90, 0x2a, 0x58, 0x7a, 0x46, 0x92, 0x95, 0x86, 0x5b, 0x6b, 0x94, 0x33, 0x21, + 0x49, 0xfe, 0x5b, 0x48, 0xce, 0x47, 0x84, 0x9b, 0x47, 0x34, 0xa5, 0x5c, 0x99, 0x77, 0xf0, 0xf5, + 0xb2, 0x4c, 0x30, 0x84, 0x94, 0xc9, 0xb8, 0x85, 0xda, 0xa8, 0x63, 0xf8, 0xab, 0xa5, 0x7a, 0x94, + 0x8b, 0x26, 0xc5, 0xdb, 0x9c, 0x89, 0x40, 0xc0, 0x89, 0x0e, 0x42, 0x16, 0x07, 0x4c, 0x44, 0x29, + 0x70, 0x10, 0x3a, 0x48, 0xa9, 0x86, 0xd6, 0xa5, 0x36, 0xea, 0xac, 0x78, 0xb7, 0xcf, 0xa6, 0x76, + 0xe3, 0xeb, 0xd4, 0xde, 0x2e, 0x88, 0x54, 0xdc, 0x77, 0x99, 0x24, 0x9c, 0xea, 0x9e, 0xdb, 0x85, + 0x84, 0x46, 0x93, 0xc7, 0x10, 0xf9, 0x1b, 0x9c, 0x89, 0xe7, 0x70, 0xa2, 0x3d, 0x16, 0x1f, 0x56, + 0x26, 0x3e, 0xd5, 0x70, 0xb0, 0xf1, 0xf3, 0xbd, 0x8d, 0x4e, 0x7f, 0x7c, 0xba, 0x57, 0x01, 0x91, + 0x02, 0xd1, 0x79, 0x83, 0xb0, 0xe1, 0xb1, 0xd8, 0xdc, 0xc7, 0xcd, 0x90, 0xc5, 0x31, 0xa4, 0x39, + 0xe2, 0x8a, 0xb7, 0xfd, 0x6b, 0x6a, 0x97, 0xca, 0xef, 0xa9, 0xbd, 0x3a, 0xa1, 0x7c, 0x70, 0xe0, + 0x14, 0xb1, 0xe3, 0x97, 0x07, 0xe6, 0x53, 0xdc, 0xa4, 0x5c, 0x66, 0x42, 0x97, 0x8c, 0xa4, 0x64, + 0xdc, 0x49, 0x98, 0xee, 0x65, 0xa1, 0x1b, 0x49, 0x4e, 0xca, 0x01, 0x16, 0x7f, 0xbb, 0x2a, 0xee, + 0x13, 0x3d, 0x19, 0x82, 0x72, 0x1f, 0x49, 0x26, 0xfc, 0xf2, 0xba, 0x73, 0x8a, 0xf0, 0x5a, 0x97, + 0x2a, 0xfd, 0xb0, 0x80, 0xf3, 0x41, 0x65, 0x03, 0x6d, 0xde, 0xc2, 0xcd, 0x31, 0x13, 0xa2, 0x62, + 0xf2, 0xcb, 0xe8, 0xc2, 0xca, 0x9a, 0xeb, 0xf8, 0x4a, 0x2a, 0x33, 0x11, 0xb7, 0x8c, 0x36, 0xea, + 0x5c, 0xf6, 0x8b, 0xc0, 0x79, 0x8d, 0xf0, 0xd5, 0x27, 0x23, 0x10, 0x8b, 0x29, 0x2e, 0x18, 0xea, + 0x73, 0xb9, 0xf0, 0xd6, 0xff, 0xc2, 0xf0, 0x16, 0x61, 0x33, 0x67, 0xf8, 0x2f, 0x26, 0xf2, 0x19, + 0xe1, 0xb5, 0x3a, 0xcd, 0x0b, 0x4d, 0xd3, 0x5a, 0x2e, 0xaa, 0xe5, 0x9a, 0x77, 0xf1, 0x4d, 0x10, + 0x31, 0x13, 0x49, 0xa0, 0x19, 0x07, 0xa5, 0x29, 0x1f, 0xe6, 0x50, 0x86, 0x7f, 0xa3, 0xd0, 0x5f, + 0x56, 0xb2, 0x79, 0x8c, 0xb1, 0x80, 0x71, 0x10, 0x52, 0xd5, 0x07, 0xdd, 0x32, 0xda, 0x46, 0xe7, + 0xda, 0x83, 0x4d, 0xb7, 0x00, 0x74, 0x17, 0x2f, 0xae, 0x7a, 0x9c, 0x39, 0xa3, 0x77, 0x7f, 0xd1, + 0xd4, 0x87, 0x6f, 0x76, 0xe7, 0x1f, 0x9b, 0x52, 0xfe, 0x8a, 0x80, 0xb1, 0x97, 0xbb, 0x7b, 0xc9, + 0xd9, 0xcc, 0x42, 0xe7, 0x33, 0x0b, 0x7d, 0x9f, 0x59, 0xe8, 0xdd, 0xdc, 0x6a, 0x9c, 0xcf, 0xad, + 0xc6, 0x97, 0xb9, 0xd5, 0x78, 0xf5, 0xac, 0x66, 0x77, 0x58, 0xad, 0x87, 0x2e, 0x0d, 0x15, 0x59, + 0x2e, 0x8b, 0xdd, 0x48, 0xa6, 0x50, 0x0f, 0x7b, 0x94, 0x09, 0xc2, 0x65, 0x9c, 0x0d, 0x40, 0x2d, + 0x57, 0x4e, 0x5e, 0x39, 0x6c, 0xe6, 0x5b, 0x60, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, + 0x8c, 0x47, 0xe7, 0x94, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -447,6 +509,51 @@ func (m *Bid) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *LastAuctionResult) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LastAuctionResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LastAuctionResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Round != 0 { + i = encodeVarintAuction(dAtA, i, uint64(m.Round)) + i-- + dAtA[i] = 0x18 + } + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintAuction(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Winner) > 0 { + i -= len(m.Winner) + copy(dAtA[i:], m.Winner) + i = encodeVarintAuction(dAtA, i, uint64(len(m.Winner))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *EventBid) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -624,6 +731,24 @@ func (m *Bid) Size() (n int) { return n } +func (m *LastAuctionResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Winner) + if l > 0 { + n += 1 + l + sovAuction(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovAuction(uint64(l)) + if m.Round != 0 { + n += 1 + sovAuction(uint64(m.Round)) + } + return n +} + func (m *EventBid) Size() (n int) { if m == nil { return 0 @@ -906,6 +1031,141 @@ func (m *Bid) Unmarshal(dAtA []byte) error { } return nil } +func (m *LastAuctionResult) Unmarshal(dAtA []byte) 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: LastAuctionResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastAuctionResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Winner", 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.Winner = 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 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 + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType) + } + m.Round = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowAuction + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Round |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 *EventBid) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/auction/types/codec.go b/chain/auction/types/codec.go index c5299e0b..c19dfee4 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(&Params{}, "auction/Params", nil) } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -26,21 +27,19 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - // ModuleCdc references the global x/auction module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/auction and // defined at the application level. - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterLegacyAminoCodec(amino) - cryptocodec.RegisterCrypto(amino) + RegisterLegacyAminoCodec(ModuleCdc) + cryptocodec.RegisterCrypto(ModuleCdc) RegisterLegacyAminoCodec(authzcdc.Amino) - amino.Seal() + ModuleCdc.Seal() } diff --git a/chain/auction/types/expected_keepers.go b/chain/auction/types/expected_keepers.go index e8d27ee8..e9b959b5 100644 --- a/chain/auction/types/expected_keepers.go +++ b/chain/auction/types/expected_keepers.go @@ -1,14 +1,16 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" ) // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error } diff --git a/chain/auction/types/genesis.pb.go b/chain/auction/types/genesis.pb.go index d1452e2a..458e36a1 100644 --- a/chain/auction/types/genesis.pb.go +++ b/chain/auction/types/genesis.pb.go @@ -33,6 +33,8 @@ type GenesisState struct { HighestBid *Bid `protobuf:"bytes,3,opt,name=highest_bid,json=highestBid,proto3" json:"highest_bid,omitempty"` // auction ending timestamp 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"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -96,6 +98,13 @@ func (m *GenesisState) GetAuctionEndingTimestamp() int64 { return 0 } +func (m *GenesisState) GetLastAuctionResult() *LastAuctionResult { + if m != nil { + return m.LastAuctionResult + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.auction.v1beta1.GenesisState") } @@ -105,27 +114,29 @@ func init() { } var fileDescriptor_56f095f457353f49 = []byte{ - // 315 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xb1, 0x4e, 0xc3, 0x30, - 0x10, 0x86, 0x63, 0x5a, 0x75, 0x70, 0xcb, 0x12, 0x21, 0x14, 0x3a, 0x98, 0x02, 0x03, 0x5d, 0x88, - 0x55, 0x58, 0xd8, 0x2a, 0x45, 0x42, 0x08, 0x09, 0x24, 0x14, 0x98, 0x58, 0x2a, 0x27, 0xb1, 0x9c, - 0x43, 0xc4, 0x8e, 0x62, 0xa7, 0x12, 0x6f, 0xc1, 0x63, 0x75, 0xec, 0xc8, 0x84, 0x50, 0xfb, 0x00, - 0xbc, 0x02, 0xaa, 0xeb, 0x44, 0x2c, 0x74, 0x3b, 0xff, 0xff, 0x77, 0xf7, 0x9f, 0x7c, 0xf8, 0x1c, - 0xe4, 0x2b, 0x4f, 0x0d, 0xcc, 0x39, 0x65, 0x75, 0x6a, 0x40, 0x49, 0x3a, 0x9f, 0x24, 0xdc, 0xb0, - 0x09, 0x15, 0x5c, 0x72, 0x0d, 0x3a, 0x2c, 0x2b, 0x65, 0x94, 0x7f, 0xd4, 0x82, 0xa1, 0x03, 0x43, - 0x07, 0x0e, 0x77, 0xcc, 0x68, 0x50, 0x3b, 0x63, 0x78, 0x20, 0x94, 0x50, 0xb6, 0xa4, 0x9b, 0x6a, - 0xab, 0x9e, 0xfe, 0x20, 0x3c, 0xb8, 0xdd, 0x66, 0x3d, 0x19, 0x66, 0xb8, 0x3f, 0xc5, 0xbd, 0x92, - 0x55, 0xac, 0xd0, 0x01, 0x1a, 0xa1, 0x71, 0xff, 0xf2, 0x24, 0xfc, 0x37, 0x3b, 0x7c, 0xb4, 0x60, - 0xd4, 0x5d, 0x7c, 0x1d, 0x7b, 0xb1, 0x6b, 0xf3, 0xcf, 0xf0, 0xbe, 0xe3, 0x66, 0x95, 0xaa, 0x65, - 0x16, 0xec, 0x8d, 0xd0, 0xb8, 0x1b, 0x0f, 0x9c, 0x18, 0x6f, 0x34, 0x7f, 0x8a, 0xfb, 0x39, 0x88, - 0x9c, 0x6b, 0x33, 0x4b, 0x20, 0x0b, 0x3a, 0x36, 0x8a, 0xec, 0x88, 0x8a, 0x20, 0x8b, 0xb1, 0x6b, - 0x89, 0x20, 0xf3, 0xaf, 0x71, 0xd0, 0xa4, 0x70, 0x99, 0x81, 0x14, 0x33, 0x03, 0x05, 0xd7, 0x86, - 0x15, 0x65, 0xd0, 0x1d, 0xa1, 0x71, 0x27, 0x3e, 0x74, 0xfe, 0x8d, 0xb5, 0x9f, 0x1b, 0x37, 0x12, - 0x8b, 0x15, 0x41, 0xcb, 0x15, 0x41, 0xdf, 0x2b, 0x82, 0x3e, 0xd6, 0xc4, 0x5b, 0xae, 0x89, 0xf7, - 0xb9, 0x26, 0xde, 0xcb, 0x83, 0x00, 0x93, 0xd7, 0x49, 0x98, 0xaa, 0x82, 0xde, 0x35, 0x9b, 0xdc, - 0xb3, 0x44, 0xd3, 0x76, 0xaf, 0x8b, 0x54, 0x55, 0xfc, 0xef, 0x33, 0x67, 0x20, 0x69, 0xa1, 0xb2, - 0xfa, 0x8d, 0xeb, 0xf6, 0x00, 0xe6, 0xbd, 0xe4, 0x3a, 0xe9, 0xd9, 0x1f, 0xbe, 0xfa, 0x0d, 0x00, - 0x00, 0xff, 0xff, 0x2f, 0xc4, 0xb2, 0x63, 0xe6, 0x01, 0x00, 0x00, + // 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, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -148,6 +159,18 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastAuctionResult != nil { + { + size, err := m.LastAuctionResult.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } if m.AuctionEndingTimestamp != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.AuctionEndingTimestamp)) i-- @@ -212,6 +235,10 @@ func (m *GenesisState) Size() (n int) { if m.AuctionEndingTimestamp != 0 { n += 1 + sovGenesis(uint64(m.AuctionEndingTimestamp)) } + if m.LastAuctionResult != nil { + l = m.LastAuctionResult.Size() + n += 1 + l + sovGenesis(uint64(l)) + } return n } @@ -357,6 +384,42 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { break } } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastAuctionResult", 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 + } + if m.LastAuctionResult == nil { + m.LastAuctionResult = &LastAuctionResult{} + } + if err := m.LastAuctionResult.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/auction/types/key.go b/chain/auction/types/key.go index 3c949674..0b151360 100644 --- a/chain/auction/types/key.go +++ b/chain/auction/types/key.go @@ -8,8 +8,9 @@ const ( var ( // Keys for store prefixes - BidsKey = []byte{0x01} - AuctionRoundKey = []byte{0x03} - KeyEndingTimeStamp = []byte{0x04} - ParamsKey = []byte{0x10} + BidsKey = []byte{0x01} + AuctionRoundKey = []byte{0x03} + KeyEndingTimeStamp = []byte{0x04} + KeyLastAuctionResult = []byte{0x05} + ParamsKey = []byte{0x10} ) diff --git a/chain/auction/types/params.go b/chain/auction/types/params.go index 6a0b98db..fe3f865b 100644 --- a/chain/auction/types/params.go +++ b/chain/auction/types/params.go @@ -3,7 +3,7 @@ package types import ( "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -14,7 +14,7 @@ var ( // DefaultAuctionPeriod represents the number of seconds in 1 week DefaultAuctionPeriod int64 = 60 * 60 * 24 * 7 // DefaultMinNextBidIncrementRate represents default min increment rate 0.25% - DefaultMinNextBidIncrementRate = sdk.NewDecWithPrec(25, 4) + DefaultMinNextBidIncrementRate = math.LegacyNewDecWithPrec(25, 4) ) // Parameter keys @@ -31,7 +31,7 @@ func ParamKeyTable() paramtypes.KeyTable { // NewParams creates a new Params instance func NewParams( auctionPeriod int64, - minNextBidIncrementRate sdk.Dec, + minNextBidIncrementRate math.LegacyDec, ) Params { return Params{ AuctionPeriod: auctionPeriod, @@ -82,7 +82,7 @@ func validateAuctionPeriodDuration(i interface{}) error { } func validateMinNextBidIncrementRate(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -91,11 +91,11 @@ func validateMinNextBidIncrementRate(i interface{}) error { return fmt.Errorf("MinNextBidIncrementRate cannot be nil") } - if v.Equal(sdk.ZeroDec()) { + if v.Equal(math.LegacyZeroDec()) { return fmt.Errorf("MinNextBidIncrementRate must be positive: %s", v.String()) } - if v.GT(sdk.NewDecWithPrec(2, 1)) { // > 20% + if v.GT(math.LegacyNewDecWithPrec(2, 1)) { // > 20% return fmt.Errorf("MinNextBidIncrementRate must be equal or less than 20 percent: %s", v.String()) } diff --git a/chain/auction/types/query.pb.go b/chain/auction/types/query.pb.go index ec9d8b68..6aba7c13 100644 --- a/chain/auction/types/query.pb.go +++ b/chain/auction/types/query.pb.go @@ -5,6 +5,7 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" @@ -165,7 +166,7 @@ type QueryCurrentAuctionBasketResponse struct { // highestBidder describes highest bidder on current round HighestBidder string `protobuf:"bytes,4,opt,name=highestBidder,proto3" json:"highestBidder,omitempty"` // highestBidAmount describes highest bid amount on current round - HighestBidAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=highestBidAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"highestBidAmount"` + HighestBidAmount cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=highestBidAmount,proto3,customtype=cosmossdk.io/math.Int" json:"highestBidAmount"` } func (m *QueryCurrentAuctionBasketResponse) Reset() { *m = QueryCurrentAuctionBasketResponse{} } @@ -313,6 +314,86 @@ func (m *QueryModuleStateResponse) GetState() *GenesisState { return nil } +type QueryLastAuctionResultRequest struct { +} + +func (m *QueryLastAuctionResultRequest) Reset() { *m = QueryLastAuctionResultRequest{} } +func (m *QueryLastAuctionResultRequest) String() string { return proto.CompactTextString(m) } +func (*QueryLastAuctionResultRequest) ProtoMessage() {} +func (*QueryLastAuctionResultRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{6} +} +func (m *QueryLastAuctionResultRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryLastAuctionResultRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryLastAuctionResultRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryLastAuctionResultRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLastAuctionResultRequest.Merge(m, src) +} +func (m *QueryLastAuctionResultRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryLastAuctionResultRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLastAuctionResultRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryLastAuctionResultRequest proto.InternalMessageInfo + +type QueryLastAuctionResultResponse struct { + LastAuctionResult *LastAuctionResult `protobuf:"bytes,1,opt,name=last_auction_result,json=lastAuctionResult,proto3" json:"last_auction_result,omitempty"` +} + +func (m *QueryLastAuctionResultResponse) Reset() { *m = QueryLastAuctionResultResponse{} } +func (m *QueryLastAuctionResultResponse) String() string { return proto.CompactTextString(m) } +func (*QueryLastAuctionResultResponse) ProtoMessage() {} +func (*QueryLastAuctionResultResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_2ae80edbdb9fffb7, []int{7} +} +func (m *QueryLastAuctionResultResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryLastAuctionResultResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryLastAuctionResultResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryLastAuctionResultResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryLastAuctionResultResponse.Merge(m, src) +} +func (m *QueryLastAuctionResultResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryLastAuctionResultResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryLastAuctionResultResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryLastAuctionResultResponse proto.InternalMessageInfo + +func (m *QueryLastAuctionResultResponse) GetLastAuctionResult() *LastAuctionResult { + if m != nil { + return m.LastAuctionResult + } + return nil +} + func init() { proto.RegisterType((*QueryAuctionParamsRequest)(nil), "injective.auction.v1beta1.QueryAuctionParamsRequest") proto.RegisterType((*QueryAuctionParamsResponse)(nil), "injective.auction.v1beta1.QueryAuctionParamsResponse") @@ -320,6 +401,8 @@ func init() { proto.RegisterType((*QueryCurrentAuctionBasketResponse)(nil), "injective.auction.v1beta1.QueryCurrentAuctionBasketResponse") proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.auction.v1beta1.QueryModuleStateRequest") proto.RegisterType((*QueryModuleStateResponse)(nil), "injective.auction.v1beta1.QueryModuleStateResponse") + proto.RegisterType((*QueryLastAuctionResultRequest)(nil), "injective.auction.v1beta1.QueryLastAuctionResultRequest") + proto.RegisterType((*QueryLastAuctionResultResponse)(nil), "injective.auction.v1beta1.QueryLastAuctionResultResponse") } func init() { @@ -327,45 +410,51 @@ func init() { } var fileDescriptor_2ae80edbdb9fffb7 = []byte{ - // 607 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x4d, 0x6b, 0xd4, 0x40, - 0x18, 0xde, 0x69, 0xb7, 0x05, 0xa7, 0x16, 0x64, 0x28, 0x98, 0x8d, 0x92, 0xa6, 0xf1, 0xa3, 0xe9, - 0xa1, 0x89, 0xdd, 0xea, 0x49, 0x45, 0x9a, 0x1e, 0xa4, 0x60, 0x41, 0xa3, 0x17, 0x0b, 0x22, 0x93, - 0xec, 0x90, 0x1d, 0xdb, 0xcc, 0x6c, 0x33, 0x93, 0x42, 0xaf, 0xfe, 0x02, 0xc1, 0x5f, 0xe0, 0x49, - 0xf0, 0xe0, 0x2f, 0xf0, 0x07, 0xf4, 0x58, 0xf0, 0x22, 0x1e, 0xaa, 0xec, 0xfa, 0x43, 0x24, 0x99, - 0xd9, 0xed, 0x2e, 0xfb, 0xe5, 0x7a, 0xda, 0xe4, 0x9d, 0xf7, 0x79, 0xde, 0xe7, 0x79, 0xe7, 0xc9, - 0xc2, 0x3b, 0x94, 0xbd, 0x23, 0xb1, 0xa4, 0x27, 0xc4, 0xc7, 0x79, 0x2c, 0x29, 0x67, 0xfe, 0xc9, - 0x56, 0x44, 0x24, 0xde, 0xf2, 0x8f, 0x73, 0x92, 0x9d, 0x7a, 0xad, 0x8c, 0x4b, 0x8e, 0x6a, 0xbd, - 0x36, 0x4f, 0xb7, 0x79, 0xba, 0xcd, 0xbc, 0x99, 0x70, 0x9e, 0x1c, 0x11, 0x1f, 0xb7, 0xa8, 0x8f, - 0x19, 0xe3, 0x12, 0x17, 0xc7, 0x42, 0x01, 0xcd, 0xf5, 0xf1, 0xfc, 0x5d, 0xa2, 0xa9, 0x8d, 0x09, - 0x61, 0x44, 0xd0, 0x2e, 0xe3, 0x4a, 0xc2, 0x13, 0x5e, 0x3e, 0xfa, 0xc5, 0x93, 0xae, 0x5a, 0x31, - 0x17, 0x29, 0x17, 0x7e, 0x84, 0x05, 0xe9, 0x01, 0x63, 0x4e, 0x35, 0xbd, 0x73, 0x03, 0xd6, 0x5e, - 0x14, 0x7e, 0x76, 0x14, 0xf7, 0x73, 0x9c, 0xe1, 0x54, 0x84, 0xe4, 0x38, 0x27, 0x42, 0x3a, 0x6f, - 0xa0, 0x39, 0xea, 0x50, 0xb4, 0x38, 0x13, 0x04, 0x3d, 0x81, 0x8b, 0xad, 0xb2, 0x62, 0x00, 0x1b, - 0xb8, 0x4b, 0xf5, 0x35, 0x6f, 0xec, 0x32, 0x3c, 0x05, 0x0d, 0xaa, 0x67, 0x17, 0xab, 0x95, 0x50, - 0xc3, 0x1c, 0x07, 0xda, 0x25, 0xfd, 0x6e, 0x9e, 0x65, 0x84, 0x49, 0x3d, 0x25, 0xc0, 0xe2, 0x90, - 0xc8, 0xae, 0x84, 0x8b, 0x39, 0xb8, 0x36, 0xa1, 0x49, 0x4b, 0x89, 0xe1, 0x22, 0x4e, 0x79, 0xce, - 0xa4, 0x01, 0xec, 0x79, 0x77, 0xa9, 0x5e, 0xf3, 0x94, 0x6d, 0xaf, 0xb0, 0xdd, 0x13, 0xb1, 0xcb, - 0x29, 0x0b, 0xee, 0x15, 0x12, 0xbe, 0xfc, 0x5a, 0x75, 0x13, 0x2a, 0x9b, 0x79, 0xe4, 0xc5, 0x3c, - 0xf5, 0xf5, 0x8e, 0xd4, 0xcf, 0xa6, 0x68, 0x1c, 0xfa, 0xf2, 0xb4, 0x45, 0x44, 0x09, 0x10, 0xa1, - 0xa6, 0x46, 0x0e, 0xbc, 0xaa, 0x6d, 0x85, 0x3c, 0x67, 0x0d, 0x63, 0xce, 0x06, 0x6e, 0x35, 0x1c, - 0xa8, 0x21, 0x0f, 0x22, 0xfd, 0xbe, 0x7b, 0xc4, 0x05, 0x65, 0xc9, 0x2b, 0x9a, 0x12, 0x63, 0xde, - 0x06, 0xee, 0x7c, 0x38, 0xe2, 0x04, 0xdd, 0x86, 0xcb, 0x4d, 0x9a, 0x34, 0x89, 0x90, 0x01, 0x6d, - 0x34, 0x48, 0x66, 0x54, 0x6d, 0xe0, 0x5e, 0x09, 0x07, 0x8b, 0xe8, 0x00, 0x5e, 0xbb, 0x2c, 0xec, - 0x28, 0xa3, 0x0b, 0x45, 0x63, 0xe0, 0x15, 0x6e, 0x7e, 0x5e, 0xac, 0xde, 0xfd, 0x07, 0x37, 0x7b, - 0x4c, 0x86, 0x43, 0x3c, 0x4e, 0x0d, 0x5e, 0x2f, 0xf7, 0xbb, 0xcf, 0x1b, 0xf9, 0x11, 0x79, 0x29, - 0xb1, 0x24, 0xdd, 0xdd, 0xbf, 0x86, 0xc6, 0xf0, 0x91, 0xde, 0xf8, 0x63, 0xb8, 0x20, 0x8a, 0x82, - 0xbe, 0xfb, 0xf5, 0x09, 0x77, 0xff, 0x54, 0xc5, 0x54, 0xe1, 0x15, 0xaa, 0xfe, 0xa9, 0x0a, 0x17, - 0x4a, 0x6e, 0xf4, 0x19, 0xc0, 0xe5, 0x81, 0x7c, 0xa1, 0xfb, 0x13, 0xb8, 0xc6, 0x66, 0xd5, 0x7c, - 0x30, 0x23, 0x4a, 0xf9, 0x70, 0x36, 0xde, 0x7f, 0xff, 0xf3, 0x71, 0xee, 0x16, 0x5a, 0xf3, 0xc7, - 0x7f, 0x67, 0x2a, 0xae, 0xe8, 0x1b, 0x80, 0x2b, 0xa3, 0x52, 0x88, 0x1e, 0x4e, 0x1b, 0x3d, 0x21, - 0xe0, 0xe6, 0xa3, 0xff, 0x03, 0xcf, 0x20, 0x3f, 0x52, 0x2a, 0xbf, 0x02, 0x88, 0x34, 0x49, 0xdf, - 0x85, 0xa2, 0xfa, 0xb4, 0xf9, 0xc3, 0xc1, 0x30, 0xb7, 0x67, 0xc2, 0x68, 0xa9, 0x7e, 0x29, 0x75, - 0x03, 0xad, 0x4f, 0x90, 0x9a, 0x96, 0xb8, 0xb7, 0x65, 0x46, 0x82, 0xe4, 0xac, 0x6d, 0x81, 0xf3, - 0xb6, 0x05, 0x7e, 0xb7, 0x2d, 0xf0, 0xa1, 0x63, 0x55, 0xce, 0x3b, 0x56, 0xe5, 0x47, 0xc7, 0xaa, - 0x1c, 0xec, 0xf7, 0xa5, 0x7d, 0xaf, 0x4b, 0xf6, 0x0c, 0x47, 0xe2, 0x92, 0x7a, 0x33, 0xe6, 0x19, - 0xe9, 0x7f, 0x6d, 0x62, 0xca, 0x34, 0xbf, 0xe8, 0xcd, 0x2d, 0x3f, 0x8c, 0x68, 0xb1, 0xfc, 0x2b, - 0xdc, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xb8, 0xd8, 0x05, 0x8e, 0xf4, 0x05, 0x00, 0x00, + // 698 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4f, 0x4f, 0x13, 0x4d, + 0x18, 0xef, 0x00, 0x25, 0x79, 0x87, 0x97, 0xe4, 0x65, 0x5e, 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, 0xed, 0x36, 0x70, 0xea, 0xee, 0xf3, 0x3c, 0xbf, 0xdf, + 0xf3, 0x7b, 0xfe, 0x6d, 0xe1, 0x0d, 0xca, 0xde, 0x90, 0x40, 0xd2, 0x1d, 0xe2, 0xe1, 0x24, 0x90, + 0x94, 0x33, 0x6f, 0x67, 0xa9, 0x4e, 0x24, 0x5e, 0xf2, 0xb6, 0x13, 0x12, 0xef, 0xba, 0xed, 0x98, + 0x4b, 0x8e, 0x8a, 0xdd, 0x30, 0xd7, 0x84, 0xb9, 0x26, 0xcc, 0xba, 0x1a, 0x72, 0x1e, 0xb6, 0x88, + 0x87, 0xdb, 0xd4, 0xc3, 0x8c, 0x71, 0x89, 0x53, 0xb7, 0xd0, 0x40, 0x6b, 0x6e, 0x30, 0x7f, 0x87, + 0x68, 0x68, 0x60, 0x48, 0x18, 0x11, 0xb4, 0xc3, 0x38, 0x1d, 0xf2, 0x90, 0xab, 0x47, 0x2f, 0x7d, + 0x32, 0x56, 0x3b, 0xe0, 0x22, 0xe2, 0xc2, 0xab, 0x63, 0x41, 0xba, 0xc0, 0x80, 0x53, 0x43, 0xef, + 0x5c, 0x81, 0xc5, 0xa7, 0x69, 0x3d, 0x2b, 0x9a, 0xfb, 0x09, 0x8e, 0x71, 0x24, 0x7c, 0xb2, 0x9d, + 0x10, 0x21, 0x9d, 0xd7, 0xd0, 0xea, 0xe7, 0x14, 0x6d, 0xce, 0x04, 0x41, 0x8f, 0xe0, 0x78, 0x5b, + 0x59, 0x0a, 0xa0, 0x0c, 0x2a, 0x13, 0xd5, 0x59, 0x77, 0x60, 0x33, 0x5c, 0x0d, 0xad, 0x8d, 0xed, + 0x1d, 0x94, 0x72, 0xbe, 0x81, 0x39, 0x0e, 0x2c, 0x2b, 0xfa, 0xd5, 0x24, 0x8e, 0x09, 0x93, 0x26, + 0x4b, 0x0d, 0x8b, 0x2d, 0x22, 0x3b, 0x12, 0xbe, 0x8d, 0xc0, 0xd9, 0x8c, 0x20, 0x23, 0x25, 0x80, + 0xe3, 0x38, 0xe2, 0x09, 0x93, 0x05, 0x50, 0x1e, 0xad, 0x4c, 0x54, 0x8b, 0xae, 0x2e, 0xdb, 0x4d, + 0xcb, 0xee, 0x8a, 0x58, 0xe5, 0x94, 0xd5, 0x16, 0x53, 0x09, 0x9f, 0x7e, 0x95, 0x2a, 0x21, 0x95, + 0xcd, 0xa4, 0xee, 0x06, 0x3c, 0xf2, 0x4c, 0x8f, 0xf4, 0xcf, 0x82, 0x68, 0x6c, 0x79, 0x72, 0xb7, + 0x4d, 0x84, 0x02, 0x08, 0xdf, 0x50, 0x23, 0x07, 0xfe, 0x6b, 0xca, 0xf2, 0x79, 0xc2, 0x1a, 0x85, + 0x91, 0x32, 0xa8, 0x8c, 0xf9, 0x67, 0x6c, 0xc8, 0x85, 0xc8, 0xbc, 0xaf, 0xb6, 0xb8, 0xa0, 0x2c, + 0x7c, 0x4e, 0x23, 0x52, 0x18, 0x2d, 0x83, 0xca, 0xa8, 0xdf, 0xc7, 0x83, 0xae, 0xc3, 0xc9, 0x26, + 0x0d, 0x9b, 0x44, 0xc8, 0x1a, 0x6d, 0x34, 0x48, 0x5c, 0x18, 0x2b, 0x83, 0xca, 0x3f, 0xfe, 0x59, + 0x23, 0x5a, 0x83, 0xff, 0x9d, 0x18, 0x56, 0x74, 0xa1, 0xf9, 0x34, 0xb0, 0x36, 0x93, 0x56, 0xf3, + 0xf3, 0xa0, 0x74, 0x49, 0x6b, 0x17, 0x8d, 0x2d, 0x97, 0x72, 0x2f, 0xc2, 0xb2, 0xe9, 0xae, 0x31, + 0xe9, 0xf7, 0xc0, 0x9c, 0x22, 0xbc, 0xac, 0xda, 0xb9, 0xc1, 0x1b, 0x49, 0x8b, 0x3c, 0x93, 0x58, + 0x92, 0x4e, 0xab, 0x5f, 0xc0, 0x42, 0xaf, 0xcb, 0x34, 0xf8, 0x21, 0xcc, 0x8b, 0xd4, 0x60, 0x46, + 0x3d, 0x97, 0x31, 0xea, 0xc7, 0x7a, 0x2b, 0x35, 0x5e, 0xa3, 0x9c, 0x12, 0x9c, 0x51, 0xd4, 0xeb, + 0x58, 0x74, 0x26, 0xe8, 0x13, 0x91, 0xb4, 0xba, 0x63, 0x7e, 0x0b, 0xed, 0x41, 0x01, 0x46, 0xc1, + 0x2b, 0xf8, 0x7f, 0x0b, 0x0b, 0xb9, 0x69, 0xd2, 0x6d, 0xc6, 0xca, 0x6d, 0xf4, 0xdc, 0xcc, 0xd0, + 0xd3, 0x4b, 0x39, 0xd5, 0xfa, 0xdb, 0x54, 0x3d, 0xce, 0xc3, 0xbc, 0x12, 0x80, 0x3e, 0x02, 0x38, + 0x79, 0x66, 0xdf, 0xd1, 0xad, 0x0c, 0xf2, 0x81, 0xb7, 0x63, 0xdd, 0x3e, 0x27, 0x4a, 0x97, 0xe9, + 0xcc, 0xbf, 0xfb, 0x7e, 0xfc, 0x61, 0xe4, 0x1a, 0x9a, 0xf5, 0x06, 0xdf, 0xbd, 0x3e, 0x1f, 0xf4, + 0x05, 0xc0, 0xe9, 0x7e, 0x57, 0x81, 0xee, 0x0f, 0x4b, 0x9d, 0x71, 0x70, 0xd6, 0x83, 0x8b, 0x81, + 0xcf, 0x21, 0xbf, 0xae, 0x55, 0x7e, 0x06, 0x10, 0x19, 0x92, 0x53, 0x1b, 0x87, 0xaa, 0xc3, 0xf2, + 0xf7, 0x6e, 0xae, 0xb5, 0x7c, 0x2e, 0x8c, 0x91, 0xea, 0x29, 0xa9, 0xf3, 0x68, 0x2e, 0x43, 0x6a, + 0xa4, 0x70, 0x9b, 0x6a, 0x89, 0xd1, 0x57, 0x00, 0xa7, 0x7a, 0x96, 0x09, 0xdd, 0x1d, 0x96, 0x7b, + 0xd0, 0xce, 0x5b, 0xf7, 0x2e, 0x80, 0x34, 0xda, 0xef, 0x28, 0xed, 0x8b, 0xc8, 0xcd, 0xd0, 0xde, + 0xe7, 0x5a, 0x6a, 0xe1, 0xde, 0xa1, 0x0d, 0xf6, 0x0f, 0x6d, 0xf0, 0xfb, 0xd0, 0x06, 0xef, 0x8f, + 0xec, 0xdc, 0xfe, 0x91, 0x9d, 0xfb, 0x71, 0x64, 0xe7, 0x5e, 0x6e, 0x9c, 0xfa, 0x1c, 0xae, 0x75, + 0x38, 0xd7, 0x71, 0x5d, 0x9c, 0x64, 0x58, 0x08, 0x78, 0x4c, 0x4e, 0xbf, 0x36, 0x31, 0x65, 0xa6, + 0x45, 0xa2, 0x9b, 0x5e, 0x7d, 0x39, 0xeb, 0xe3, 0xea, 0xdf, 0x65, 0xf9, 0x4f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xa1, 0xdd, 0x40, 0x94, 0x47, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -386,6 +475,7 @@ type QueryClient interface { CurrentAuctionBasket(ctx context.Context, in *QueryCurrentAuctionBasketRequest, opts ...grpc.CallOption) (*QueryCurrentAuctionBasketResponse, error) // 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) } type queryClient struct { @@ -423,6 +513,15 @@ func (c *queryClient) AuctionModuleState(ctx context.Context, in *QueryModuleSta return out, nil } +func (c *queryClient) LastAuctionResult(ctx context.Context, in *QueryLastAuctionResultRequest, opts ...grpc.CallOption) (*QueryLastAuctionResultResponse, error) { + out := new(QueryLastAuctionResultResponse) + err := c.cc.Invoke(ctx, "/injective.auction.v1beta1.Query/LastAuctionResult", 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 @@ -431,6 +530,7 @@ type QueryServer interface { CurrentAuctionBasket(context.Context, *QueryCurrentAuctionBasketRequest) (*QueryCurrentAuctionBasketResponse, error) // Retrieves the entire auction module's state AuctionModuleState(context.Context, *QueryModuleStateRequest) (*QueryModuleStateResponse, error) + LastAuctionResult(context.Context, *QueryLastAuctionResultRequest) (*QueryLastAuctionResultResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -446,6 +546,9 @@ func (*UnimplementedQueryServer) CurrentAuctionBasket(ctx context.Context, req * func (*UnimplementedQueryServer) AuctionModuleState(ctx context.Context, req *QueryModuleStateRequest) (*QueryModuleStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AuctionModuleState not implemented") } +func (*UnimplementedQueryServer) LastAuctionResult(ctx context.Context, req *QueryLastAuctionResultRequest) (*QueryLastAuctionResultResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LastAuctionResult not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -505,6 +608,24 @@ func _Query_AuctionModuleState_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Query_LastAuctionResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryLastAuctionResultRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).LastAuctionResult(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.auction.v1beta1.Query/LastAuctionResult", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).LastAuctionResult(ctx, req.(*QueryLastAuctionResultRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.auction.v1beta1.Query", HandlerType: (*QueryServer)(nil), @@ -521,6 +642,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "AuctionModuleState", Handler: _Query_AuctionModuleState_Handler, }, + { + MethodName: "LastAuctionResult", + Handler: _Query_LastAuctionResult_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/auction/v1beta1/query.proto", @@ -727,6 +852,64 @@ func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error return len(dAtA) - i, nil } +func (m *QueryLastAuctionResultRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryLastAuctionResultRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryLastAuctionResultRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryLastAuctionResultResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryLastAuctionResultResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryLastAuctionResultResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastAuctionResult != nil { + { + size, err := m.LastAuctionResult.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 encodeVarintQuery(dAtA []byte, offset int, v uint64) int { offset -= sovQuery(v) base := offset @@ -816,6 +999,28 @@ func (m *QueryModuleStateResponse) Size() (n int) { return n } +func (m *QueryLastAuctionResultRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryLastAuctionResultResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastAuctionResult != nil { + l = m.LastAuctionResult.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func sovQuery(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -1329,6 +1534,142 @@ func (m *QueryModuleStateResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryLastAuctionResultRequest) Unmarshal(dAtA []byte) 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: QueryLastAuctionResultRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryLastAuctionResultRequest: 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 *QueryLastAuctionResultResponse) Unmarshal(dAtA []byte) 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: QueryLastAuctionResultResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryLastAuctionResultResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastAuctionResult", 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 m.LastAuctionResult == nil { + m.LastAuctionResult = &LastAuctionResult{} + } + if err := m.LastAuctionResult.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 57d3be57..28135196 100644 --- a/chain/auction/types/tx.pb.go +++ b/chain/auction/types/tx.pb.go @@ -9,6 +9,7 @@ import ( _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -213,37 +214,39 @@ func init() { } var fileDescriptor_0943fd5f0d415547 = []byte{ - // 472 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x31, 0x6f, 0x13, 0x31, - 0x14, 0xc7, 0xcf, 0xa4, 0x44, 0x8a, 0x41, 0x05, 0x1d, 0x11, 0x4d, 0x32, 0x5c, 0xc2, 0x2d, 0x84, - 0x4a, 0x3d, 0x2b, 0x41, 0x62, 0xe8, 0x00, 0x6a, 0x98, 0x90, 0x88, 0x84, 0xae, 0x62, 0x61, 0xa9, - 0x7c, 0x67, 0xcb, 0x31, 0xe2, 0xec, 0x93, 0xed, 0x8b, 0xe8, 0xca, 0x84, 0xc4, 0xc2, 0xcc, 0xd4, - 0x8f, 0xc0, 0xc0, 0x87, 0xa8, 0x98, 0x2a, 0x26, 0x26, 0x84, 0x92, 0x01, 0x3e, 0x06, 0xba, 0xb3, - 0xef, 0x5a, 0x90, 0x1a, 0x3a, 0xdd, 0x3d, 0xbd, 0xff, 0xfb, 0xff, 0x7f, 0xcf, 0x36, 0x0c, 0xb9, - 0x78, 0x4d, 0x53, 0xc3, 0x97, 0x14, 0xe1, 0x22, 0x35, 0x5c, 0x0a, 0xb4, 0x9c, 0x24, 0xd4, 0xe0, - 0x09, 0x32, 0x6f, 0xa3, 0x5c, 0x49, 0x23, 0xfd, 0x7e, 0xa3, 0x89, 0x9c, 0x26, 0x72, 0x9a, 0x41, - 0x97, 0x49, 0x26, 0x2b, 0x15, 0x2a, 0xff, 0xec, 0xc0, 0x20, 0x48, 0xa5, 0xce, 0xa4, 0x46, 0x09, - 0xd6, 0xb4, 0xb1, 0x4b, 0x25, 0x17, 0xae, 0xbf, 0xe3, 0xfa, 0x99, 0x66, 0x68, 0x39, 0x29, 0x3f, - 0xae, 0xd1, 0xb7, 0x8d, 0x23, 0xeb, 0x68, 0x0b, 0xd7, 0xba, 0x7f, 0x39, 0x68, 0x0d, 0x55, 0x09, - 0xc3, 0x0f, 0x00, 0xb6, 0xe7, 0x9a, 0xcd, 0x38, 0xf1, 0xef, 0xc2, 0xb6, 0xa6, 0x82, 0x50, 0xd5, - 0x03, 0x23, 0x30, 0xee, 0xc4, 0xae, 0xf2, 0x1f, 0x43, 0x98, 0x70, 0x72, 0x84, 0x33, 0x59, 0x08, - 0xd3, 0xbb, 0x36, 0x02, 0xe3, 0x1b, 0xd3, 0x7e, 0xe4, 0xe2, 0x4a, 0xe8, 0x7a, 0xbf, 0xe8, 0xa9, - 0xe4, 0x62, 0xb6, 0x75, 0xfa, 0x63, 0xe8, 0xc5, 0x9d, 0x84, 0x93, 0x83, 0x6a, 0xc2, 0xef, 0xc2, - 0xeb, 0x4a, 0x16, 0x82, 0xf4, 0x5a, 0x23, 0x30, 0xde, 0x8a, 0x6d, 0xb1, 0x7f, 0xe7, 0xfd, 0xc9, - 0xd0, 0xfb, 0x7d, 0x32, 0xf4, 0xde, 0xfd, 0xfa, 0xbc, 0xeb, 0xa2, 0xc2, 0xdb, 0x70, 0xdb, 0xc2, - 0xc4, 0x54, 0xe7, 0x52, 0x68, 0x1a, 0x7e, 0x02, 0xf0, 0xd6, 0x5c, 0xb3, 0x97, 0x39, 0xc1, 0x86, - 0xbe, 0xc0, 0x0a, 0x67, 0xda, 0x7f, 0x04, 0x3b, 0xb8, 0x30, 0x0b, 0xa9, 0xb8, 0x39, 0xb6, 0xac, - 0xb3, 0xde, 0xb7, 0x2f, 0x7b, 0x5d, 0x87, 0x74, 0x40, 0x88, 0xa2, 0x5a, 0x1f, 0x1a, 0xc5, 0x05, - 0x8b, 0xcf, 0xa5, 0xfe, 0x13, 0xd8, 0xce, 0x2b, 0x07, 0xb7, 0xc4, 0xbd, 0xe8, 0xd2, 0xab, 0x8a, - 0x6c, 0x94, 0x5b, 0xc6, 0x8d, 0xed, 0x6f, 0x97, 0xac, 0xe7, 0x86, 0x61, 0x1f, 0xee, 0xfc, 0xc3, - 0x56, 0x73, 0x4f, 0xbf, 0x02, 0xd8, 0x9a, 0x6b, 0xe6, 0x1f, 0xc2, 0x56, 0x79, 0xb6, 0x9b, 0xa2, - 0xec, 0xc6, 0x83, 0x07, 0xff, 0x95, 0xd4, 0xe6, 0xbe, 0x80, 0x37, 0xff, 0x3a, 0x90, 0xdd, 0xcd, - 0xa3, 0x17, 0xb5, 0x83, 0xe9, 0xd5, 0xb5, 0x75, 0xde, 0x8c, 0x9d, 0xae, 0x02, 0x70, 0xb6, 0x0a, - 0xc0, 0xcf, 0x55, 0x00, 0x3e, 0xae, 0x03, 0xef, 0x6c, 0x1d, 0x78, 0xdf, 0xd7, 0x81, 0xf7, 0x6a, - 0xce, 0xb8, 0x59, 0x14, 0x49, 0x94, 0xca, 0x0c, 0x3d, 0xab, 0x7d, 0x9f, 0xe3, 0x44, 0xa3, 0x26, - 0x65, 0x2f, 0x95, 0x8a, 0x5e, 0x2c, 0x17, 0x98, 0x0b, 0x94, 0x49, 0x52, 0xbc, 0xa1, 0xba, 0x79, - 0x9d, 0xe6, 0x38, 0xa7, 0x3a, 0x69, 0x57, 0x8f, 0xf2, 0xe1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x7c, 0x0f, 0x27, 0xbc, 0x68, 0x03, 0x00, 0x00, + // 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, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/codec/types/types.go b/chain/codec/types/types.go new file mode 100644 index 00000000..ceb722f1 --- /dev/null +++ b/chain/codec/types/types.go @@ -0,0 +1,57 @@ +package types + +import ( + "cosmossdk.io/x/tx/signing" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/address" + "github.com/cosmos/cosmos-sdk/codec/types" + sdktypes "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/auth/tx" + "github.com/cosmos/gogoproto/proto" + + injcodec "github.com/InjectiveLabs/sdk-go/chain/codec" +) + +type EncodingConfig struct { + InterfaceRegistry types.InterfaceRegistry + Codec codec.Codec + TxConfig client.TxConfig + Amino *codec.LegacyAmino +} + +// MakeEncodingConfig creates an EncodingConfig for testing +func MakeEncodingConfig() EncodingConfig { + cdc := codec.NewLegacyAmino() + interfaceRegistry := NewInterfaceRegistry() + appCodec := codec.NewProtoCodec(interfaceRegistry) + encodingConfig := EncodingConfig{ + InterfaceRegistry: interfaceRegistry, + Codec: appCodec, + TxConfig: tx.NewTxConfig(appCodec, tx.DefaultSignModes), + Amino: cdc, + } + + injcodec.RegisterInterfaces(encodingConfig.InterfaceRegistry) + injcodec.RegisterLegacyAminoCodec(encodingConfig.Amino) + return encodingConfig +} + +// NewInterfaceRegistry returns a new InterfaceRegistry +func NewInterfaceRegistry() types.InterfaceRegistry { + registry, err := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{ + ProtoFiles: proto.HybridResolver, + SigningOptions: signing.Options{ + AddressCodec: address.Bech32Codec{ + Bech32Prefix: sdktypes.GetConfig().GetBech32AccountAddrPrefix(), + }, + ValidatorAddressCodec: address.Bech32Codec{ + Bech32Prefix: sdktypes.GetConfig().GetBech32ValidatorAddrPrefix(), + }, + }, + }) + if err != nil { + panic(err) + } + return registry +} diff --git a/chain/crypto/ethsecp256k1/ethsecp256k1.go b/chain/crypto/ethsecp256k1/ethsecp256k1.go index eebeb6b9..08757a1e 100644 --- a/chain/crypto/ethsecp256k1/ethsecp256k1.go +++ b/chain/crypto/ethsecp256k1/ethsecp256k1.go @@ -6,15 +6,13 @@ import ( "crypto/subtle" "fmt" - ethcrypto "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/crypto/secp256k1" - "cosmossdk.io/errors" + tmcrypto "github.com/cometbft/cometbft/crypto" "github.com/cosmos/cosmos-sdk/codec" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - tmcrypto "github.com/cometbft/cometbft/crypto" + ethcrypto "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/crypto/secp256k1" ) const ( @@ -197,7 +195,7 @@ func (pubKey *PubKey) UnmarshalAminoJSON(bz []byte) error { func (pubKey PubKey) VerifySignature(msg, sig []byte) bool { if len(sig) == 65 { // remove recovery ID if contained in the signature - sig = sig[:len(sig)-1] + sig = sig[:64] } // the signature needs to be in [R || S] format when provided to VerifySignature diff --git a/chain/crypto/ethsecp256k1/keys.pb.go b/chain/crypto/ethsecp256k1/keys.pb.go index c445cb5b..32c0bec5 100644 --- a/chain/crypto/ethsecp256k1/keys.pb.go +++ b/chain/crypto/ethsecp256k1/keys.pb.go @@ -5,6 +5,7 @@ package ethsecp256k1 import ( fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -125,21 +126,24 @@ func init() { } var fileDescriptor_9e3ee0885e4a981b = []byte{ - // 214 bytes of a gzipped FileDescriptorProto + // 266 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0xc8, 0xcc, 0xcb, 0x4a, 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x4f, 0x2e, 0xaa, 0x2c, 0x28, 0xc9, 0xd7, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2d, 0xc9, 0x28, 0x4e, 0x4d, 0x2e, 0x30, 0x32, 0x35, 0xcb, 0x36, 0xd4, 0xcf, 0x4e, 0xad, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x52, 0x85, 0xeb, 0xd0, 0x83, 0xe8, 0xd0, 0x83, 0xea, 0xd0, 0x43, 0xd6, 0x21, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, - 0xd6, 0xa1, 0x0f, 0x62, 0x41, 0x34, 0x2b, 0x29, 0x70, 0xb1, 0x05, 0x94, 0x26, 0x79, 0xa7, 0x56, - 0x0a, 0x09, 0x70, 0x31, 0x67, 0xa7, 0x56, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0xf0, 0x04, 0x81, 0x98, - 0x56, 0x2c, 0x33, 0x16, 0xc8, 0x33, 0x28, 0x49, 0x73, 0xb1, 0x07, 0x14, 0x65, 0x96, 0x61, 0x55, - 0xe2, 0x94, 0x7a, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, - 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0xde, 0xe9, 0x99, - 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x9e, 0x30, 0x07, 0xfa, 0x24, 0x26, 0x15, - 0xeb, 0xc3, 0x9d, 0xab, 0x9b, 0x9c, 0x5f, 0x94, 0x8a, 0xcc, 0xcd, 0x48, 0xcc, 0xcc, 0x83, 0xf9, - 0x1a, 0xd9, 0xed, 0x49, 0x6c, 0x60, 0xc7, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xcc, - 0xfc, 0xd6, 0x1d, 0x01, 0x00, 0x00, + 0xd6, 0xa1, 0x0f, 0x62, 0x41, 0x34, 0x4b, 0x09, 0x26, 0xe6, 0x66, 0xe6, 0xe5, 0xeb, 0x83, 0x49, + 0x88, 0x90, 0x92, 0x3f, 0x17, 0x5b, 0x40, 0x69, 0x92, 0x77, 0x6a, 0xa5, 0x90, 0x00, 0x17, 0x73, + 0x76, 0x6a, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x4f, 0x10, 0x88, 0x69, 0x65, 0x3c, 0x63, 0x81, + 0x3c, 0x43, 0xd7, 0xf3, 0x0d, 0x5a, 0x32, 0x08, 0x67, 0x42, 0x14, 0xbb, 0x96, 0x64, 0x04, 0xc3, + 0xec, 0x9a, 0xf4, 0x7c, 0x83, 0x16, 0x67, 0x76, 0x6a, 0x65, 0x7c, 0x5a, 0x66, 0x6a, 0x4e, 0x8a, + 0x92, 0x2f, 0x17, 0x7b, 0x40, 0x51, 0x66, 0x19, 0x76, 0x13, 0x0d, 0x40, 0xa6, 0xc9, 0x22, 0x99, + 0x06, 0x51, 0x89, 0xdb, 0x38, 0xa7, 0xd4, 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, 0x4e, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0xf7, 0x84, 0x99, + 0xe8, 0x93, 0x98, 0x54, 0xac, 0x0f, 0x37, 0x5f, 0x37, 0x39, 0xbf, 0x28, 0x15, 0x99, 0x9b, 0x91, + 0x98, 0x99, 0x07, 0x0b, 0x69, 0xe4, 0xf0, 0x4a, 0x62, 0x03, 0x87, 0x86, 0x31, 0x20, 0x00, 0x00, + 0xff, 0xff, 0x33, 0x0e, 0xfe, 0x6b, 0x91, 0x01, 0x00, 0x00, } func (m *PubKey) Marshal() (dAtA []byte, err error) { diff --git a/chain/exchange/types/authz.pb.go b/chain/exchange/types/authz.pb.go index e97e8a78..6816c345 100644 --- a/chain/exchange/types/authz.pb.go +++ b/chain/exchange/types/authz.pb.go @@ -6,6 +6,7 @@ package types import ( fmt "fmt" _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" proto "github.com/cosmos/gogoproto/proto" io "io" math "math" @@ -625,33 +626,40 @@ func init() { } var fileDescriptor_ea13f83a88125645 = []byte{ - // 413 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xc1, 0x6a, 0xe2, 0x40, - 0x1c, 0xc6, 0xcd, 0x0a, 0x0b, 0xce, 0xea, 0xc1, 0xb0, 0x2c, 0x2a, 0x6c, 0xd6, 0x75, 0xd9, 0xe2, - 0xc5, 0x04, 0xe9, 0xad, 0xb7, 0x6a, 0x2f, 0x82, 0x6d, 0xc1, 0xd2, 0x4b, 0x2f, 0x32, 0x99, 0x19, - 0xcc, 0xb4, 0x26, 0x13, 0xe6, 0x3f, 0x11, 0xf5, 0xd0, 0x67, 0xe8, 0x33, 0xf4, 0x19, 0xfa, 0x10, - 0xa5, 0x27, 0x8f, 0x3d, 0x16, 0x7d, 0x91, 0x92, 0xa4, 0x26, 0x56, 0xbc, 0xf4, 0x90, 0x1c, 0x67, - 0xf8, 0xf2, 0xff, 0xe5, 0xfb, 0xe7, 0xcb, 0x87, 0x8e, 0xb8, 0x77, 0xcb, 0x88, 0xe2, 0x33, 0x66, - 0xb1, 0x39, 0x71, 0xb0, 0x37, 0x61, 0xd6, 0xac, 0x6b, 0x33, 0x85, 0xbb, 0x16, 0x0e, 0x94, 0xb3, - 0x34, 0x7d, 0x29, 0x94, 0xd0, 0x1b, 0x89, 0xce, 0xdc, 0xea, 0xcc, 0x0f, 0x5d, 0xa3, 0x4e, 0x04, - 0xb8, 0x02, 0xc6, 0x91, 0xd2, 0x8a, 0x0f, 0xf1, 0x63, 0x2d, 0x89, 0xea, 0x7d, 0xc9, 0xb0, 0x62, - 0x57, 0xbe, 0x50, 0x43, 0xee, 0x72, 0x75, 0x29, 0x29, 0x93, 0xa7, 0xe1, 0x64, 0xfd, 0x1f, 0xaa, - 0x40, 0x60, 0x63, 0x42, 0x44, 0xe0, 0xa9, 0x31, 0xa7, 0x35, 0xad, 0xa9, 0xb5, 0x4b, 0xa3, 0x72, - 0x7a, 0x39, 0xa0, 0xfa, 0x6f, 0x84, 0x5c, 0x2c, 0xef, 0x58, 0x28, 0x80, 0xda, 0xb7, 0x66, 0xb1, - 0x5d, 0x1a, 0x95, 0xe2, 0x9b, 0x01, 0x85, 0x93, 0xea, 0xcb, 0x53, 0xa7, 0x12, 0x8e, 0x13, 0x92, - 0x2f, 0xb1, 0xe2, 0xc2, 0x6b, 0x01, 0x6a, 0xa4, 0xcc, 0xf3, 0x48, 0x99, 0x3d, 0x74, 0x8e, 0xfe, - 0xf4, 0xb0, 0x22, 0xce, 0x21, 0xb7, 0x90, 0x29, 0xd9, 0x45, 0x3f, 0xfb, 0xd8, 0x23, 0x6c, 0x1a, - 0x42, 0x73, 0xd9, 0x6e, 0x6c, 0xf4, 0x33, 0x13, 0xb2, 0xde, 0x6e, 0xbc, 0xd8, 0x33, 0x26, 0xf9, - 0x0c, 0x87, 0x31, 0xcc, 0x29, 0x4c, 0x0b, 0xd4, 0xdc, 0x27, 0xe7, 0x15, 0xa9, 0x7b, 0xf4, 0x7f, - 0x27, 0x52, 0x87, 0x9c, 0x43, 0xe6, 0xff, 0x51, 0xf4, 0x91, 0x53, 0x74, 0x2e, 0xfb, 0xde, 0x89, - 0xd7, 0x1e, 0x39, 0x5b, 0xbf, 0x8f, 0x1a, 0xfa, 0x15, 0xb1, 0xaf, 0x7d, 0x8a, 0xd5, 0xd7, 0x89, - 0x7f, 0x51, 0x19, 0x7c, 0xa1, 0xc6, 0x31, 0x64, 0xcb, 0xfc, 0x01, 0x49, 0x0b, 0x81, 0xde, 0x41, - 0x3a, 0x4d, 0x2c, 0x25, 0xc2, 0x62, 0x24, 0xac, 0xd2, 0xbd, 0x84, 0x1d, 0x7a, 0xc9, 0x9e, 0xf3, - 0xbc, 0x36, 0xb4, 0xd5, 0xda, 0xd0, 0xde, 0xd6, 0x86, 0xf6, 0xb0, 0x31, 0x0a, 0xab, 0x8d, 0x51, - 0x78, 0xdd, 0x18, 0x85, 0x9b, 0x8b, 0x09, 0x57, 0x4e, 0x60, 0x9b, 0x44, 0xb8, 0xd6, 0x60, 0x5b, - 0xd6, 0x43, 0x6c, 0x83, 0x95, 0x54, 0x77, 0x87, 0x08, 0xc9, 0x76, 0x8f, 0x0e, 0xe6, 0x9e, 0xe5, - 0x0a, 0x1a, 0x4c, 0x19, 0xa4, 0xfd, 0xaf, 0x16, 0x3e, 0x03, 0xfb, 0x7b, 0xd4, 0xe0, 0xc7, 0xef, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x04, 0x50, 0x0d, 0x64, 0x22, 0x06, 0x00, 0x00, + // 526 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x41, 0x6b, 0x13, 0x41, + 0x14, 0xc7, 0x33, 0x16, 0x84, 0x8c, 0xed, 0xa1, 0x8b, 0x48, 0x1b, 0xe8, 0x36, 0x6e, 0x51, 0xa2, + 0x90, 0x5d, 0x4a, 0x11, 0xb4, 0x07, 0xc5, 0xb6, 0x97, 0x40, 0x55, 0xa8, 0x78, 0xf1, 0x12, 0x66, + 0x67, 0x86, 0xee, 0x68, 0x77, 0x67, 0x99, 0x99, 0x0d, 0xda, 0x8f, 0xe0, 0x45, 0xaf, 0xe2, 0x59, + 0xbc, 0x2a, 0xf8, 0x19, 0x44, 0x3c, 0xf5, 0xe8, 0x51, 0x92, 0x83, 0x5f, 0x43, 0x76, 0xc6, 0xec, + 0xa6, 0xe9, 0x2c, 0xa1, 0xb0, 0xc9, 0x25, 0xb0, 0x33, 0xff, 0xcc, 0xfb, 0xbd, 0xf9, 0xbf, 0x37, + 0x0f, 0xde, 0x66, 0xc9, 0x2b, 0x8a, 0x15, 0x1b, 0xd0, 0x80, 0xbe, 0xc1, 0x11, 0x4a, 0x8e, 0x69, + 0x30, 0xd8, 0x0e, 0xa9, 0x42, 0xdb, 0x01, 0xca, 0x54, 0x74, 0xea, 0xa7, 0x82, 0x2b, 0xee, 0xb4, + 0x0a, 0x9d, 0x3f, 0xd6, 0xf9, 0xff, 0x75, 0xad, 0x75, 0xcc, 0x65, 0xcc, 0x65, 0x5f, 0x2b, 0x03, + 0xf3, 0x61, 0xfe, 0xd6, 0x5a, 0x45, 0x31, 0x4b, 0x78, 0xa0, 0x7f, 0xcd, 0x92, 0xf7, 0x11, 0xc0, + 0xf5, 0x7d, 0x41, 0x91, 0xa2, 0xcf, 0x53, 0xae, 0x0e, 0x59, 0xcc, 0xd4, 0x33, 0x41, 0xa8, 0x78, + 0x9c, 0x47, 0x73, 0xb6, 0xe0, 0x8a, 0xcc, 0x42, 0x84, 0x31, 0xcf, 0x12, 0xd5, 0x67, 0x64, 0x0d, + 0xb4, 0x41, 0xa7, 0x79, 0xb4, 0x5c, 0x2e, 0xf6, 0x88, 0xb3, 0x01, 0x61, 0x8c, 0xc4, 0x6b, 0x9a, + 0x0b, 0xe4, 0xda, 0x95, 0xf6, 0x52, 0xa7, 0x79, 0xd4, 0x34, 0x2b, 0x3d, 0x22, 0x77, 0xef, 0xff, + 0xfa, 0xde, 0x5d, 0xc9, 0x8f, 0xe3, 0x82, 0x9d, 0x22, 0xc5, 0x78, 0xf2, 0xee, 0xef, 0xd7, 0xbb, + 0x5e, 0x91, 0x5f, 0x65, 0x74, 0xef, 0x13, 0x80, 0xad, 0x72, 0xf7, 0x89, 0x3e, 0xb1, 0x66, 0xb8, + 0x07, 0x56, 0xb8, 0x2d, 0x0b, 0xdc, 0x74, 0x78, 0xef, 0x33, 0x80, 0x9b, 0x7b, 0x48, 0xe1, 0xc8, + 0x96, 0x80, 0xac, 0x0f, 0xf1, 0xa1, 0x15, 0xb1, 0x53, 0x20, 0xce, 0x60, 0xf0, 0xde, 0x03, 0x78, + 0x7d, 0x1f, 0x25, 0x98, 0x9e, 0xe4, 0xdb, 0x35, 0xdf, 0xdf, 0x8e, 0x15, 0x6e, 0xa3, 0xbc, 0x3f, + 0x4b, 0x60, 0xed, 0xab, 0xa1, 0x3e, 0xbf, 0x2b, 0x17, 0xe7, 0x6b, 0x75, 0x78, 0xed, 0xab, 0xb9, + 0xce, 0x03, 0x2a, 0xd8, 0x00, 0xe5, 0x5d, 0x36, 0x8f, 0xbe, 0x98, 0xe5, 0xeb, 0x0c, 0x06, 0xef, + 0x0b, 0x80, 0xed, 0x69, 0xcd, 0x5c, 0x7a, 0xe4, 0x91, 0x15, 0xf4, 0x4e, 0x25, 0xe8, 0x85, 0x4e, + 0xf9, 0x06, 0xe0, 0xad, 0x89, 0x2a, 0xb5, 0xa5, 0x54, 0xa3, 0xf5, 0x07, 0x56, 0x5c, 0xdf, 0xd6, + 0x2f, 0xd5, 0x24, 0xe6, 0xed, 0xd1, 0xf5, 0x51, 0x8a, 0x16, 0xfd, 0xf6, 0x54, 0x86, 0xd7, 0xde, + 0x4f, 0x94, 0xf0, 0x94, 0x46, 0x2e, 0xce, 0xfb, 0x59, 0x10, 0xde, 0x0f, 0x00, 0x6f, 0x68, 0xd1, + 0x8b, 0x94, 0x20, 0x75, 0x79, 0xbe, 0x9b, 0x70, 0x59, 0xa6, 0x5c, 0xf5, 0x0d, 0xd2, 0x98, 0xf0, + 0x9a, 0x2c, 0x5e, 0x64, 0xe9, 0x74, 0xa1, 0x43, 0x8a, 0xd8, 0x85, 0x70, 0x49, 0x0b, 0x57, 0xc9, + 0x54, 0x59, 0xca, 0xdd, 0x7b, 0xd6, 0x94, 0x36, 0xcf, 0xa7, 0x74, 0x81, 0x76, 0x2f, 0xfa, 0x39, + 0x74, 0xc1, 0xd9, 0xd0, 0x05, 0x7f, 0x86, 0x2e, 0xf8, 0x30, 0x72, 0x1b, 0x67, 0x23, 0xb7, 0xf1, + 0x7b, 0xe4, 0x36, 0x5e, 0x3e, 0x3d, 0x66, 0x2a, 0xca, 0x42, 0x1f, 0xf3, 0x38, 0xe8, 0x8d, 0xe7, + 0xf2, 0x21, 0x0a, 0x65, 0x50, 0x4c, 0xe9, 0x2e, 0xe6, 0x82, 0x4e, 0x7e, 0x46, 0x88, 0x25, 0x41, + 0xcc, 0x49, 0x76, 0x42, 0x65, 0x39, 0xea, 0xd5, 0xdb, 0x94, 0xca, 0xf0, 0xaa, 0x9e, 0xcc, 0x3b, + 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xbd, 0xab, 0x13, 0x0d, 0x08, 0x00, 0x00, } func (m *CreateSpotLimitOrderAuthz) Marshal() (dAtA []byte, err error) { diff --git a/chain/exchange/types/authz_common.go b/chain/exchange/types/authz_common.go index c5295775..af36d14e 100644 --- a/chain/exchange/types/authz_common.go +++ b/chain/exchange/types/authz_common.go @@ -1,6 +1,8 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/authz" @@ -39,7 +41,7 @@ func (a BatchUpdateOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchUpdateOrders{}) } -func (a BatchUpdateOrdersAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a BatchUpdateOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { ordersToUpdate, ok := msg.(*MsgBatchUpdateOrders) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") diff --git a/chain/exchange/types/authz_derivative.go b/chain/exchange/types/authz_derivative.go index 1b62735c..f0db08a0 100644 --- a/chain/exchange/types/authz_derivative.go +++ b/chain/exchange/types/authz_derivative.go @@ -1,6 +1,8 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/authz" @@ -19,7 +21,7 @@ func (a CreateDerivativeLimitOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCreateDerivativeLimitOrder{}) } -func (a CreateDerivativeLimitOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CreateDerivativeLimitOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { derivativeOrder, ok := msg.(*MsgCreateDerivativeLimitOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -59,7 +61,7 @@ func (a CreateDerivativeMarketOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCreateDerivativeMarketOrder{}) } -func (a CreateDerivativeMarketOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CreateDerivativeMarketOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { derivativeOrder, ok := msg.(*MsgCreateDerivativeMarketOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -99,7 +101,7 @@ func (a BatchCreateDerivativeLimitOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchCreateDerivativeLimitOrders{}) } -func (a BatchCreateDerivativeLimitOrdersAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a BatchCreateDerivativeLimitOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { derivativeOrders, ok := msg.(*MsgBatchCreateDerivativeLimitOrders) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -141,7 +143,7 @@ func (a CancelDerivativeOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCancelDerivativeOrder{}) } -func (a CancelDerivativeOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CancelDerivativeOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { orderToCancel, ok := msg.(*MsgCancelDerivativeOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -181,7 +183,7 @@ func (a BatchCancelDerivativeOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchCancelDerivativeOrders{}) } -func (a BatchCancelDerivativeOrdersAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a BatchCancelDerivativeOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { ordersToCancel, ok := msg.(*MsgBatchCancelDerivativeOrders) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") diff --git a/chain/exchange/types/authz_spot.go b/chain/exchange/types/authz_spot.go index 3978f535..0517e7ac 100644 --- a/chain/exchange/types/authz_spot.go +++ b/chain/exchange/types/authz_spot.go @@ -1,6 +1,8 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/authz" @@ -19,7 +21,7 @@ func (a CreateSpotLimitOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCreateSpotLimitOrder{}) } -func (a CreateSpotLimitOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CreateSpotLimitOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { spotOrder, ok := msg.(*MsgCreateSpotLimitOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -59,7 +61,7 @@ func (a CreateSpotMarketOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCreateSpotMarketOrder{}) } -func (a CreateSpotMarketOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CreateSpotMarketOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { spotOrder, ok := msg.(*MsgCreateSpotMarketOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -99,7 +101,7 @@ func (a BatchCreateSpotLimitOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchCreateSpotLimitOrders{}) } -func (a BatchCreateSpotLimitOrdersAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a BatchCreateSpotLimitOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { spotOrders, ok := msg.(*MsgBatchCreateSpotLimitOrders) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -141,7 +143,7 @@ func (a CancelSpotOrderAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgCancelSpotOrder{}) } -func (a CancelSpotOrderAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a CancelSpotOrderAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { orderToCancel, ok := msg.(*MsgCancelSpotOrder) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") @@ -181,7 +183,7 @@ func (a BatchCancelSpotOrdersAuthz) MsgTypeURL() string { return sdk.MsgTypeURL(&MsgBatchCancelSpotOrders{}) } -func (a BatchCancelSpotOrdersAuthz) Accept(ctx sdk.Context, msg sdk.Msg) (authz.AcceptResponse, error) { +func (a BatchCancelSpotOrdersAuthz) Accept(ctx context.Context, msg sdk.Msg) (authz.AcceptResponse, error) { ordersToCancel, ok := msg.(*MsgBatchCancelSpotOrders) if !ok { return authz.AcceptResponse{}, sdkerrors.ErrInvalidType.Wrap("type mismatch") diff --git a/chain/exchange/types/codec.go b/chain/exchange/types/codec.go index 266f67f0..34f6f1e5 100644 --- a/chain/exchange/types/codec.go +++ b/chain/exchange/types/codec.go @@ -8,10 +8,8 @@ import ( "github.com/cosmos/cosmos-sdk/types/msgservice" "github.com/cosmos/cosmos-sdk/x/authz" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" - proto "github.com/cosmos/gogoproto/proto" + "github.com/cosmos/gogoproto/proto" ) // RegisterLegacyAminoCodec registers the necessary x/exchange interfaces and concrete types @@ -45,8 +43,9 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgCreateBinaryOptionsMarketOrder{}, "exchange/MsgCreateBinaryOptionsMarketOrder", nil) cdc.RegisterConcrete(&MsgCancelBinaryOptionsOrder{}, "exchange/MsgCancelBinaryOptionsOrder", nil) cdc.RegisterConcrete(&MsgAdminUpdateBinaryOptionsMarket{}, "exchange/MsgAdminUpdateBinaryOptionsMarket", nil) - cdc.RegisterConcrete(&MsgReclaimLockedFunds{}, "exchange/MsgReclaimLockedFunds", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "exchange/MsgUpdateParams", nil) + cdc.RegisterConcrete(&MsgUpdateSpotMarket{}, "exchange/MsgUpdateSpotMarket", nil) + cdc.RegisterConcrete(&MsgUpdateDerivativeMarket{}, "exchange/MsgUpdateDerivativeMarket", nil) cdc.RegisterConcrete(&ExchangeEnableProposal{}, "exchange/ExchangeEnableProposal", nil) cdc.RegisterConcrete(&BatchExchangeModificationProposal{}, "exchange/BatchExchangeModificationProposal", nil) @@ -77,6 +76,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&CancelDerivativeOrderAuthz{}, "exchange/CancelDerivativeOrderAuthz", nil) cdc.RegisterConcrete(&BatchCancelDerivativeOrdersAuthz{}, "exchange/BatchCancelDerivativeOrdersAuthz", nil) cdc.RegisterConcrete(&BatchUpdateOrdersAuthz{}, "exchange/BatchUpdateOrdersAuthz", nil) + + cdc.RegisterConcrete(&Params{}, "exchange/Params", nil) } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -109,8 +110,9 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgCreateBinaryOptionsMarketOrder{}, &MsgCancelBinaryOptionsOrder{}, &MsgAdminUpdateBinaryOptionsMarket{}, - &MsgReclaimLockedFunds{}, &MsgUpdateParams{}, + &MsgUpdateSpotMarket{}, + &MsgUpdateDerivativeMarket{}, ) registry.RegisterImplementations( @@ -169,23 +171,19 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - // ModuleCdc references the global x/exchange module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/exchange and // defined at the application level. - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterLegacyAminoCodec(amino) - cryptocodec.RegisterCrypto(amino) - amino.Seal() - - RegisterLegacyAminoCodec(govcdc.Amino) + RegisterLegacyAminoCodec(ModuleCdc) + cryptocodec.RegisterCrypto(ModuleCdc) RegisterLegacyAminoCodec(authzcdc.Amino) - RegisterLegacyAminoCodec(groupcdc.Amino) + + ModuleCdc.Seal() } diff --git a/chain/exchange/types/common_order.go b/chain/exchange/types/common_order.go index 0c0abe99..ba357a76 100644 --- a/chain/exchange/types/common_order.go +++ b/chain/exchange/types/common_order.go @@ -3,7 +3,7 @@ package types import ( "strconv" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/cosmos/gogoproto/proto" "github.com/ethereum/go-ethereum/common" ethmath "github.com/ethereum/go-ethereum/common/math" @@ -13,20 +13,20 @@ import ( // GetRequiredBinaryOptionsOrderMargin returns the required margin for a binary options trade (or order) at a given price func GetRequiredBinaryOptionsOrderMargin( - price sdk.Dec, - quantity sdk.Dec, + price math.LegacyDec, + quantity math.LegacyDec, oracleScaleFactor uint32, orderType OrderType, isReduceOnly bool, -) sdk.Dec { +) math.LegacyDec { if isReduceOnly { - return sdk.ZeroDec() + return math.LegacyZeroDec() } if orderType.IsBuy() { return price.Mul(quantity) } - return GetScaledPrice(sdk.OneDec(), oracleScaleFactor).Sub(price).Mul(quantity) + return GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor).Sub(price).Mul(quantity) } func (t OrderType) IsBuy() bool { @@ -68,11 +68,11 @@ func (t OrderType) IsAtomic() bool { return false } -func (m *OrderInfo) GetNotional() sdk.Dec { +func (m *OrderInfo) GetNotional() math.LegacyDec { return m.Quantity.Mul(m.Price) } -func (m *OrderInfo) GetFeeAmount(fee sdk.Dec) sdk.Dec { +func (m *OrderInfo) GetFeeAmount(fee math.LegacyDec) math.LegacyDec { return m.GetNotional().Mul(fee) } diff --git a/chain/exchange/types/common_utils.go b/chain/exchange/types/common_utils.go index 2069b826..c949b754 100644 --- a/chain/exchange/types/common_utils.go +++ b/chain/exchange/types/common_utils.go @@ -9,6 +9,7 @@ import ( "strings" "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" ) @@ -37,21 +38,21 @@ func IsIBCDenom(denom string) bool { type SpotLimitOrderDelta struct { Order *SpotLimitOrder - FillQuantity sdk.Dec + FillQuantity math.LegacyDec } type DerivativeLimitOrderDelta struct { Order *DerivativeLimitOrder - FillQuantity sdk.Dec - CancelQuantity sdk.Dec + FillQuantity math.LegacyDec + CancelQuantity math.LegacyDec } type DerivativeMarketOrderDelta struct { Order *DerivativeMarketOrder - FillQuantity sdk.Dec + FillQuantity math.LegacyDec } -func (d *DerivativeMarketOrderDelta) UnfilledQuantity() sdk.Dec { +func (d *DerivativeMarketOrderDelta) UnfilledQuantity() math.LegacyDec { return d.Order.OrderInfo.Quantity.Sub(d.FillQuantity) } @@ -63,11 +64,11 @@ func (d *DerivativeLimitOrderDelta) SubaccountID() common.Hash { return d.Order.SubaccountID() } -func (d *DerivativeLimitOrderDelta) Price() sdk.Dec { +func (d *DerivativeLimitOrderDelta) Price() math.LegacyDec { return d.Order.Price() } -func (d *DerivativeLimitOrderDelta) FillableQuantity() sdk.Dec { +func (d *DerivativeLimitOrderDelta) FillableQuantity() math.LegacyDec { return d.Order.Fillable.Sub(d.CancelQuantity) } @@ -88,6 +89,8 @@ var TempRewardsSenderAddress = sdk.AccAddress(common.HexToAddress(ZeroSubaccount // inj1qqq3zyg3zyg3zyg3zyg3zyg3zyg3zyg3c9gg96 var AuctionFeesAddress = 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 { @@ -161,11 +164,10 @@ func IsHexHash(s string) bool { } func isHexString(str string) bool { - isMatched, _ := regexp.MatchString("^(0x)?[0-9a-fA-F]+$", str) - return isMatched + return hexRegex.MatchString(str) } -func BreachesMinimumTickSize(value, minTickSize sdk.Dec) bool { +func BreachesMinimumTickSize(value, minTickSize math.LegacyDec) bool { // obviously breached if the value less than the minTickSize if value.LT(minTickSize) { return true @@ -300,18 +302,26 @@ func EthAddressToSubaccountID(addr common.Address) common.Hash { return common.BytesToHash(common.RightPadBytes(addr.Bytes(), 32)) } -func DecToDecBytes(dec sdk.Dec) []byte { +func DecToDecBytes(dec math.LegacyDec) []byte { return dec.BigInt().Bytes() } -func DecBytesToDec(bz []byte) sdk.Dec { - dec := sdk.NewDecFromBigIntWithPrec(new(big.Int).SetBytes(bz), sdk.Precision) +func DecBytesToDec(bz []byte) math.LegacyDec { + dec := math.LegacyNewDecFromBigIntWithPrec(new(big.Int).SetBytes(bz), math.LegacyPrecision) if dec.IsNil() { - return sdk.ZeroDec() + return math.LegacyZeroDec() } return dec } +func IntToIntBytes(i math.Int) []byte { + return i.BigInt().Bytes() +} + +func IntBytesToInt(bz []byte) math.Int { + return math.NewIntFromBigInt(new(big.Int).SetBytes(bz)) +} + func HasDuplicates(slice []string) bool { seen := make(map[string]struct{}) for _, item := range slice { diff --git a/chain/exchange/types/deposit.go b/chain/exchange/types/deposit.go index 4814f94b..e0afd9d7 100644 --- a/chain/exchange/types/deposit.go +++ b/chain/exchange/types/deposit.go @@ -5,14 +5,14 @@ import ( "fmt" "sort" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" ) func NewDeposit() *Deposit { return &Deposit{ - AvailableBalance: sdk.ZeroDec(), - TotalBalance: sdk.ZeroDec(), + AvailableBalance: math.LegacyZeroDec(), + TotalBalance: math.LegacyZeroDec(), } } @@ -25,11 +25,11 @@ func (d *Deposit) Display() string { } type DepositDelta struct { - AvailableBalanceDelta sdk.Dec - TotalBalanceDelta sdk.Dec + AvailableBalanceDelta math.LegacyDec + TotalBalanceDelta math.LegacyDec } -func NewUniformDepositDelta(delta sdk.Dec) *DepositDelta { +func NewUniformDepositDelta(delta math.LegacyDec) *DepositDelta { return &DepositDelta{ AvailableBalanceDelta: delta, TotalBalanceDelta: delta, @@ -37,10 +37,10 @@ func NewUniformDepositDelta(delta sdk.Dec) *DepositDelta { } func NewDepositDelta() *DepositDelta { - return NewUniformDepositDelta(sdk.ZeroDec()) + return NewUniformDepositDelta(math.LegacyZeroDec()) } -func (d *DepositDelta) AddAvailableBalance(amount sdk.Dec) { +func (d *DepositDelta) AddAvailableBalance(amount math.LegacyDec) { d.AvailableBalanceDelta = d.AvailableBalanceDelta.Add(amount) } @@ -74,11 +74,11 @@ func (d *DepositDeltas) ApplyDepositDelta(subaccountID common.Hash, delta *Depos d.ApplyDelta(subaccountID, delta.TotalBalanceDelta, delta.AvailableBalanceDelta) } -func (d *DepositDeltas) ApplyUniformDelta(subaccountID common.Hash, delta sdk.Dec) { +func (d *DepositDeltas) ApplyUniformDelta(subaccountID common.Hash, delta math.LegacyDec) { d.ApplyDelta(subaccountID, delta, delta) } -func (d *DepositDeltas) ApplyDelta(subaccountID common.Hash, totalBalanceDelta, availableBalanceDelta sdk.Dec) { +func (d *DepositDeltas) ApplyDelta(subaccountID common.Hash, totalBalanceDelta, availableBalanceDelta math.LegacyDec) { delta := (*d)[subaccountID] if delta == nil { delta = NewDepositDelta() diff --git a/chain/exchange/types/derivative_orders.go b/chain/exchange/types/derivative_orders.go index 7bc947f5..630b470a 100644 --- a/chain/exchange/types/derivative_orders.go +++ b/chain/exchange/types/derivative_orders.go @@ -2,6 +2,7 @@ package types import ( "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" ) @@ -10,7 +11,7 @@ func NewMarketOrderForLiquidation( position *Position, positionSubaccountID common.Hash, liquidator sdk.AccAddress, - worstPrice sdk.Dec, + worstPrice math.LegacyDec, ) *DerivativeMarketOrder { var ( orderType OrderType @@ -32,8 +33,8 @@ func NewMarketOrderForLiquidation( Quantity: position.Quantity, }, OrderType: orderType, - Margin: sdk.ZeroDec(), - MarginHold: sdk.ZeroDec(), + Margin: math.LegacyZeroDec(), + MarginHold: math.LegacyZeroDec(), TriggerPrice: nil, } @@ -48,6 +49,7 @@ func (m *DerivativeLimitOrder) ToTrimmed() *TrimmedDerivativeLimitOrder { Fillable: m.Fillable, IsBuy: m.IsBuy(), OrderHash: common.BytesToHash(m.OrderHash).Hex(), + Cid: m.Cid(), } } @@ -57,18 +59,18 @@ func (o *DerivativeMarketOrderCancel) GetCancelDepositDelta() *DepositDelta { if order.IsVanilla() && o.CancelQuantity.Equal(order.OrderInfo.Quantity) { return &DepositDelta{ AvailableBalanceDelta: order.MarginHold, - TotalBalanceDelta: sdk.ZeroDec(), + TotalBalanceDelta: math.LegacyZeroDec(), } } // TODO: double check that partial market order executions are covered earlier upstream return nil } -func (o *DerivativeMarketOrder) GetCancelRefundAmount() sdk.Dec { +func (o *DerivativeMarketOrder) GetCancelRefundAmount() math.LegacyDec { if o.IsVanilla() { return o.MarginHold } - return sdk.ZeroDec() + return math.LegacyZeroDec() } func (o *DerivativeMarketOrderCancel) ApplyDerivativeMarketCancellation( @@ -93,7 +95,7 @@ func NewDerivativeMarketOrder(o *DerivativeOrder, sender sdk.AccAddress, orderHa OrderInfo: o.OrderInfo, OrderType: o.OrderType, Margin: o.Margin, - MarginHold: sdk.ZeroDec(), + MarginHold: math.LegacyZeroDec(), TriggerPrice: o.TriggerPrice, OrderHash: orderHash.Bytes(), } @@ -132,7 +134,7 @@ func (o *DerivativeMarketOrder) ToDerivativeOrder(marketID string) *DerivativeOr } } -func (o *DerivativeLimitOrder) HasEqualOrWorsePrice(price sdk.Dec) bool { +func (o *DerivativeLimitOrder) HasEqualOrWorsePrice(price math.LegacyDec) bool { // the buy order has a worse price than the input price if it's less than if o.IsBuy() { return o.Price().LTE(price) @@ -140,7 +142,7 @@ func (o *DerivativeLimitOrder) HasEqualOrWorsePrice(price sdk.Dec) bool { return o.Price().GTE(price) } -func (o *DerivativeMarketOrder) HasEqualOrWorsePrice(price sdk.Dec) bool { +func (o *DerivativeMarketOrder) HasEqualOrWorsePrice(price math.LegacyDec) bool { // the buy order has a worse price than the input price if it's less than if o.IsBuy() { return o.Price().LTE(price) @@ -148,7 +150,7 @@ func (o *DerivativeMarketOrder) HasEqualOrWorsePrice(price sdk.Dec) bool { return o.Price().GTE(price) } -func ResizeReduceOnlyOrder(o IMutableDerivativeOrder, newQuantity sdk.Dec) error { +func ResizeReduceOnlyOrder(o IMutableDerivativeOrder, newQuantity math.LegacyDec) error { if o.IsVanilla() { return ErrOrderInvalid.Wrap("ResizeReduceOnlyOrder should only be used for reduce only orders!") } @@ -163,7 +165,7 @@ func ResizeReduceOnlyOrder(o IMutableDerivativeOrder, newQuantity sdk.Dec) error } func (o *DerivativeMarketOrder) ResizeReduceOnlyOrder( - newQuantity sdk.Dec, + newQuantity math.LegacyDec, oracleScaleFactor uint32, isBinaryOptionsOrder bool, ) { @@ -185,38 +187,38 @@ func (o *DerivativeMarketOrder) ResizeReduceOnlyOrder( } } -func (o *DerivativeLimitOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) sdk.Dec { +func (o *DerivativeLimitOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) math.LegacyDec { // Margin = Price * Quantity for buys if o.IsBuy() { notional := o.Price().Mul(o.OrderInfo.Quantity) return notional } // Margin = (scaled(1) - Price) * Quantity for sells - return o.OrderInfo.Quantity.Mul(GetScaledPrice(sdk.OneDec(), oracleScaleFactor).Sub(o.Price())) + return o.OrderInfo.Quantity.Mul(GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor).Sub(o.Price())) } -func (o *DerivativeMarketOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) sdk.Dec { +func (o *DerivativeMarketOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) math.LegacyDec { // Margin = Price * Quantity for buys if o.IsBuy() { notional := o.Price().Mul(o.OrderInfo.Quantity) return notional } // Margin = (scaled(1) - Price) * Quantity for sells - return o.OrderInfo.Quantity.Mul(GetScaledPrice(sdk.OneDec(), oracleScaleFactor).Sub(o.Price())) + return o.OrderInfo.Quantity.Mul(GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor).Sub(o.Price())) } -func (o *DerivativeLimitOrder) GetCancelDepositDelta(feeRate sdk.Dec) *DepositDelta { +func (o *DerivativeLimitOrder) GetCancelDepositDelta(feeRate math.LegacyDec) *DepositDelta { return &DepositDelta{ AvailableBalanceDelta: o.GetCancelRefundAmount(feeRate), - TotalBalanceDelta: sdk.ZeroDec(), + TotalBalanceDelta: math.LegacyZeroDec(), } } -func (o *DerivativeLimitOrder) GetCancelRefundAmount(feeRate sdk.Dec) sdk.Dec { - marginHoldRefund := sdk.ZeroDec() +func (o *DerivativeLimitOrder) GetCancelRefundAmount(feeRate math.LegacyDec) math.LegacyDec { + marginHoldRefund := math.LegacyZeroDec() if o.IsVanilla() { // negative fees are only accounted for upon matching - positiveFeePart := sdk.MaxDec(sdk.ZeroDec(), feeRate) + positiveFeePart := math.LegacyMaxDec(math.LegacyZeroDec(), feeRate) //nolint:all // Refund = (FillableQuantity / Quantity) * (Margin + Price * Quantity * feeRate) notional := o.OrderInfo.Price.Mul(o.OrderInfo.Quantity) @@ -225,45 +227,48 @@ func (o *DerivativeLimitOrder) GetCancelRefundAmount(feeRate sdk.Dec) sdk.Dec { return marginHoldRefund } -func (o *DerivativeOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize sdk.Dec) error { +func (o *DerivativeOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize math.LegacyDec) error { if BreachesMinimumTickSize(o.OrderInfo.Price, minPriceTickSize) { return errors.Wrapf(ErrInvalidPrice, "price %s must be a multiple of the minimum price tick size %s", o.OrderInfo.Price.String(), minPriceTickSize.String()) } if BreachesMinimumTickSize(o.OrderInfo.Quantity, minQuantityTickSize) { return errors.Wrapf(ErrInvalidQuantity, "quantity %s must be a multiple of the minimum quantity tick size %s", o.OrderInfo.Quantity.String(), minQuantityTickSize.String()) } - if !o.Margin.IsZero() { - if BreachesMinimumTickSize(o.Margin, minQuantityTickSize) { - return errors.Wrapf(ErrInvalidMargin, "margin %s must be a multiple of the minimum quantity tick size %s", o.Margin.String(), minQuantityTickSize.String()) - } + return nil +} + +func (o *DerivativeOrder) CheckNotional(minNotional math.LegacyDec) error { + orderNotional := o.GetQuantity().Mul(o.GetPrice()) + if !minNotional.IsNil() && orderNotional.LT(minNotional) { + return errors.Wrapf(ErrInvalidNotional, "order notional (%s) is less than the minimum notional for the market (%s)", orderNotional.String(), minNotional.String()) } return nil } -func GetScaledPrice(price sdk.Dec, scaleFactor uint32) sdk.Dec { - return price.Mul(sdk.NewDec(10).Power(uint64(scaleFactor))) +func GetScaledPrice(price math.LegacyDec, scaleFactor uint32) math.LegacyDec { + return price.Mul(math.LegacyNewDec(10).Power(uint64(scaleFactor))) } -func (o *DerivativeOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) sdk.Dec { +func (o *DerivativeOrder) GetRequiredBinaryOptionsMargin(oracleScaleFactor uint32) math.LegacyDec { // Margin = Price * Quantity for buys if o.IsBuy() { notional := o.Price().Mul(o.OrderInfo.Quantity) return notional } // Margin = (scaled(1) - Price) * Quantity for sells - return o.OrderInfo.Quantity.Mul(GetScaledPrice(sdk.OneDec(), oracleScaleFactor).Sub(o.Price())) + return o.OrderInfo.Quantity.Mul(GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor).Sub(o.Price())) } -func (o *DerivativeOrder) CheckMarginAndGetMarginHold(initialMarginRatio, executionMarkPrice, feeRate sdk.Dec, marketType MarketType, oracleScaleFactor uint32) (marginHold sdk.Dec, err error) { +func (o *DerivativeOrder) CheckMarginAndGetMarginHold(initialMarginRatio, executionMarkPrice, feeRate math.LegacyDec, marketType MarketType, oracleScaleFactor uint32) (marginHold math.LegacyDec, err error) { notional := o.OrderInfo.Price.Mul(o.OrderInfo.Quantity) - positiveFeeRatePart := sdk.MaxDec(feeRate, sdk.ZeroDec()) + positiveFeeRatePart := math.LegacyMaxDec(feeRate, math.LegacyZeroDec()) feeAmount := notional.Mul(positiveFeeRatePart) marginHold = o.Margin.Add(feeAmount) if marketType == MarketType_BinaryOption { requiredMargin := o.GetRequiredBinaryOptionsMargin(oracleScaleFactor) if !o.Margin.Equal(requiredMargin) { - return sdk.Dec{}, errors.Wrapf(ErrInsufficientOrderMargin, "margin check: need %s but got %s", requiredMargin.String(), o.Margin.String()) + return math.LegacyDec{}, errors.Wrapf(ErrInsufficientMargin, "margin check: need %s but got %s", requiredMargin.String(), o.Margin.String()) } return marginHold, nil } @@ -271,31 +276,34 @@ func (o *DerivativeOrder) CheckMarginAndGetMarginHold(initialMarginRatio, execut // For perpetual and expiry futures margins // Enforce that Margin ≥ InitialMarginRatio * Price * Quantity if o.Margin.LT(initialMarginRatio.Mul(notional)) { - return sdk.Dec{}, errors.Wrapf(ErrInsufficientOrderMargin, "InitialMarginRatio Check: need at least %s but got %s", initialMarginRatio.Mul(notional).String(), o.Margin.String()) + return math.LegacyDec{}, errors.Wrapf(ErrInsufficientMargin, "InitialMarginRatio Check: need at least %s but got %s", initialMarginRatio.Mul(notional).String(), o.Margin.String()) } if err := o.CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, executionMarkPrice); err != nil { - return sdk.Dec{}, err + return math.LegacyDec{}, err } return marginHold, nil } -func (o *DerivativeOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice sdk.Dec) (err error) { - markPriceThreshold := o.ComputeInitialMarginRequirementMarkPriceThreshold(initialMarginRatio) +func (o *DerivativeOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice math.LegacyDec) (err error) { // For Buys: MarkPrice ≥ (Margin - Price * Quantity) / ((InitialMarginRatio - 1) * Quantity) // For Sells: MarkPrice ≤ (Margin + Price * Quantity) / ((1 + InitialMarginRatio) * Quantity) - if o.OrderType.IsBuy() && markPrice.LT(markPriceThreshold) { - return errors.Wrapf(ErrInsufficientOrderMargin, "Buy MarkPriceThreshold Check: mark/trigger price %s must be GTE %s", markPrice.String(), markPriceThreshold.String()) - } else if !o.OrderType.IsBuy() && markPrice.GT(markPriceThreshold) { - return errors.Wrapf(ErrInsufficientOrderMargin, "Sell MarkPriceThreshold Check: mark/trigger price %s must be LTE %s", markPrice.String(), markPriceThreshold.String()) - } + markPriceThreshold := o.ComputeInitialMarginRequirementMarkPriceThreshold(initialMarginRatio) + return CheckInitialMarginMarkPriceRequirement(o.IsBuy(), markPriceThreshold, markPrice) +} +func CheckInitialMarginMarkPriceRequirement(isBuyOrLong bool, markPriceThreshold, markPrice math.LegacyDec) error { + if isBuyOrLong && markPrice.LT(markPriceThreshold) { + return errors.Wrapf(ErrInsufficientMargin, "Buy MarkPriceThreshold Check: mark/trigger price %s must be GTE %s", markPrice.String(), markPriceThreshold.String()) + } else if !isBuyOrLong && markPrice.GT(markPriceThreshold) { + return errors.Wrapf(ErrInsufficientMargin, "Sell MarkPriceThreshold Check: mark/trigger price %s must be LTE %s", markPrice.String(), markPriceThreshold.String()) + } return nil } // CheckValidConditionalPrice checks that conditional order type (STOP or TAKE) actually valid for current relation between triggerPrice and markPrice -func (o *DerivativeOrder) CheckValidConditionalPrice(markPrice sdk.Dec) (err error) { +func (o *DerivativeOrder) CheckValidConditionalPrice(markPrice math.LegacyDec) (err error) { if !o.IsConditional() { return nil } @@ -315,7 +323,7 @@ func (o *DerivativeOrder) CheckValidConditionalPrice(markPrice sdk.Dec) (err err // CheckBinaryOptionsPricesWithinBounds checks that binary options order prices don't exceed 1 (scaled) func (o *DerivativeOrder) CheckBinaryOptionsPricesWithinBounds(oracleScaleFactor uint32) (err error) { - maxScaledPrice := GetScaledPrice(sdk.OneDec(), oracleScaleFactor) + maxScaledPrice := GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor) if o.Price().GTE(maxScaledPrice) { return errors.Wrapf(ErrInvalidPrice, "price must be less than %s", maxScaledPrice.String()) } @@ -326,24 +334,28 @@ func (o *DerivativeOrder) CheckBinaryOptionsPricesWithinBounds(oracleScaleFactor return nil } -func (o *DerivativeOrder) ComputeInitialMarginRequirementMarkPriceThreshold(initialMarginRatio sdk.Dec) sdk.Dec { - notional := o.OrderInfo.Price.Mul(o.OrderInfo.Quantity) - var numerator, denominator sdk.Dec - if o.OrderType.IsBuy() { - numerator = o.Margin.Sub(notional) - denominator = initialMarginRatio.Sub(sdk.OneDec()).Mul(o.OrderInfo.Quantity) +func (o *DerivativeOrder) ComputeInitialMarginRequirementMarkPriceThreshold(initialMarginRatio math.LegacyDec) math.LegacyDec { + return ComputeMarkPriceThreshold(o.IsBuy(), o.Price(), o.GetQuantity(), o.Margin, initialMarginRatio) +} + +func ComputeMarkPriceThreshold(isBuyOrLong bool, price, quantity, margin, initialMarginRatio math.LegacyDec) math.LegacyDec { + notional := price.Mul(quantity) + var numerator, denominator math.LegacyDec + if isBuyOrLong { + numerator = margin.Sub(notional) + denominator = initialMarginRatio.Sub(math.LegacyOneDec()).Mul(quantity) } else { - numerator = o.Margin.Add(notional) - denominator = initialMarginRatio.Add(sdk.OneDec()).Mul(o.OrderInfo.Quantity) + numerator = margin.Add(notional) + denominator = initialMarginRatio.Add(math.LegacyOneDec()).Mul(quantity) } return numerator.Quo(denominator) } -func (o *DerivativeLimitOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice sdk.Dec) (err error) { +func (o *DerivativeLimitOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice math.LegacyDec) (err error) { return o.ToDerivativeOrder("").CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice) } -func (o *DerivativeMarketOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice sdk.Dec) (err error) { +func (o *DerivativeMarketOrder) CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice math.LegacyDec) (err error) { return o.ToDerivativeOrder("").CheckInitialMarginRequirementMarkPriceThreshold(initialMarginRatio, markPrice) } @@ -417,23 +429,23 @@ func (m *DerivativeOrder) IsBuy() bool { return m.OrderType.IsBuy() } -func (m *DerivativeMarketOrder) Quantity() sdk.Dec { +func (m *DerivativeMarketOrder) Quantity() math.LegacyDec { return m.OrderInfo.Quantity } -func (m *DerivativeMarketOrder) FillableQuantity() sdk.Dec { +func (m *DerivativeMarketOrder) FillableQuantity() math.LegacyDec { return m.OrderInfo.Quantity } -func (m *DerivativeMarketOrder) Price() sdk.Dec { +func (m *DerivativeMarketOrder) Price() math.LegacyDec { return m.OrderInfo.Price } -func (m *DerivativeLimitOrder) Price() sdk.Dec { +func (m *DerivativeLimitOrder) Price() math.LegacyDec { return m.OrderInfo.Price } -func (m *DerivativeOrder) Price() sdk.Dec { +func (m *DerivativeOrder) Price() math.LegacyDec { return m.OrderInfo.Price } @@ -512,10 +524,10 @@ func (o *TrimmedDerivativeLimitOrder) IsReduceOnly() bool { func EmptyDerivativeMarketOrderResults() *DerivativeMarketOrderResults { return &DerivativeMarketOrderResults{ - Quantity: sdk.ZeroDec(), - Price: sdk.ZeroDec(), - Fee: sdk.ZeroDec(), + Quantity: math.LegacyZeroDec(), + Price: math.LegacyZeroDec(), + Fee: math.LegacyZeroDec(), PositionDelta: PositionDelta{}, - Payout: sdk.ZeroDec(), + Payout: math.LegacyZeroDec(), } } diff --git a/chain/exchange/types/errors.go b/chain/exchange/types/errors.go index 0d148680..b7b6035b 100644 --- a/chain/exchange/types/errors.go +++ b/chain/exchange/types/errors.go @@ -30,7 +30,7 @@ var ( ErrExpiryFuturesMarketExpired = errors.Register(ModuleName, 23, "expiry futures market expired") ErrNoLiquidity = errors.Register(ModuleName, 24, "no liquidity on the orderbook!") ErrSlippageExceedsWorstPrice = errors.Register(ModuleName, 25, "Orderbook liquidity cannot satisfy current worst price") - ErrInsufficientOrderMargin = errors.Register(ModuleName, 26, "Order has insufficient margin") + ErrInsufficientMargin = errors.Register(ModuleName, 26, "insufficient margin") ErrDerivativeMarketNotFound = errors.Register(ModuleName, 27, "Derivative market not found") ErrPositionNotFound = errors.Register(ModuleName, 28, "Position not found") ErrInvalidReduceOnlyPositionDirection = errors.Register(ModuleName, 29, "Position direction does not oppose the reduce-only order") @@ -104,4 +104,9 @@ var ( ErrClientOrderIdAlreadyExists = errors.Register(ModuleName, 97, "client order id already exists") ErrInvalidCid = errors.Register(ModuleName, 98, "client order id is invalid. Max length is 36 chars") ErrInvalidEmergencySettle = errors.Register(ModuleName, 99, "market cannot be settled in emergency mode") + ErrInvalidNotional = errors.Register(ModuleName, 100, "invalid notional") + ErrStaleOraclePrice = errors.Register(ModuleName, 101, "stale oracle price") + ErrInvalidStakeGrant = errors.Register(ModuleName, 102, "invalid stake grant") + ErrInsufficientStake = errors.Register(ModuleName, 103, "insufficient stake for grant") + ErrInvalidPermissions = errors.Register(ModuleName, 104, "invalid permissions") ) diff --git a/chain/exchange/types/events.go b/chain/exchange/types/events.go index d0143c3c..0ed30b40 100644 --- a/chain/exchange/types/events.go +++ b/chain/exchange/types/events.go @@ -6,11 +6,28 @@ import ( // Event type and attribute constants -func (e *EventOrderFail) AddOrderFail(orderHash common.Hash, flag uint32) { +func (e *EventOrderFail) AddOrderFail(orderHash common.Hash, cid string, flag uint32) { e.Hashes = append(e.Hashes, orderHash.Bytes()) e.Flags = append(e.Flags, flag) + + if cid != "" { + e.Cids = append(e.Cids, cid) + } } func (e *EventOrderFail) IsEmpty() bool { - return len(e.Flags) == 0 && len(e.Hashes) == 0 + return len(e.Flags) == 0 && len(e.Hashes) == 0 && len(e.Cids) == 0 +} + +func NewEventOrderCancelFail(marketID, subaccountID common.Hash, orderHash, cid string, err error) *EventOrderCancelFail { + ev := &EventOrderCancelFail{ + MarketId: marketID.Hex(), + SubaccountId: subaccountID.Hex(), + OrderHash: orderHash, + Cid: cid, + } + if err != nil { + ev.Description = err.Error() + } + return ev } diff --git a/chain/exchange/types/events.pb.go b/chain/exchange/types/events.pb.go index fde0ea75..4e09ca34 100644 --- a/chain/exchange/types/events.pb.go +++ b/chain/exchange/types/events.pb.go @@ -4,9 +4,9 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/InjectiveLabs/sdk-go/chain/oracle/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" proto "github.com/cosmos/gogoproto/proto" @@ -99,9 +99,9 @@ type EventBatchDerivativeExecution struct { IsBuy bool `protobuf:"varint,2,opt,name=is_buy,json=isBuy,proto3" json:"is_buy,omitempty"` IsLiquidation bool `protobuf:"varint,3,opt,name=is_liquidation,json=isLiquidation,proto3" json:"is_liquidation,omitempty"` // nil for time expiry futures - CumulativeFunding *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=cumulative_funding,json=cumulativeFunding,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_funding,omitempty"` - ExecutionType ExecutionType `protobuf:"varint,5,opt,name=executionType,proto3,enum=injective.exchange.v1beta1.ExecutionType" json:"executionType,omitempty"` - Trades []*DerivativeTradeLog `protobuf:"bytes,6,rep,name=trades,proto3" json:"trades,omitempty"` + CumulativeFunding *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=cumulative_funding,json=cumulativeFunding,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_funding,omitempty"` + ExecutionType ExecutionType `protobuf:"varint,5,opt,name=executionType,proto3,enum=injective.exchange.v1beta1.ExecutionType" json:"executionType,omitempty"` + Trades []*DerivativeTradeLog `protobuf:"bytes,6,rep,name=trades,proto3" json:"trades,omitempty"` } func (m *EventBatchDerivativeExecution) Reset() { *m = EventBatchDerivativeExecution{} } @@ -173,10 +173,10 @@ func (m *EventBatchDerivativeExecution) GetTrades() []*DerivativeTradeLog { } type EventLostFundsFromLiquidation struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - SubaccountId []byte `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - LostFundsFromAvailableDuringPayout github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=lost_funds_from_available_during_payout,json=lostFundsFromAvailableDuringPayout,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"lost_funds_from_available_during_payout"` - LostFundsFromOrderCancels github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=lost_funds_from_order_cancels,json=lostFundsFromOrderCancels,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"lost_funds_from_order_cancels"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + SubaccountId []byte `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + LostFundsFromAvailableDuringPayout cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=lost_funds_from_available_during_payout,json=lostFundsFromAvailableDuringPayout,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"lost_funds_from_available_during_payout"` + LostFundsFromOrderCancels cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=lost_funds_from_order_cancels,json=lostFundsFromOrderCancels,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"lost_funds_from_order_cancels"` } func (m *EventLostFundsFromLiquidation) Reset() { *m = EventLostFundsFromLiquidation{} } @@ -839,11 +839,11 @@ func (m *EventExpiryFuturesMarketUpdate) GetExpiryFuturesMarketInfo() *ExpiryFut } type EventPerpetualMarketFundingUpdate struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - Funding PerpetualMarketFunding `protobuf:"bytes,2,opt,name=funding,proto3" json:"funding"` - IsHourlyFunding bool `protobuf:"varint,3,opt,name=is_hourly_funding,json=isHourlyFunding,proto3" json:"is_hourly_funding,omitempty"` - FundingRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=funding_rate,json=fundingRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"funding_rate,omitempty"` - MarkPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=mark_price,json=markPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mark_price,omitempty"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Funding PerpetualMarketFunding `protobuf:"bytes,2,opt,name=funding,proto3" json:"funding"` + IsHourlyFunding bool `protobuf:"varint,3,opt,name=is_hourly_funding,json=isHourlyFunding,proto3" json:"is_hourly_funding,omitempty"` + FundingRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=funding_rate,json=fundingRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"funding_rate,omitempty"` + MarkPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=mark_price,json=markPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price,omitempty"` } func (m *EventPerpetualMarketFundingUpdate) Reset() { *m = EventPerpetualMarketFundingUpdate{} } @@ -1125,8 +1125,8 @@ func (m *EventBatchDepositUpdate) GetDepositUpdates() []*DepositUpdate { } type DerivativeMarketOrderCancel struct { - MarketOrder *DerivativeMarketOrder `protobuf:"bytes,1,opt,name=market_order,json=marketOrder,proto3" json:"market_order,omitempty"` - CancelQuantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=cancel_quantity,json=cancelQuantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cancel_quantity"` + MarketOrder *DerivativeMarketOrder `protobuf:"bytes,1,opt,name=market_order,json=marketOrder,proto3" json:"market_order,omitempty"` + CancelQuantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=cancel_quantity,json=cancelQuantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cancel_quantity"` } func (m *DerivativeMarketOrderCancel) Reset() { *m = DerivativeMarketOrderCancel{} } @@ -1518,6 +1518,7 @@ type EventConditionalDerivativeOrderTrigger struct { IsLimitTrigger bool `protobuf:"varint,2,opt,name=isLimitTrigger,proto3" json:"isLimitTrigger,omitempty"` TriggeredOrderHash []byte `protobuf:"bytes,3,opt,name=triggered_order_hash,json=triggeredOrderHash,proto3" json:"triggered_order_hash,omitempty"` PlacedOrderHash []byte `protobuf:"bytes,4,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` + TriggeredOrderCid string `protobuf:"bytes,5,opt,name=triggered_order_cid,json=triggeredOrderCid,proto3" json:"triggered_order_cid,omitempty"` } func (m *EventConditionalDerivativeOrderTrigger) Reset() { @@ -1583,10 +1584,18 @@ func (m *EventConditionalDerivativeOrderTrigger) GetPlacedOrderHash() []byte { return nil } +func (m *EventConditionalDerivativeOrderTrigger) GetTriggeredOrderCid() string { + if m != nil { + return m.TriggeredOrderCid + } + return "" +} + type EventOrderFail struct { Account []byte `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` Hashes [][]byte `protobuf:"bytes,2,rep,name=hashes,proto3" json:"hashes,omitempty"` Flags []uint32 `protobuf:"varint,3,rep,packed,name=flags,proto3" json:"flags,omitempty"` + Cids []string `protobuf:"bytes,4,rep,name=cids,proto3" json:"cids,omitempty"` } func (m *EventOrderFail) Reset() { *m = EventOrderFail{} } @@ -1643,6 +1652,13 @@ func (m *EventOrderFail) GetFlags() []uint32 { return nil } +func (m *EventOrderFail) GetCids() []string { + if m != nil { + return m.Cids + } + return nil +} + type EventAtomicMarketOrderFeeMultipliersUpdated struct { MarketFeeMultipliers []*MarketFeeMultiplier `protobuf:"bytes,1,rep,name=market_fee_multipliers,json=marketFeeMultipliers,proto3" json:"market_fee_multipliers,omitempty"` } @@ -1855,6 +1871,239 @@ func (m *Orderbook) GetSellLevels() []*Level { return nil } +type EventGrantAuthorizations struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` + Grants []*GrantAuthorization `protobuf:"bytes,2,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (m *EventGrantAuthorizations) Reset() { *m = EventGrantAuthorizations{} } +func (m *EventGrantAuthorizations) String() string { return proto.CompactTextString(m) } +func (*EventGrantAuthorizations) ProtoMessage() {} +func (*EventGrantAuthorizations) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{32} +} +func (m *EventGrantAuthorizations) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventGrantAuthorizations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventGrantAuthorizations.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventGrantAuthorizations) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventGrantAuthorizations.Merge(m, src) +} +func (m *EventGrantAuthorizations) XXX_Size() int { + return m.Size() +} +func (m *EventGrantAuthorizations) XXX_DiscardUnknown() { + xxx_messageInfo_EventGrantAuthorizations.DiscardUnknown(m) +} + +var xxx_messageInfo_EventGrantAuthorizations proto.InternalMessageInfo + +func (m *EventGrantAuthorizations) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +func (m *EventGrantAuthorizations) GetGrants() []*GrantAuthorization { + if m != nil { + return m.Grants + } + return nil +} + +type EventGrantActivation struct { + Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"` + Granter string `protobuf:"bytes,2,opt,name=granter,proto3" json:"granter,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *EventGrantActivation) Reset() { *m = EventGrantActivation{} } +func (m *EventGrantActivation) String() string { return proto.CompactTextString(m) } +func (*EventGrantActivation) ProtoMessage() {} +func (*EventGrantActivation) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{33} +} +func (m *EventGrantActivation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventGrantActivation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventGrantActivation.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventGrantActivation) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventGrantActivation.Merge(m, src) +} +func (m *EventGrantActivation) XXX_Size() int { + return m.Size() +} +func (m *EventGrantActivation) XXX_DiscardUnknown() { + xxx_messageInfo_EventGrantActivation.DiscardUnknown(m) +} + +var xxx_messageInfo_EventGrantActivation proto.InternalMessageInfo + +func (m *EventGrantActivation) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +func (m *EventGrantActivation) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +type EventInvalidGrant struct { + Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"` + Granter string `protobuf:"bytes,2,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (m *EventInvalidGrant) Reset() { *m = EventInvalidGrant{} } +func (m *EventInvalidGrant) String() string { return proto.CompactTextString(m) } +func (*EventInvalidGrant) ProtoMessage() {} +func (*EventInvalidGrant) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{34} +} +func (m *EventInvalidGrant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventInvalidGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventInvalidGrant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventInvalidGrant) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventInvalidGrant.Merge(m, src) +} +func (m *EventInvalidGrant) XXX_Size() int { + return m.Size() +} +func (m *EventInvalidGrant) XXX_DiscardUnknown() { + xxx_messageInfo_EventInvalidGrant.DiscardUnknown(m) +} + +var xxx_messageInfo_EventInvalidGrant proto.InternalMessageInfo + +func (m *EventInvalidGrant) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +func (m *EventInvalidGrant) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +type EventOrderCancelFail struct { + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + OrderHash string `protobuf:"bytes,3,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,4,opt,name=cid,proto3" json:"cid,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` +} + +func (m *EventOrderCancelFail) Reset() { *m = EventOrderCancelFail{} } +func (m *EventOrderCancelFail) String() string { return proto.CompactTextString(m) } +func (*EventOrderCancelFail) ProtoMessage() {} +func (*EventOrderCancelFail) Descriptor() ([]byte, []int) { + return fileDescriptor_20dda602b6b13fd3, []int{35} +} +func (m *EventOrderCancelFail) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventOrderCancelFail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventOrderCancelFail.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventOrderCancelFail) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventOrderCancelFail.Merge(m, src) +} +func (m *EventOrderCancelFail) XXX_Size() int { + return m.Size() +} +func (m *EventOrderCancelFail) XXX_DiscardUnknown() { + xxx_messageInfo_EventOrderCancelFail.DiscardUnknown(m) +} + +var xxx_messageInfo_EventOrderCancelFail proto.InternalMessageInfo + +func (m *EventOrderCancelFail) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +func (m *EventOrderCancelFail) GetSubaccountId() string { + if m != nil { + return m.SubaccountId + } + return "" +} + +func (m *EventOrderCancelFail) GetOrderHash() string { + if m != nil { + return m.OrderHash + } + return "" +} + +func (m *EventOrderCancelFail) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + +func (m *EventOrderCancelFail) GetDescription() string { + if m != nil { + return m.Description + } + return "" +} + func init() { proto.RegisterType((*EventBatchSpotExecution)(nil), "injective.exchange.v1beta1.EventBatchSpotExecution") proto.RegisterType((*EventBatchDerivativeExecution)(nil), "injective.exchange.v1beta1.EventBatchDerivativeExecution") @@ -1888,6 +2137,10 @@ func init() { proto.RegisterType((*EventOrderbookUpdate)(nil), "injective.exchange.v1beta1.EventOrderbookUpdate") proto.RegisterType((*OrderbookUpdate)(nil), "injective.exchange.v1beta1.OrderbookUpdate") proto.RegisterType((*Orderbook)(nil), "injective.exchange.v1beta1.Orderbook") + proto.RegisterType((*EventGrantAuthorizations)(nil), "injective.exchange.v1beta1.EventGrantAuthorizations") + proto.RegisterType((*EventGrantActivation)(nil), "injective.exchange.v1beta1.EventGrantActivation") + proto.RegisterType((*EventInvalidGrant)(nil), "injective.exchange.v1beta1.EventInvalidGrant") + proto.RegisterType((*EventOrderCancelFail)(nil), "injective.exchange.v1beta1.EventOrderCancelFail") } func init() { @@ -1895,127 +2148,138 @@ func init() { } var fileDescriptor_20dda602b6b13fd3 = []byte{ - // 1909 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x1c, 0xc7, - 0xf1, 0xe6, 0xf0, 0x65, 0xb2, 0x76, 0x49, 0x9a, 0x23, 0x4a, 0xa6, 0xa9, 0x9f, 0x29, 0x6a, 0x7e, - 0x96, 0x2c, 0xc9, 0xf6, 0xae, 0x45, 0x23, 0xf0, 0x25, 0x87, 0x70, 0x49, 0x11, 0x62, 0x4c, 0x49, - 0x54, 0x53, 0x81, 0x02, 0x01, 0xc6, 0xa0, 0x77, 0xa6, 0xb9, 0xdb, 0xd1, 0xcc, 0xf4, 0x68, 0xba, - 0x87, 0xd2, 0x22, 0xc7, 0x5c, 0x92, 0x53, 0x72, 0x08, 0x90, 0xdc, 0x72, 0xcc, 0x2d, 0x40, 0x0e, - 0x39, 0xe5, 0x96, 0x93, 0x83, 0x5c, 0x8c, 0x9c, 0xf2, 0x82, 0x11, 0x50, 0xf9, 0x0b, 0xf2, 0x17, - 0x04, 0xfd, 0x98, 0xc7, 0x3e, 0x34, 0xda, 0x15, 0x1d, 0xe4, 0xc4, 0x99, 0x9e, 0xea, 0xaf, 0xbe, - 0xfe, 0xba, 0xba, 0xba, 0x6a, 0x09, 0x1f, 0xd0, 0xe8, 0x07, 0xc4, 0x13, 0xf4, 0x94, 0x34, 0xc9, - 0x0b, 0xaf, 0x8b, 0xa3, 0x0e, 0x69, 0x9e, 0xde, 0x6e, 0x13, 0x81, 0x6f, 0x37, 0xc9, 0x29, 0x89, - 0x04, 0x6f, 0xc4, 0x09, 0x13, 0xcc, 0xde, 0xc8, 0x0d, 0x1b, 0x99, 0x61, 0xc3, 0x18, 0x6e, 0xac, - 0x75, 0x58, 0x87, 0x29, 0xb3, 0xa6, 0x7c, 0xd2, 0x33, 0x36, 0x36, 0x3d, 0xc6, 0x43, 0xc6, 0x9b, - 0x6d, 0xcc, 0x0b, 0x4c, 0x8f, 0xd1, 0xc8, 0x7c, 0xbf, 0x56, 0xb8, 0x66, 0x09, 0xf6, 0x82, 0xc2, - 0x48, 0xbf, 0x1a, 0xb3, 0x9b, 0x55, 0x0c, 0x33, 0x26, 0xca, 0xd4, 0xf9, 0x87, 0x05, 0xef, 0xdc, - 0x91, 0xa4, 0x5b, 0x58, 0x78, 0xdd, 0xe3, 0x98, 0x89, 0x3b, 0x2f, 0x88, 0x97, 0x0a, 0xca, 0x22, - 0xfb, 0x32, 0x2c, 0x86, 0x38, 0x79, 0x4a, 0x84, 0x4b, 0xfd, 0x75, 0x6b, 0xcb, 0xba, 0xb1, 0x88, - 0x16, 0xf4, 0xc0, 0x81, 0x6f, 0x5f, 0x84, 0x79, 0xca, 0xdd, 0x76, 0xda, 0x5b, 0x9f, 0xde, 0xb2, - 0x6e, 0x2c, 0xa0, 0x39, 0xca, 0x5b, 0x69, 0xcf, 0x7e, 0x00, 0x4b, 0x24, 0x03, 0x78, 0xd4, 0x8b, - 0xc9, 0xfa, 0xcc, 0x96, 0x75, 0x63, 0x79, 0xfb, 0x66, 0xe3, 0xd5, 0x5a, 0x34, 0xee, 0x94, 0x27, - 0xa0, 0xfe, 0xf9, 0xf6, 0xb7, 0x61, 0x5e, 0x24, 0xd8, 0x27, 0x7c, 0x7d, 0x76, 0x6b, 0xe6, 0x46, - 0x6d, 0xfb, 0xfd, 0x2a, 0xa4, 0x47, 0xd2, 0xf2, 0x90, 0x75, 0x90, 0x99, 0xe3, 0xfc, 0x7b, 0x1a, - 0xde, 0x2b, 0x96, 0xb7, 0x47, 0x12, 0x7a, 0x8a, 0xe5, 0xd4, 0xf3, 0x2d, 0xf2, 0x1a, 0x2c, 0x53, - 0xee, 0x06, 0xf4, 0x59, 0x4a, 0x7d, 0x2c, 0x51, 0xd4, 0x2a, 0x17, 0xd0, 0x12, 0xe5, 0x87, 0xc5, - 0xa0, 0xfd, 0x05, 0xd8, 0x5e, 0x1a, 0xa6, 0x81, 0xf2, 0xe8, 0x9e, 0xa4, 0x91, 0x4f, 0xa3, 0xce, - 0xfa, 0xac, 0xf4, 0xd1, 0x6a, 0x7c, 0xf9, 0xf5, 0x15, 0xeb, 0x6f, 0x5f, 0x5f, 0xb9, 0xde, 0xa1, - 0xa2, 0x9b, 0xb6, 0x1b, 0x1e, 0x0b, 0x9b, 0x66, 0xf3, 0xf5, 0x9f, 0x8f, 0xb9, 0xff, 0xb4, 0x29, - 0x7a, 0x31, 0xe1, 0x8d, 0x3d, 0xe2, 0xa1, 0xd5, 0x02, 0x69, 0x5f, 0x03, 0x0d, 0x4b, 0x3d, 0x77, - 0x4e, 0xa9, 0xf7, 0x73, 0xa9, 0xe7, 0x95, 0xd4, 0x8d, 0x2a, 0xa4, 0x42, 0xcb, 0x21, 0xd1, 0xff, - 0x9a, 0x89, 0x7e, 0xc8, 0xb8, 0x90, 0x6c, 0xf9, 0x7e, 0xc2, 0xc2, 0xb2, 0x32, 0x95, 0xa2, 0xff, - 0x3f, 0x2c, 0xf1, 0xb4, 0x8d, 0x3d, 0x8f, 0xa5, 0x91, 0x32, 0x90, 0xda, 0xd7, 0x51, 0xbd, 0x18, - 0x3c, 0xf0, 0xed, 0x1f, 0x59, 0xf0, 0x41, 0xc0, 0xb8, 0x50, 0xb2, 0x72, 0xf7, 0x24, 0x61, 0xa1, - 0x8b, 0x4f, 0x31, 0x0d, 0x70, 0x3b, 0x20, 0xae, 0x9f, 0x26, 0x34, 0xea, 0xb8, 0x31, 0xee, 0xb1, - 0x54, 0xa8, 0xcd, 0xd1, 0x8a, 0x4f, 0x4d, 0xa0, 0xb8, 0x13, 0x94, 0xd9, 0xef, 0x64, 0xd8, 0x7b, - 0x0a, 0xfa, 0x48, 0x21, 0xdb, 0x31, 0xbc, 0x37, 0x48, 0x82, 0x25, 0x3e, 0x49, 0x5c, 0x0f, 0x47, - 0x1e, 0x09, 0x78, 0x69, 0xb3, 0x27, 0x71, 0xfd, 0x6e, 0x9f, 0xeb, 0x07, 0x12, 0x71, 0x57, 0x03, - 0x3a, 0x3f, 0xb1, 0xe0, 0xff, 0x46, 0x05, 0xf4, 0x11, 0xe3, 0xf4, 0xf5, 0xd2, 0x1e, 0xc2, 0x62, - 0x6c, 0x0c, 0xf9, 0xfa, 0xf4, 0xeb, 0x37, 0xf9, 0x38, 0x97, 0x3c, 0xc3, 0x47, 0x05, 0x80, 0xf3, - 0x7b, 0x0b, 0x2e, 0x2b, 0x2e, 0x05, 0x8d, 0x7b, 0xca, 0xd3, 0x11, 0x4e, 0x39, 0xf1, 0xab, 0xa9, - 0x5c, 0x85, 0x3a, 0x27, 0x42, 0x04, 0xc4, 0x8d, 0x13, 0xea, 0x11, 0xb5, 0xc9, 0x8b, 0xa8, 0xa6, - 0xc7, 0x8e, 0xe4, 0x90, 0xdd, 0x80, 0x0b, 0x82, 0x09, 0x1c, 0xb8, 0x21, 0xe5, 0x5c, 0xee, 0xa7, - 0x92, 0x59, 0x6f, 0x27, 0x5a, 0x55, 0x9f, 0xee, 0xe9, 0x2f, 0x4a, 0x2b, 0xfb, 0x23, 0xb0, 0xfb, - 0x2c, 0xdd, 0x04, 0x0b, 0xa2, 0xb7, 0x00, 0xbd, 0x1d, 0x96, 0x2c, 0x11, 0x16, 0xc4, 0xf9, 0x69, - 0xc6, 0x5e, 0x73, 0x6e, 0x91, 0x1e, 0x8b, 0xfc, 0x16, 0x8e, 0x9e, 0x26, 0x69, 0x2c, 0xbc, 0xde, - 0xb9, 0xd9, 0x7f, 0x02, 0x6b, 0x19, 0x1b, 0x83, 0x53, 0xa6, 0x9f, 0x31, 0xd5, 0xce, 0x15, 0x2b, - 0xe7, 0xc7, 0x16, 0xac, 0x2b, 0x46, 0x3b, 0x41, 0x90, 0xe9, 0xcd, 0xef, 0x62, 0x9a, 0x78, 0xa9, - 0x38, 0x37, 0x9d, 0xd1, 0xe2, 0xcc, 0xbc, 0x42, 0x1c, 0x06, 0x9b, 0x3a, 0xca, 0x68, 0x84, 0x93, - 0xde, 0x83, 0x58, 0x51, 0xd1, 0x5c, 0xbf, 0x17, 0xfb, 0x58, 0x10, 0xfb, 0x1e, 0xcc, 0x6b, 0xf7, - 0x8a, 0x4c, 0x6d, 0xbb, 0x59, 0x15, 0x47, 0x23, 0x60, 0x5a, 0xb3, 0xf2, 0x50, 0x20, 0x03, 0xe2, - 0xfc, 0xd1, 0x02, 0x5b, 0x79, 0xbc, 0x4f, 0x9e, 0xcb, 0x5b, 0x48, 0x05, 0x3d, 0xaf, 0x5e, 0xf5, - 0x01, 0x40, 0x3b, 0xed, 0xe9, 0x13, 0x97, 0x85, 0xf3, 0xad, 0xca, 0x70, 0x8e, 0x99, 0x38, 0xa4, - 0x21, 0xd5, 0xe8, 0x68, 0xb1, 0x9d, 0xf6, 0x8c, 0x9f, 0xcf, 0xa1, 0xc6, 0x49, 0x10, 0x64, 0x58, - 0x33, 0x13, 0x63, 0x81, 0x9c, 0xae, 0xc1, 0x9c, 0xbf, 0x67, 0xfb, 0x78, 0x9f, 0x3c, 0x2f, 0x8e, - 0xc6, 0x38, 0x2b, 0x7a, 0x30, 0x62, 0x45, 0x9f, 0x8c, 0x97, 0x85, 0x47, 0xaf, 0xeb, 0xe1, 0xa8, - 0x75, 0x4d, 0x8e, 0x58, 0x5e, 0xdd, 0x0f, 0x61, 0x4d, 0x2d, 0x4e, 0x67, 0xa4, 0x7c, 0xaf, 0xaa, - 0x17, 0xb6, 0x0f, 0x73, 0x8a, 0x82, 0x8a, 0xcc, 0x89, 0x94, 0x35, 0x71, 0xa2, 0xa7, 0x3b, 0x5f, - 0xc0, 0x45, 0xe5, 0x5c, 0xda, 0xf4, 0x85, 0xe3, 0xde, 0x40, 0x38, 0x5e, 0x7f, 0x9d, 0x87, 0x91, - 0x51, 0xf8, 0xeb, 0x69, 0xd8, 0x50, 0xf8, 0x47, 0x24, 0x89, 0x89, 0x48, 0x71, 0xd0, 0xe7, 0xe4, - 0xbb, 0x03, 0x4e, 0x3e, 0x1a, 0x4f, 0xc8, 0x51, 0xae, 0x6c, 0x0a, 0x17, 0xe3, 0xcc, 0x49, 0x96, - 0x20, 0x68, 0x74, 0xc2, 0x8c, 0x42, 0x95, 0xc7, 0x69, 0x80, 0xdd, 0x41, 0x74, 0xc2, 0x14, 0xba, - 0x85, 0x2e, 0xc4, 0xc3, 0x9f, 0x6c, 0x04, 0x6f, 0x65, 0xc5, 0xc7, 0x8c, 0x02, 0xdf, 0x9e, 0x00, - 0xdc, 0x54, 0x1b, 0x06, 0x3f, 0x03, 0x72, 0xfe, 0x65, 0x99, 0x0c, 0x71, 0xe7, 0x45, 0x4c, 0x93, - 0xde, 0x7e, 0x2a, 0xd2, 0x84, 0xf0, 0xff, 0x9a, 0x5a, 0xa7, 0xb0, 0x41, 0x94, 0x23, 0xf7, 0x44, - 0x7b, 0xea, 0x93, 0x4c, 0xaf, 0xea, 0xd3, 0xea, 0xc2, 0x67, 0x88, 0x66, 0x49, 0xb6, 0x77, 0xc8, - 0xe8, 0xcf, 0xce, 0xd9, 0x34, 0x5c, 0x1d, 0x15, 0x10, 0x46, 0x15, 0xb3, 0xd2, 0xca, 0xd0, 0x2f, - 0xa9, 0x3f, 0x7d, 0x2e, 0xf5, 0xa7, 0x72, 0xf5, 0xed, 0x5b, 0xb0, 0x4a, 0xb9, 0xdb, 0x65, 0x69, - 0x12, 0xf4, 0xdc, 0xf2, 0xde, 0x2e, 0xa0, 0x15, 0xca, 0xef, 0xaa, 0xf1, 0xac, 0x4c, 0x7c, 0x08, - 0x75, 0x63, 0x51, 0xba, 0x0f, 0x27, 0xae, 0x3f, 0x6b, 0x06, 0x03, 0xe9, 0xdc, 0x0f, 0x72, 0x79, - 0xe6, 0xb2, 0x99, 0x7b, 0x23, 0x40, 0xa5, 0x98, 0xba, 0x9a, 0x9c, 0x5f, 0x58, 0x70, 0x49, 0x9f, - 0xea, 0xbc, 0xdc, 0xd8, 0x23, 0xaa, 0xcc, 0xb0, 0xaf, 0x40, 0x8d, 0x27, 0x9e, 0x8b, 0x7d, 0x3f, - 0x21, 0x9c, 0x1b, 0x6d, 0x81, 0x27, 0xde, 0x8e, 0x1e, 0x19, 0xaf, 0x58, 0xfc, 0x0c, 0xe6, 0x71, - 0x28, 0x9f, 0x4d, 0xa4, 0xbc, 0xdb, 0xd0, 0x94, 0x1a, 0xb2, 0xcf, 0xca, 0xa5, 0xdf, 0x65, 0x34, - 0xca, 0xc2, 0x4e, 0x9b, 0x3b, 0xbf, 0xcc, 0xba, 0xa3, 0x82, 0xd9, 0x63, 0x2a, 0xba, 0x7e, 0x82, - 0x9f, 0x0f, 0x7b, 0xb6, 0x46, 0x78, 0xbe, 0x02, 0x35, 0x9f, 0x8b, 0x9c, 0xbf, 0xbe, 0x97, 0xc1, - 0xe7, 0x22, 0xe3, 0xff, 0xc6, 0xd4, 0x7e, 0x9b, 0x1d, 0xc0, 0x82, 0x5a, 0x0b, 0x07, 0x32, 0x27, - 0x3f, 0x4a, 0x70, 0xc4, 0x4f, 0x48, 0x22, 0xa3, 0x44, 0x8a, 0x37, 0xcc, 0x72, 0x11, 0xad, 0xf0, - 0xc4, 0x3b, 0x2e, 0x13, 0xbd, 0x05, 0xab, 0x92, 0xe8, 0xb0, 0x96, 0x8b, 0x68, 0xc5, 0xe7, 0xe2, - 0xf8, 0x1b, 0x91, 0x33, 0x2c, 0xf7, 0x9a, 0x66, 0x8b, 0xcd, 0x11, 0x42, 0xb0, 0xe2, 0xeb, 0x01, - 0x37, 0x55, 0x23, 0x72, 0xb3, 0xe5, 0x65, 0x75, 0xb3, 0x3a, 0x6b, 0x94, 0x30, 0xd0, 0xb2, 0x5f, - 0x7e, 0xe5, 0xce, 0x9f, 0x2d, 0xb8, 0x3c, 0x98, 0x57, 0x4a, 0xc5, 0xb4, 0xfd, 0x04, 0xea, 0xe6, - 0xd8, 0xea, 0xbb, 0x49, 0xa7, 0xa9, 0xdb, 0x93, 0xa4, 0xa9, 0xe2, 0x8a, 0xb2, 0x50, 0x2d, 0x2c, - 0x86, 0xec, 0xc7, 0xb0, 0xa2, 0x7b, 0x00, 0xf7, 0x59, 0x8a, 0x23, 0x41, 0x85, 0x6e, 0x21, 0x27, - 0xef, 0x05, 0x96, 0x35, 0xcc, 0x43, 0x83, 0x52, 0x5c, 0x51, 0x7a, 0x11, 0x03, 0xf5, 0x45, 0x75, - 0x2a, 0x7a, 0x1f, 0x54, 0x87, 0x1a, 0x52, 0x33, 0xd9, 0x74, 0xb5, 0xfd, 0x83, 0xf6, 0x63, 0xa8, - 0x05, 0xf2, 0xd5, 0xa8, 0xa2, 0xf7, 0x78, 0xe2, 0x9a, 0xc1, 0x88, 0x02, 0x41, 0x3e, 0x62, 0x87, - 0x70, 0xa1, 0xac, 0xb7, 0x69, 0x92, 0x54, 0x42, 0xaa, 0x6d, 0x7f, 0x36, 0xb1, 0xec, 0x9a, 0xae, - 0xf1, 0xb3, 0x1a, 0x0e, 0x7e, 0x70, 0x3a, 0xa6, 0x0a, 0xdb, 0x27, 0x64, 0x8f, 0x72, 0x15, 0xbc, - 0xc7, 0x5e, 0x97, 0xf8, 0x69, 0x40, 0xec, 0xcf, 0x61, 0x81, 0x9b, 0xe7, 0x71, 0xea, 0xd7, 0x11, - 0x10, 0x28, 0x07, 0x70, 0xce, 0x2c, 0xd8, 0x52, 0x9e, 0x64, 0x27, 0x2c, 0x73, 0x24, 0x79, 0x8e, - 0x13, 0x7f, 0x17, 0x87, 0x31, 0xa6, 0x9d, 0xc8, 0x04, 0xf8, 0x13, 0x58, 0xf2, 0xcc, 0x88, 0xbe, - 0xb4, 0xb4, 0xdb, 0x6f, 0xbd, 0xee, 0xe7, 0x8c, 0x21, 0x3c, 0x79, 0x2f, 0xa1, 0xba, 0x57, 0x7a, - 0xb3, 0xdb, 0x70, 0x31, 0xc7, 0x4e, 0x94, 0xb1, 0x1b, 0x33, 0x16, 0x8c, 0xd5, 0xe2, 0x65, 0xb0, - 0xda, 0xc9, 0x11, 0x63, 0x01, 0xba, 0xe0, 0x0d, 0x8d, 0x71, 0x27, 0x35, 0xe9, 0xa6, 0x8f, 0xd3, - 0x1e, 0xe5, 0x22, 0xa1, 0x6d, 0xfd, 0x4b, 0xca, 0x31, 0xac, 0x64, 0xb9, 0x43, 0x93, 0xc8, 0x8e, - 0x70, 0x65, 0xb5, 0xb7, 0xa3, 0xa7, 0x68, 0x3c, 0x8e, 0x96, 0x71, 0xdf, 0xbb, 0xf3, 0x3b, 0x0b, - 0x9c, 0xac, 0x96, 0xde, 0x65, 0x91, 0xaf, 0x9a, 0x22, 0x3c, 0x59, 0xd8, 0xef, 0xf4, 0x17, 0x9f, - 0x1f, 0x8e, 0x17, 0x69, 0xba, 0xf2, 0xd5, 0x33, 0x6d, 0x1b, 0x66, 0xbb, 0x98, 0x77, 0xd5, 0x61, - 0xa8, 0x23, 0xf5, 0x2c, 0x7d, 0xd2, 0xac, 0x0e, 0x51, 0x41, 0xbc, 0x80, 0x16, 0xa8, 0x29, 0x1e, - 0x9c, 0x5f, 0x4d, 0xc3, 0xb5, 0xd2, 0x31, 0x7d, 0x53, 0xea, 0xff, 0xe3, 0x13, 0x3b, 0x98, 0x21, - 0x67, 0xbf, 0xb9, 0x0c, 0xe9, 0xfc, 0xc9, 0x82, 0xeb, 0x5a, 0xa1, 0x57, 0x6a, 0xf3, 0x28, 0xa1, - 0x9d, 0xce, 0x28, 0x89, 0xea, 0x25, 0x89, 0xae, 0xc3, 0xb2, 0x51, 0xc3, 0x98, 0x1b, 0x8d, 0x06, - 0x46, 0x65, 0x3f, 0x2e, 0xf4, 0x23, 0xf1, 0x4d, 0x02, 0x2a, 0x6d, 0xa9, 0x9d, 0x7f, 0x53, 0x9e, - 0xef, 0xca, 0x0d, 0xbe, 0x05, 0xab, 0x71, 0x80, 0xbd, 0x7e, 0xf3, 0x59, 0x65, 0xbe, 0xa2, 0x3f, - 0xe4, 0xb6, 0xce, 0xf7, 0x61, 0x59, 0x2d, 0x46, 0x8d, 0xec, 0x63, 0x1a, 0xd8, 0xeb, 0xf0, 0x96, - 0x89, 0x65, 0x43, 0x39, 0x7b, 0xb5, 0x2f, 0xc1, 0xbc, 0x84, 0x22, 0xfa, 0x7c, 0xd6, 0x91, 0x79, - 0xb3, 0xd7, 0x60, 0xee, 0x24, 0xc0, 0x1d, 0xdd, 0xa6, 0x2d, 0x21, 0xfd, 0xe2, 0xfc, 0xdc, 0x82, - 0x0f, 0xf5, 0xaf, 0x02, 0x82, 0x85, 0xd4, 0x2b, 0xa9, 0xba, 0x4f, 0xc8, 0xbd, 0x34, 0x10, 0x34, - 0x0e, 0x28, 0x49, 0xb8, 0xce, 0x33, 0xbe, 0x4d, 0xe0, 0x52, 0xf6, 0x7b, 0x03, 0x21, 0x6e, 0x58, - 0x18, 0x98, 0xd3, 0x58, 0x99, 0xe8, 0x4c, 0xd5, 0x59, 0x06, 0x46, 0x6b, 0xe1, 0xf0, 0x20, 0x77, - 0xfe, 0x60, 0x99, 0x3e, 0x50, 0x51, 0x69, 0x33, 0xf6, 0xd4, 0x24, 0xba, 0xfb, 0x50, 0xe7, 0x31, - 0x1b, 0xbc, 0xc6, 0x2b, 0x0f, 0xdd, 0x00, 0x04, 0xaa, 0x49, 0x00, 0x73, 0x8b, 0xdb, 0x4f, 0xc0, - 0xf6, 0xf3, 0xb0, 0xc8, 0x51, 0xa7, 0x27, 0x47, 0x5d, 0x2d, 0x60, 0xb2, 0x0a, 0xa1, 0x0b, 0x2b, - 0x83, 0xf4, 0xdf, 0x86, 0x19, 0x4e, 0x9e, 0xa9, 0x2d, 0x9b, 0x45, 0xf2, 0xd1, 0xde, 0x85, 0x45, - 0x96, 0x19, 0x99, 0x14, 0x72, 0x6d, 0x2c, 0xbf, 0xa8, 0x98, 0xe7, 0xfc, 0xc6, 0x82, 0xc5, 0xfc, - 0x43, 0x75, 0x40, 0x7f, 0x47, 0xff, 0x08, 0x10, 0x90, 0x53, 0x92, 0xa7, 0xf0, 0xab, 0x55, 0x0e, - 0x0f, 0xa5, 0xa5, 0xea, 0xfa, 0xd5, 0x13, 0xb7, 0x5b, 0xa6, 0xeb, 0x37, 0x10, 0x33, 0xe3, 0x42, - 0xa8, 0x36, 0x5f, 0x63, 0xb4, 0xba, 0x5f, 0x9e, 0x6d, 0x5a, 0x5f, 0x9d, 0x6d, 0x5a, 0xff, 0x3c, - 0xdb, 0xb4, 0x7e, 0xf6, 0x72, 0x73, 0xea, 0xab, 0x97, 0x9b, 0x53, 0x7f, 0x79, 0xb9, 0x39, 0xf5, - 0xe4, 0x7e, 0xa9, 0x72, 0x39, 0xc8, 0x20, 0x0f, 0x71, 0x9b, 0x37, 0x73, 0x07, 0x1f, 0x7b, 0x2c, - 0x21, 0xe5, 0xd7, 0x2e, 0xa6, 0x51, 0x33, 0x64, 0xf2, 0xba, 0xe4, 0xc5, 0xff, 0x24, 0x54, 0x95, - 0xd3, 0x9e, 0x57, 0xff, 0x89, 0xf8, 0xf4, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0xc0, 0xc6, - 0x87, 0x58, 0x19, 0x00, 0x00, + // 2082 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x77, 0xfb, 0x6b, 0x3d, 0x6f, 0xc6, 0x76, 0xdc, 0xb6, 0xb3, 0x5e, 0x87, 0x38, 0x4e, 0xef, + 0x26, 0x9b, 0x64, 0x97, 0x99, 0x8d, 0x57, 0xab, 0xbd, 0x70, 0xc0, 0x63, 0x67, 0x36, 0x66, 0x9d, + 0xc4, 0x5b, 0x0e, 0x5a, 0x29, 0x12, 0x6a, 0xd5, 0x74, 0x97, 0x67, 0x8a, 0x74, 0x77, 0x75, 0xba, + 0xaa, 0x9d, 0x0c, 0x70, 0xe1, 0x06, 0x27, 0x38, 0x20, 0xc1, 0x8d, 0x23, 0x07, 0x24, 0x24, 0x0e, + 0x9c, 0xb8, 0xed, 0x85, 0x45, 0xe2, 0xb0, 0x47, 0x04, 0x68, 0x85, 0x12, 0x24, 0xfe, 0x08, 0x2e, + 0xa8, 0x3e, 0x7a, 0xba, 0xe7, 0x23, 0xe3, 0x99, 0x38, 0x88, 0x5b, 0x77, 0xf5, 0xab, 0xdf, 0xfb, + 0xd5, 0xaf, 0x5e, 0xbd, 0x7a, 0x55, 0x0d, 0xef, 0xd2, 0xe8, 0xfb, 0xc4, 0x13, 0xf4, 0x94, 0xd4, + 0xc8, 0x33, 0xaf, 0x8d, 0xa3, 0x16, 0xa9, 0x9d, 0xde, 0x6e, 0x12, 0x81, 0x6f, 0xd7, 0xc8, 0x29, + 0x89, 0x04, 0xaf, 0xc6, 0x09, 0x13, 0xcc, 0xde, 0xec, 0x1a, 0x56, 0x33, 0xc3, 0xaa, 0x31, 0xdc, + 0x5c, 0x6b, 0xb1, 0x16, 0x53, 0x66, 0x35, 0xf9, 0xa4, 0x7b, 0x6c, 0x6e, 0x79, 0x8c, 0x87, 0x8c, + 0xd7, 0x9a, 0x98, 0xe7, 0x98, 0x1e, 0xa3, 0x91, 0xf9, 0x7e, 0x2d, 0x77, 0xcd, 0x12, 0xec, 0x05, + 0xb9, 0x91, 0x7e, 0x35, 0x66, 0x37, 0x47, 0x31, 0xcc, 0x98, 0x28, 0x53, 0xe7, 0x1f, 0x16, 0xbc, + 0x79, 0x47, 0x92, 0xae, 0x63, 0xe1, 0xb5, 0x8f, 0x63, 0x26, 0xee, 0x3c, 0x23, 0x5e, 0x2a, 0x28, + 0x8b, 0xec, 0x4b, 0x50, 0x0a, 0x71, 0xf2, 0x98, 0x08, 0x97, 0xfa, 0x1b, 0xd6, 0xb6, 0x75, 0xa3, + 0x84, 0x16, 0x74, 0xc3, 0x81, 0x6f, 0xaf, 0xc3, 0x3c, 0xe5, 0x6e, 0x33, 0xed, 0x6c, 0x4c, 0x6f, + 0x5b, 0x37, 0x16, 0xd0, 0x1c, 0xe5, 0xf5, 0xb4, 0x63, 0x3f, 0x80, 0x45, 0x92, 0x01, 0x3c, 0xec, + 0xc4, 0x64, 0x63, 0x66, 0xdb, 0xba, 0xb1, 0xb4, 0x73, 0xb3, 0xfa, 0x72, 0x2d, 0xaa, 0x77, 0x8a, + 0x1d, 0x50, 0x6f, 0x7f, 0xfb, 0x5b, 0x30, 0x2f, 0x12, 0xec, 0x13, 0xbe, 0x31, 0xbb, 0x3d, 0x73, + 0xa3, 0xbc, 0xf3, 0xce, 0x28, 0xa4, 0x87, 0xd2, 0xf2, 0x90, 0xb5, 0x90, 0xe9, 0xe3, 0xfc, 0x7b, + 0x1a, 0x2e, 0xe7, 0xc3, 0xdb, 0x27, 0x09, 0x3d, 0xc5, 0xb2, 0xeb, 0xf9, 0x06, 0x79, 0x0d, 0x96, + 0x28, 0x77, 0x03, 0xfa, 0x24, 0xa5, 0x3e, 0x96, 0x28, 0x6a, 0x94, 0x0b, 0x68, 0x91, 0xf2, 0xc3, + 0xbc, 0xd1, 0x46, 0x60, 0x7b, 0x69, 0x98, 0x06, 0xca, 0xa3, 0x7b, 0x92, 0x46, 0x3e, 0x8d, 0x5a, + 0x1b, 0xb3, 0xd2, 0x47, 0xfd, 0xed, 0x2f, 0xbf, 0xbe, 0x62, 0xfd, 0xed, 0xeb, 0x2b, 0x97, 0xf4, + 0x8c, 0x73, 0xff, 0x71, 0x95, 0xb2, 0x5a, 0x88, 0x45, 0xbb, 0x7a, 0x48, 0x5a, 0xd8, 0xeb, 0xec, + 0x13, 0x0f, 0xad, 0xe4, 0xdd, 0x1b, 0xba, 0xf7, 0xa0, 0xbe, 0x73, 0xe7, 0xd4, 0xb7, 0xd1, 0xd5, + 0x77, 0x5e, 0xe9, 0x5b, 0x1d, 0x85, 0x94, 0x0b, 0x38, 0xa0, 0xf4, 0x17, 0x99, 0xd2, 0x87, 0x8c, + 0x0b, 0xc9, 0x96, 0x37, 0x12, 0x16, 0x16, 0xe5, 0x18, 0xa9, 0xf4, 0xdb, 0xb0, 0xc8, 0xd3, 0x26, + 0xf6, 0x3c, 0x96, 0x46, 0xca, 0x40, 0x0a, 0x5e, 0x41, 0x95, 0xbc, 0xf1, 0xc0, 0xb7, 0x9f, 0xc1, + 0xbb, 0x01, 0xe3, 0x42, 0x49, 0xc9, 0xdd, 0x93, 0x84, 0x85, 0x2e, 0x3e, 0xc5, 0x34, 0xc0, 0xcd, + 0x80, 0xb8, 0x7e, 0x9a, 0xd0, 0xa8, 0xe5, 0xc6, 0xb8, 0xc3, 0x52, 0xa1, 0x26, 0x44, 0xab, 0x3c, + 0x75, 0x96, 0xca, 0x4e, 0x50, 0x64, 0xbc, 0x9b, 0x01, 0xee, 0x2b, 0xbc, 0x23, 0x05, 0x67, 0x13, + 0xb8, 0xdc, 0xef, 0x99, 0x25, 0x3e, 0x49, 0x5c, 0x0f, 0x47, 0x1e, 0x09, 0x78, 0x61, 0x56, 0xcf, + 0xf4, 0xf7, 0x56, 0x8f, 0xbf, 0x07, 0x12, 0x66, 0x4f, 0xa3, 0x38, 0x3f, 0xb5, 0xe0, 0x1b, 0xc3, + 0xc2, 0xf5, 0x88, 0x71, 0x7a, 0xb6, 0x86, 0x87, 0x50, 0x8a, 0x8d, 0x21, 0xdf, 0x98, 0x3e, 0x7b, + 0x36, 0x8f, 0xbb, 0xda, 0x66, 0xf8, 0x28, 0x07, 0x70, 0xfe, 0x68, 0xc1, 0x25, 0xc5, 0x25, 0xa7, + 0x71, 0x4f, 0x79, 0x3a, 0xc2, 0x29, 0x27, 0xfe, 0x68, 0x2a, 0x57, 0xa1, 0xc2, 0x89, 0x10, 0x01, + 0x71, 0xe3, 0x84, 0x7a, 0x44, 0xcd, 0x66, 0x09, 0x95, 0x75, 0xdb, 0x91, 0x6c, 0xb2, 0xab, 0xb0, + 0x2a, 0x98, 0xc0, 0x81, 0x1b, 0x52, 0xce, 0xe5, 0xcc, 0x29, 0x6d, 0xf5, 0xc4, 0xa1, 0x15, 0xf5, + 0xe9, 0x9e, 0xfe, 0xa2, 0xb4, 0xb2, 0xdf, 0x07, 0xbb, 0xc7, 0xd2, 0x4d, 0xb0, 0x20, 0x5a, 0x77, + 0x74, 0x21, 0x2c, 0x58, 0x22, 0x2c, 0x88, 0xf3, 0xb3, 0x8c, 0xbd, 0xe6, 0x5c, 0x27, 0x1d, 0x16, + 0xf9, 0x75, 0x1c, 0x3d, 0x4e, 0xd2, 0x58, 0x78, 0x9d, 0x73, 0xb3, 0xff, 0x00, 0xd6, 0x32, 0x36, + 0x06, 0xa7, 0x48, 0x3f, 0x63, 0xaa, 0x9d, 0x2b, 0x56, 0xce, 0x4f, 0x2c, 0xd8, 0x50, 0x8c, 0x76, + 0x83, 0x20, 0xd3, 0x9b, 0xdf, 0xc5, 0x34, 0xf1, 0x52, 0x71, 0x6e, 0x3a, 0xc3, 0xc5, 0x99, 0x79, + 0x89, 0x38, 0x0c, 0xb6, 0x74, 0x94, 0xd1, 0x08, 0x27, 0x9d, 0x07, 0xb1, 0xa2, 0xa2, 0xb9, 0x7e, + 0x37, 0xf6, 0xb1, 0x20, 0xf6, 0x3d, 0x98, 0xd7, 0xee, 0x15, 0x99, 0xf2, 0x4e, 0x6d, 0x54, 0x1c, + 0x0d, 0x81, 0xa9, 0xcf, 0xca, 0x95, 0x80, 0x0c, 0x88, 0xf3, 0x67, 0x0b, 0x6c, 0xe5, 0xf1, 0x3e, + 0x79, 0x2a, 0xf7, 0x18, 0x15, 0xf4, 0x7c, 0xf4, 0xa8, 0x0f, 0x00, 0x9a, 0x69, 0x47, 0x2f, 0xb3, + 0x2c, 0x9c, 0x6f, 0x8d, 0x0c, 0xe7, 0x98, 0x89, 0x43, 0x1a, 0x52, 0x8d, 0x8e, 0x4a, 0xcd, 0xb4, + 0x63, 0xfc, 0x7c, 0x0a, 0x65, 0x4e, 0x82, 0x20, 0xc3, 0x9a, 0x99, 0x18, 0x0b, 0x64, 0x77, 0x0d, + 0xe6, 0xfc, 0x3d, 0x9b, 0xc7, 0xfb, 0xe4, 0x69, 0xbe, 0x34, 0xc6, 0x19, 0xd1, 0x83, 0x21, 0x23, + 0xfa, 0x60, 0xbc, 0x74, 0x3b, 0x7c, 0x5c, 0x9f, 0x0d, 0x1b, 0xd7, 0xe4, 0x88, 0xc5, 0xd1, 0xfd, + 0x10, 0xd6, 0xd4, 0xe0, 0x74, 0x46, 0xea, 0xce, 0xd5, 0xe8, 0x81, 0x35, 0x60, 0x4e, 0x51, 0x50, + 0x91, 0x39, 0x91, 0xb2, 0x26, 0x4e, 0x74, 0x77, 0xe7, 0x7b, 0xb0, 0xae, 0x9c, 0x4b, 0x9b, 0x9e, + 0x70, 0xdc, 0xef, 0x0b, 0xc7, 0xeb, 0x67, 0x79, 0x18, 0x1a, 0x85, 0xbf, 0x99, 0x86, 0x4d, 0x85, + 0x7f, 0x44, 0x92, 0x98, 0x88, 0x14, 0x07, 0x3d, 0x4e, 0xbe, 0xd3, 0xe7, 0xe4, 0xfd, 0xf1, 0x84, + 0x1c, 0xe6, 0xca, 0xa6, 0xb0, 0x1e, 0x67, 0x4e, 0xb2, 0x04, 0x41, 0xa3, 0x13, 0x66, 0x14, 0x1a, + 0xb9, 0x9c, 0xfa, 0xd8, 0x1d, 0x44, 0x27, 0x4c, 0xa1, 0x5b, 0x68, 0x35, 0x1e, 0xfc, 0x64, 0x23, + 0x78, 0x23, 0x2b, 0x2d, 0x66, 0x14, 0xf8, 0xce, 0x04, 0xe0, 0xa6, 0xac, 0x30, 0xf8, 0x19, 0x90, + 0xf3, 0x2f, 0xcb, 0x64, 0x88, 0x3b, 0xcf, 0x62, 0x9a, 0x74, 0x1a, 0xa9, 0x48, 0x13, 0xc2, 0xff, + 0x67, 0x6a, 0x9d, 0xc2, 0x26, 0x51, 0x8e, 0xdc, 0x13, 0xed, 0xa9, 0x47, 0x32, 0x3d, 0xaa, 0x0f, + 0x47, 0x57, 0x38, 0x03, 0x34, 0x0b, 0xb2, 0xbd, 0x49, 0x86, 0x7f, 0x76, 0xfe, 0x32, 0x0d, 0x57, + 0x87, 0x05, 0x84, 0x51, 0xc5, 0x8c, 0x74, 0x64, 0xe8, 0x17, 0xd4, 0x9f, 0x3e, 0x97, 0xfa, 0x53, + 0x5d, 0xf5, 0xed, 0x5b, 0xb0, 0x42, 0xb9, 0xdb, 0x66, 0x69, 0x12, 0x74, 0xdc, 0xe2, 0xdc, 0x2e, + 0xa0, 0x65, 0xca, 0xef, 0xaa, 0xf6, 0xac, 0x1e, 0x6c, 0x40, 0xc5, 0x58, 0x14, 0xf6, 0xc3, 0xf1, + 0xaa, 0xcb, 0xb2, 0xe9, 0x28, 0xb7, 0x04, 0xbb, 0x0e, 0x20, 0xc7, 0x64, 0x76, 0x98, 0xb9, 0xf1, + 0x51, 0x94, 0x36, 0x6a, 0x13, 0x72, 0x7e, 0x69, 0xc1, 0x45, 0xbd, 0x7e, 0xbb, 0x85, 0xc5, 0x3e, + 0x51, 0x05, 0x85, 0x7d, 0x05, 0xca, 0x3c, 0xf1, 0x5c, 0xec, 0xfb, 0x09, 0xe1, 0xdc, 0xa8, 0x08, + 0x3c, 0xf1, 0x76, 0x75, 0xcb, 0x78, 0xf5, 0xdf, 0xc7, 0x30, 0x8f, 0x43, 0xf9, 0x6c, 0x62, 0xe2, + 0xad, 0xaa, 0x66, 0x56, 0x95, 0xe7, 0xa5, 0xae, 0xc8, 0x7b, 0x8c, 0x46, 0x59, 0x80, 0x69, 0x73, + 0xe7, 0x57, 0xd9, 0x29, 0x27, 0x67, 0xf6, 0x39, 0x15, 0x6d, 0x3f, 0xc1, 0x4f, 0x07, 0x3d, 0x5b, + 0x43, 0x3c, 0x5f, 0x81, 0xb2, 0xcf, 0x45, 0x97, 0xbf, 0xde, 0x81, 0xc1, 0xe7, 0x22, 0xe3, 0xff, + 0xca, 0xd4, 0x7e, 0x9f, 0x2d, 0xb5, 0x9c, 0x5a, 0x1d, 0x07, 0x32, 0xfb, 0x3e, 0x4c, 0x70, 0xc4, + 0x4f, 0x48, 0x22, 0xe3, 0x41, 0x8a, 0x37, 0xc8, 0xb2, 0x84, 0x96, 0x79, 0xe2, 0x1d, 0x17, 0x89, + 0xde, 0x82, 0x15, 0x49, 0x74, 0x50, 0xcb, 0x12, 0x5a, 0xf6, 0xb9, 0x38, 0x7e, 0x2d, 0x72, 0x86, + 0xc5, 0x33, 0xa3, 0x99, 0x62, 0xb3, 0x58, 0x10, 0x2c, 0xfb, 0xba, 0xc1, 0x4d, 0x55, 0x8b, 0x9c, + 0x6c, 0xb9, 0x2d, 0xdd, 0x1c, 0x9d, 0x1f, 0x0a, 0x18, 0x68, 0xc9, 0x2f, 0xbe, 0x72, 0xe7, 0x4f, + 0x16, 0x5c, 0xea, 0xcf, 0x20, 0x85, 0xb2, 0xd9, 0x7e, 0x04, 0x15, 0xb3, 0x40, 0xf5, 0x2e, 0xa4, + 0x13, 0xd2, 0xed, 0x49, 0x12, 0x52, 0xbe, 0x19, 0x59, 0xa8, 0x1c, 0xe6, 0x4d, 0xf6, 0x21, 0x2c, + 0xeb, 0x12, 0xdf, 0x7d, 0x92, 0xe2, 0x48, 0x50, 0xa1, 0x8f, 0x82, 0x63, 0x96, 0xfa, 0x4b, 0xba, + 0xef, 0x67, 0xa6, 0x6b, 0xbe, 0x03, 0x69, 0xe6, 0x7d, 0xe5, 0xc3, 0xe8, 0x4c, 0xf3, 0x0e, 0xa8, + 0xe3, 0x65, 0x48, 0x4d, 0x67, 0x73, 0x24, 0xed, 0x6d, 0xb4, 0x3f, 0x87, 0x72, 0x20, 0x5f, 0x8d, + 0x14, 0x7a, 0x62, 0x27, 0x2e, 0x09, 0x8c, 0x12, 0x10, 0x74, 0x5b, 0xec, 0x10, 0x56, 0x8b, 0x22, + 0x9b, 0x83, 0x8f, 0xca, 0x37, 0xe5, 0x9d, 0x8f, 0x27, 0xd6, 0x5a, 0xd3, 0x35, 0x7e, 0x56, 0xc2, + 0xfe, 0x0f, 0x4e, 0xcb, 0x14, 0x59, 0x0d, 0x42, 0xf6, 0x29, 0x57, 0x11, 0x7b, 0xec, 0xb5, 0x89, + 0x9f, 0x06, 0xc4, 0xfe, 0x14, 0x16, 0xb8, 0x79, 0x1e, 0xa7, 0x3c, 0x1d, 0x02, 0x81, 0xba, 0x00, + 0xce, 0x73, 0x0b, 0xb6, 0x95, 0x27, 0x79, 0xa2, 0x95, 0xd9, 0x90, 0x3c, 0xc5, 0x89, 0xbf, 0x87, + 0xc3, 0x18, 0xd3, 0x56, 0x64, 0xa2, 0xfa, 0x11, 0x2c, 0x7a, 0xa6, 0x45, 0xef, 0x49, 0xda, 0xed, + 0x47, 0x67, 0xdd, 0x45, 0x0c, 0xe0, 0xc9, 0x6d, 0x07, 0x55, 0xbc, 0xc2, 0x9b, 0xdd, 0x84, 0xf5, + 0x2e, 0x76, 0xa2, 0x8c, 0xdd, 0x98, 0xb1, 0x60, 0xac, 0x13, 0x5c, 0x06, 0xab, 0x9d, 0x1c, 0x31, + 0x16, 0xa0, 0x55, 0x6f, 0xa0, 0x8d, 0x3b, 0xa9, 0xc9, 0x31, 0x3d, 0x9c, 0xf6, 0x29, 0x17, 0x09, + 0x6d, 0xea, 0x6b, 0x90, 0x63, 0x58, 0xce, 0x12, 0x86, 0x26, 0x91, 0xad, 0xdb, 0x91, 0xc5, 0xdc, + 0xae, 0xee, 0xa2, 0xf1, 0x38, 0x5a, 0xc2, 0x3d, 0xef, 0xce, 0x1f, 0x2c, 0x70, 0xb2, 0x52, 0x79, + 0x8f, 0x45, 0xbe, 0x3a, 0xf3, 0xe0, 0xc9, 0xc2, 0x7e, 0xb7, 0xb7, 0xb6, 0x7c, 0x6f, 0xbc, 0x48, + 0xd3, 0x85, 0xad, 0xee, 0x69, 0xdb, 0x30, 0xdb, 0xc6, 0xbc, 0xad, 0x16, 0x43, 0x05, 0xa9, 0x67, + 0xe9, 0x93, 0x66, 0x65, 0x86, 0x0a, 0xe2, 0x05, 0xb4, 0x40, 0x4d, 0x6d, 0xe0, 0xfc, 0x7a, 0x1a, + 0xae, 0x15, 0x96, 0xe9, 0xab, 0x52, 0xff, 0x3f, 0xaf, 0xd8, 0xfe, 0xb4, 0x38, 0xfb, 0xfa, 0xd2, + 0xa2, 0xf3, 0x1f, 0x0b, 0xae, 0x6b, 0x85, 0x5e, 0xaa, 0xcd, 0xc3, 0x84, 0xb6, 0x5a, 0xc3, 0x24, + 0xaa, 0x14, 0x24, 0xba, 0x0e, 0x4b, 0x46, 0x0d, 0x63, 0x6e, 0x34, 0xea, 0x6b, 0x95, 0xc7, 0x6d, + 0xa1, 0x1f, 0x89, 0x6f, 0x12, 0x50, 0x61, 0x4a, 0xed, 0xee, 0x37, 0xe5, 0xf9, 0xae, 0x9c, 0xe0, + 0x5b, 0xb0, 0x12, 0x07, 0xd8, 0xeb, 0x35, 0x9f, 0x55, 0xe6, 0xcb, 0xfa, 0x43, 0x6e, 0x5b, 0x85, + 0xd5, 0x7e, 0x74, 0x8f, 0xfa, 0xba, 0x0a, 0x42, 0x2b, 0xbd, 0xe0, 0x7b, 0xd4, 0x77, 0x02, 0x58, + 0x52, 0x83, 0x57, 0x0d, 0x0d, 0x4c, 0x03, 0x7b, 0x03, 0xde, 0x30, 0xb1, 0x6f, 0x86, 0x98, 0xbd, + 0xda, 0x17, 0x61, 0x5e, 0xba, 0x26, 0x7a, 0x3d, 0x57, 0x90, 0x79, 0xb3, 0xd7, 0x60, 0xee, 0x24, + 0xc0, 0x2d, 0x7d, 0x6a, 0x5b, 0x44, 0xfa, 0x45, 0x86, 0xaa, 0x47, 0x7d, 0x7d, 0xd7, 0x59, 0x42, + 0xea, 0xd9, 0xf9, 0x85, 0x05, 0xef, 0xe9, 0x8b, 0x03, 0xc1, 0x42, 0xea, 0x15, 0x66, 0xa6, 0x41, + 0xc8, 0xbd, 0x34, 0x10, 0x34, 0x0e, 0x28, 0x49, 0xb8, 0xce, 0x55, 0xbe, 0x4d, 0xe0, 0x62, 0x76, + 0x25, 0x41, 0x88, 0x1b, 0xe6, 0x06, 0x66, 0x45, 0x8f, 0x4c, 0x96, 0xa6, 0x30, 0x2d, 0x02, 0xa3, + 0xb5, 0x70, 0xb0, 0x91, 0x3b, 0x5f, 0x58, 0xe6, 0xa8, 0xa8, 0xa8, 0x34, 0x19, 0x7b, 0x6c, 0x92, + 0xe5, 0x7d, 0xa8, 0xf0, 0x98, 0xf5, 0xef, 0xff, 0x23, 0x17, 0x6e, 0x1f, 0x04, 0x2a, 0x4b, 0x00, + 0xb3, 0xfd, 0xdb, 0x8f, 0xc0, 0xf6, 0xbb, 0xa1, 0xd5, 0x45, 0x9d, 0x9e, 0x1c, 0x75, 0x25, 0x87, + 0xc9, 0x4a, 0x8b, 0x36, 0x2c, 0xf7, 0xd3, 0xbf, 0x00, 0x33, 0x9c, 0x3c, 0x51, 0xd3, 0x38, 0x8b, + 0xe4, 0xa3, 0xbd, 0x07, 0x25, 0x96, 0x19, 0x99, 0x34, 0x74, 0x6d, 0x2c, 0xbf, 0x28, 0xef, 0xe7, + 0xfc, 0xce, 0x82, 0x52, 0xf7, 0xc3, 0xe8, 0x45, 0xf1, 0x6d, 0x7d, 0x4f, 0x10, 0x90, 0x53, 0xd2, + 0xdd, 0x06, 0xae, 0x8e, 0x72, 0x78, 0x28, 0x2d, 0xd5, 0xc5, 0x80, 0x7a, 0xe2, 0x76, 0xdd, 0x5c, + 0x0c, 0x18, 0x88, 0x99, 0x71, 0x21, 0xd4, 0x4d, 0x80, 0xc6, 0x70, 0x7e, 0x64, 0x76, 0xe0, 0x4f, + 0x12, 0x1c, 0x89, 0xdd, 0x54, 0xb4, 0x59, 0x42, 0x7f, 0xa0, 0x6e, 0x72, 0xb9, 0x0c, 0xf7, 0x96, + 0x6c, 0x36, 0xc5, 0x56, 0x09, 0x65, 0xaf, 0x76, 0x03, 0xe6, 0xd5, 0xe3, 0x58, 0xdb, 0xd7, 0x20, + 0x34, 0x32, 0xbd, 0x9d, 0x1f, 0x67, 0xd1, 0xa5, 0x6d, 0x24, 0x80, 0xbe, 0x45, 0xee, 0xba, 0x26, + 0xbd, 0xae, 0x49, 0x91, 0xd4, 0x74, 0x2f, 0xa9, 0x8f, 0x7a, 0x0a, 0xdd, 0x52, 0xfd, 0xb2, 0xa9, + 0xdd, 0xd6, 0x07, 0x6b, 0xb7, 0x83, 0x48, 0x74, 0xcb, 0xdc, 0x4f, 0x60, 0x45, 0x51, 0x38, 0x88, + 0x4e, 0x71, 0x40, 0x7d, 0xc5, 0xe4, 0x55, 0xfc, 0x3b, 0xbf, 0xed, 0x59, 0x2a, 0x3a, 0xef, 0xab, + 0xb4, 0x31, 0xf9, 0x95, 0x78, 0xa9, 0xef, 0x60, 0x72, 0x19, 0xa0, 0x2f, 0x1d, 0x96, 0x4c, 0xd4, + 0xa9, 0xcc, 0x76, 0x01, 0x66, 0x64, 0x26, 0xd3, 0xb7, 0xa4, 0xf2, 0xd1, 0xde, 0x86, 0xb2, 0x4f, + 0xb8, 0x97, 0x50, 0x75, 0x5d, 0x67, 0x72, 0x5c, 0xb1, 0xa9, 0xde, 0xfe, 0xf2, 0xf9, 0x96, 0xf5, + 0xd5, 0xf3, 0x2d, 0xeb, 0x9f, 0xcf, 0xb7, 0xac, 0x9f, 0xbf, 0xd8, 0x9a, 0xfa, 0xea, 0xc5, 0xd6, + 0xd4, 0x5f, 0x5f, 0x6c, 0x4d, 0x3d, 0xba, 0xdf, 0xa2, 0xa2, 0x9d, 0x36, 0xab, 0x1e, 0x0b, 0x6b, + 0x07, 0xd9, 0xb4, 0x1e, 0xe2, 0x26, 0xaf, 0x75, 0x27, 0xf9, 0x9b, 0x1e, 0x4b, 0x48, 0xf1, 0xb5, + 0x8d, 0x69, 0x54, 0x0b, 0x99, 0xac, 0xb5, 0x78, 0xfe, 0x37, 0x4a, 0x74, 0x62, 0xc2, 0x9b, 0xf3, + 0xea, 0x1f, 0xd4, 0x87, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x62, 0x4f, 0x5a, 0x52, 0x1b, + 0x00, 0x00, } func (m *EventBatchSpotExecution) Marshal() (dAtA []byte, err error) { @@ -3347,6 +3611,13 @@ func (m *EventConditionalDerivativeOrderTrigger) MarshalToSizedBuffer(dAtA []byt _ = i var l int _ = l + if len(m.TriggeredOrderCid) > 0 { + i -= len(m.TriggeredOrderCid) + copy(dAtA[i:], m.TriggeredOrderCid) + i = encodeVarintEvents(dAtA, i, uint64(len(m.TriggeredOrderCid))) + i-- + dAtA[i] = 0x2a + } if len(m.PlacedOrderHash) > 0 { i -= len(m.PlacedOrderHash) copy(dAtA[i:], m.PlacedOrderHash) @@ -3401,6 +3672,15 @@ func (m *EventOrderFail) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Cids) > 0 { + for iNdEx := len(m.Cids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Cids[iNdEx]) + copy(dAtA[i:], m.Cids[iNdEx]) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Cids[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } if len(m.Flags) > 0 { dAtA22 := make([]byte, len(m.Flags)*10) var j21 int @@ -3624,67 +3904,253 @@ func (m *Orderbook) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { - offset -= sovEvents(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *EventGrantAuthorizations) 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 *EventBatchSpotExecution) Size() (n int) { - if m == nil { - return 0 - } + +func (m *EventGrantAuthorizations) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventGrantAuthorizations) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovEvents(uint64(l)) - } - if m.IsBuy { - n += 2 - } - if m.ExecutionType != 0 { - n += 1 + sovEvents(uint64(m.ExecutionType)) - } - if len(m.Trades) > 0 { - for _, e := range m.Trades { - l = e.Size() - n += 1 + l + sovEvents(uint64(l)) + if len(m.Grants) > 0 { + for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvents(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 } } - return n + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil } -func (m *EventBatchDerivativeExecution) Size() (n int) { - if m == nil { - return 0 +func (m *EventGrantActivation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } + return dAtA[:n], nil +} + +func (m *EventGrantActivation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventGrantActivation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.MarketId) - if l > 0 { - n += 1 + l + sovEvents(uint64(l)) - } - if m.IsBuy { - n += 2 - } - if m.IsLiquidation { - n += 2 + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvents(dAtA, i, uint64(size)) } - if m.CumulativeFunding != nil { - l = m.CumulativeFunding.Size() - n += 1 + l + sovEvents(uint64(l)) + i-- + dAtA[i] = 0x1a + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0x12 } - if m.ExecutionType != 0 { - n += 1 + sovEvents(uint64(m.ExecutionType)) + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa } - if len(m.Trades) > 0 { - for _, e := range m.Trades { + return len(dAtA) - i, nil +} + +func (m *EventInvalidGrant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventInvalidGrant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventInvalidGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0x12 + } + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventOrderCancelFail) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventOrderCancelFail) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventOrderCancelFail) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x2a + } + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintEvents(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x22 + } + if len(m.OrderHash) > 0 { + i -= len(m.OrderHash) + copy(dAtA[i:], m.OrderHash) + i = encodeVarintEvents(dAtA, i, uint64(len(m.OrderHash))) + i-- + dAtA[i] = 0x1a + } + if len(m.SubaccountId) > 0 { + i -= len(m.SubaccountId) + copy(dAtA[i:], m.SubaccountId) + i = encodeVarintEvents(dAtA, i, uint64(len(m.SubaccountId))) + i-- + dAtA[i] = 0x12 + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintEvents(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintEvents(dAtA []byte, offset int, v uint64) int { + offset -= sovEvents(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *EventBatchSpotExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.IsBuy { + n += 2 + } + if m.ExecutionType != 0 { + n += 1 + sovEvents(uint64(m.ExecutionType)) + } + if len(m.Trades) > 0 { + for _, e := range m.Trades { + l = e.Size() + n += 1 + l + sovEvents(uint64(l)) + } + } + return n +} + +func (m *EventBatchDerivativeExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.IsBuy { + n += 2 + } + if m.IsLiquidation { + n += 2 + } + if m.CumulativeFunding != nil { + l = m.CumulativeFunding.Size() + n += 1 + l + sovEvents(uint64(l)) + } + if m.ExecutionType != 0 { + n += 1 + sovEvents(uint64(m.ExecutionType)) + } + if len(m.Trades) > 0 { + for _, e := range m.Trades { l = e.Size() n += 1 + l + sovEvents(uint64(l)) } @@ -4173,6 +4639,10 @@ func (m *EventConditionalDerivativeOrderTrigger) Size() (n int) { if l > 0 { n += 1 + l + sovEvents(uint64(l)) } + l = len(m.TriggeredOrderCid) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } return n } @@ -4199,6 +4669,12 @@ func (m *EventOrderFail) Size() (n int) { } n += 1 + sovEvents(uint64(l)) + l } + if len(m.Cids) > 0 { + for _, s := range m.Cids { + l = len(s) + n += 1 + l + sovEvents(uint64(l)) + } + } return n } @@ -4279,6 +4755,90 @@ func (m *Orderbook) Size() (n int) { return n } +func (m *EventGrantAuthorizations) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.Size() + n += 1 + l + sovEvents(uint64(l)) + } + } + return n +} + +func (m *EventGrantActivation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovEvents(uint64(l)) + return n +} + +func (m *EventInvalidGrant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + +func (m *EventOrderCancelFail) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.SubaccountId) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.OrderHash) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + return n +} + func sovEvents(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -4571,7 +5131,7 @@ func (m *EventBatchDerivativeExecution) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.CumulativeFunding = &v if err := m.CumulativeFunding.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6420,7 +6980,7 @@ func (m *EventPerpetualMarketFundingUpdate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.FundingRate = &v if err := m.FundingRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6456,7 +7016,7 @@ func (m *EventPerpetualMarketFundingUpdate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MarkPrice = &v if err := m.MarkPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8093,6 +8653,38 @@ func (m *EventConditionalDerivativeOrderTrigger) Unmarshal(dAtA []byte) error { m.PlacedOrderHash = []byte{} } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TriggeredOrderCid", 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.TriggeredOrderCid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -8285,22 +8877,54 @@ func (m *EventOrderFail) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field Flags", wireType) } - 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 + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cids", wireType) } - iNdEx += skippy - } - } - + 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.Cids = append(m.Cids, 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 } @@ -8765,6 +9389,594 @@ func (m *Orderbook) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventGrantAuthorizations) Unmarshal(dAtA []byte) 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: EventGrantAuthorizations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventGrantAuthorizations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grants", 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 + } + m.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-1].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 (m *EventGrantActivation) Unmarshal(dAtA []byte) 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: EventGrantActivation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventGrantActivation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + 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 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 + } + if err := m.Amount.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 (m *EventInvalidGrant) Unmarshal(dAtA []byte) 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: EventInvalidGrant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventInvalidGrant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = 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 *EventOrderCancelFail) Unmarshal(dAtA []byte) 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: EventOrderCancelFail: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventOrderCancelFail: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", 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.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", 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.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 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.Description = 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 skipEvents(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/exchange.go b/chain/exchange/types/exchange.go index d4ad366e..ac34af0e 100644 --- a/chain/exchange/types/exchange.go +++ b/chain/exchange/types/exchange.go @@ -3,6 +3,7 @@ package types import ( "fmt" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" ) @@ -15,7 +16,7 @@ type MatchedMarketDirection struct { type TriggeredOrdersInMarket struct { Market *DerivativeMarket - MarkPrice sdk.Dec + MarkPrice math.LegacyDec MarketOrders []*DerivativeMarketOrder LimitOrders []*DerivativeLimitOrder HasLimitBuyOrders bool @@ -45,10 +46,10 @@ func (s MarketStatus) SupportsOrderCancellations() bool { type TradingRewardAccountPoints struct { Account sdk.AccAddress - Points sdk.Dec + Points math.LegacyDec } -func (p *PointsMultiplier) GetMultiplier(e ExecutionType) sdk.Dec { +func (p *PointsMultiplier) GetMultiplier(e ExecutionType) math.LegacyDec { if e.IsMaker() { return p.MakerPointsMultiplier } @@ -57,9 +58,9 @@ func (p *PointsMultiplier) GetMultiplier(e ExecutionType) sdk.Dec { } type IOrder interface { - GetPrice() sdk.Dec - GetQuantity() sdk.Dec - GetFillable() sdk.Dec + GetPrice() math.LegacyDec + GetQuantity() math.LegacyDec + GetFillable() math.LegacyDec IsBuy() bool GetSubaccountID() common.Hash } @@ -67,63 +68,63 @@ type IOrder interface { // IDerivativeOrder proto interface for wrapping all different variations of representations of derivative orders. Methods can be added as needed (make sure to add to every implementor) type IDerivativeOrder interface { IOrder - GetMargin() sdk.Dec + GetMargin() math.LegacyDec IsReduceOnly() bool IsVanilla() bool } type IMutableDerivativeOrder interface { IDerivativeOrder - SetPrice(sdk.Dec) - SetQuantity(sdk.Dec) - SetMargin(sdk.Dec) + SetPrice(math.LegacyDec) + SetQuantity(math.LegacyDec) + SetMargin(math.LegacyDec) } // DerivativeOrder - IMutableDerivativeOrder implementation -func (o *DerivativeOrder) GetPrice() sdk.Dec { +func (o *DerivativeOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *DerivativeOrder) GetQuantity() sdk.Dec { +func (o *DerivativeOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *DerivativeOrder) GetFillable() sdk.Dec { +func (o *DerivativeOrder) GetFillable() math.LegacyDec { return o.GetQuantity() } -func (o *DerivativeOrder) GetMargin() sdk.Dec { +func (o *DerivativeOrder) GetMargin() math.LegacyDec { return o.Margin } func (o *DerivativeOrder) GetSubaccountID() common.Hash { return o.OrderInfo.SubaccountID() } -func (o *DerivativeOrder) SetPrice(price sdk.Dec) { +func (o *DerivativeOrder) SetPrice(price math.LegacyDec) { o.OrderInfo.Price = price } -func (o *DerivativeOrder) SetQuantity(quantity sdk.Dec) { +func (o *DerivativeOrder) SetQuantity(quantity math.LegacyDec) { o.OrderInfo.Quantity = quantity } -func (o *DerivativeOrder) SetMargin(margin sdk.Dec) { +func (o *DerivativeOrder) SetMargin(margin math.LegacyDec) { o.Margin = margin } // DerivativeLimitOrder - IMutableDerivativeOrder implementation -func (o *DerivativeLimitOrder) GetPrice() sdk.Dec { +func (o *DerivativeLimitOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *DerivativeLimitOrder) GetQuantity() sdk.Dec { +func (o *DerivativeLimitOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *DerivativeLimitOrder) GetFillable() sdk.Dec { +func (o *DerivativeLimitOrder) GetFillable() math.LegacyDec { return o.Fillable } -func (o *DerivativeLimitOrder) GetMargin() sdk.Dec { +func (o *DerivativeLimitOrder) GetMargin() math.LegacyDec { return o.Margin } @@ -131,46 +132,46 @@ func (o *DerivativeLimitOrder) GetSubaccountID() common.Hash { return o.OrderInfo.SubaccountID() } -func (o *DerivativeLimitOrder) SetPrice(price sdk.Dec) { +func (o *DerivativeLimitOrder) SetPrice(price math.LegacyDec) { o.OrderInfo.Price = price } -func (o *DerivativeLimitOrder) SetQuantity(quantity sdk.Dec) { +func (o *DerivativeLimitOrder) SetQuantity(quantity math.LegacyDec) { o.OrderInfo.Quantity = quantity o.Fillable = quantity } -func (o *DerivativeLimitOrder) SetMargin(margin sdk.Dec) { +func (o *DerivativeLimitOrder) SetMargin(margin math.LegacyDec) { o.Margin = margin } // DerivativeMarketOrder - IMutableDerivativeOrder implementation -func (o *DerivativeMarketOrder) GetPrice() sdk.Dec { +func (o *DerivativeMarketOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *DerivativeMarketOrder) GetQuantity() sdk.Dec { +func (o *DerivativeMarketOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *DerivativeMarketOrder) GetFillable() sdk.Dec { +func (o *DerivativeMarketOrder) GetFillable() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *DerivativeMarketOrder) GetMargin() sdk.Dec { +func (o *DerivativeMarketOrder) GetMargin() math.LegacyDec { return o.Margin } func (o *DerivativeMarketOrder) GetSubaccountID() common.Hash { return o.OrderInfo.SubaccountID() } -func (o *DerivativeMarketOrder) SetPrice(price sdk.Dec) { +func (o *DerivativeMarketOrder) SetPrice(price math.LegacyDec) { o.OrderInfo.Price = price } -func (o *DerivativeMarketOrder) SetQuantity(quantity sdk.Dec) { +func (o *DerivativeMarketOrder) SetQuantity(quantity math.LegacyDec) { o.OrderInfo.Quantity = quantity } -func (o *DerivativeMarketOrder) SetMargin(margin sdk.Dec) { +func (o *DerivativeMarketOrder) SetMargin(margin math.LegacyDec) { o.Margin = margin } @@ -180,37 +181,37 @@ func (o *DerivativeMarketOrder) DebugString() string { // spot orders -func (o *SpotOrder) GetPrice() sdk.Dec { +func (o *SpotOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *SpotLimitOrder) GetPrice() sdk.Dec { +func (o *SpotLimitOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *SpotMarketOrder) GetPrice() sdk.Dec { +func (o *SpotMarketOrder) GetPrice() math.LegacyDec { return o.OrderInfo.Price } -func (o *SpotOrder) GetQuantity() sdk.Dec { +func (o *SpotOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *SpotLimitOrder) GetQuantity() sdk.Dec { +func (o *SpotLimitOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *SpotMarketOrder) GetQuantity() sdk.Dec { +func (o *SpotMarketOrder) GetQuantity() math.LegacyDec { return o.OrderInfo.Quantity } func (o *SpotMarketOrder) IsBuy() bool { return o.OrderType.IsBuy() } -func (o *SpotOrder) GetFillable() sdk.Dec { +func (o *SpotOrder) GetFillable() math.LegacyDec { return o.OrderInfo.Quantity } -func (o *SpotMarketOrder) GetFillable() sdk.Dec { +func (o *SpotMarketOrder) GetFillable() math.LegacyDec { // no fillable for market order, but quantity works same in this case return o.OrderInfo.Quantity } -func (o *SpotLimitOrder) GetFillable() sdk.Dec { +func (o *SpotLimitOrder) GetFillable() math.LegacyDec { return o.Fillable } diff --git a/chain/exchange/types/exchange.pb.go b/chain/exchange/types/exchange.pb.go index d462df25..ff40e9d8 100644 --- a/chain/exchange/types/exchange.pb.go +++ b/chain/exchange/types/exchange.pb.go @@ -4,10 +4,12 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types1 "github.com/InjectiveLabs/sdk-go/chain/oracle/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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -236,22 +238,22 @@ type Params struct { DerivativeMarketInstantListingFee types.Coin `protobuf:"bytes,2,opt,name=derivative_market_instant_listing_fee,json=derivativeMarketInstantListingFee,proto3" json:"derivative_market_instant_listing_fee"` // default_spot_maker_fee defines the default exchange trade fee for makers on // a spot market - DefaultSpotMakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=default_spot_maker_fee_rate,json=defaultSpotMakerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_spot_maker_fee_rate"` + DefaultSpotMakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=default_spot_maker_fee_rate,json=defaultSpotMakerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_spot_maker_fee_rate"` // default_spot_taker_fee_rate defines the default exchange trade fee rate for // takers on a new spot market - DefaultSpotTakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=default_spot_taker_fee_rate,json=defaultSpotTakerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_spot_taker_fee_rate"` + DefaultSpotTakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=default_spot_taker_fee_rate,json=defaultSpotTakerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_spot_taker_fee_rate"` // default_derivative_maker_fee defines the default exchange trade fee for // makers on a new derivative market - DefaultDerivativeMakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=default_derivative_maker_fee_rate,json=defaultDerivativeMakerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_derivative_maker_fee_rate"` + DefaultDerivativeMakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=default_derivative_maker_fee_rate,json=defaultDerivativeMakerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_derivative_maker_fee_rate"` // default_derivative_taker_fee defines the default exchange trade fee for // takers on a new derivative market - DefaultDerivativeTakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=default_derivative_taker_fee_rate,json=defaultDerivativeTakerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_derivative_taker_fee_rate"` + DefaultDerivativeTakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=default_derivative_taker_fee_rate,json=defaultDerivativeTakerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_derivative_taker_fee_rate"` // default_initial_margin_ratio defines the default initial margin ratio on a // new derivative market - DefaultInitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=default_initial_margin_ratio,json=defaultInitialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_initial_margin_ratio"` + DefaultInitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=default_initial_margin_ratio,json=defaultInitialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_initial_margin_ratio"` // default_maintenance_margin_ratio defines the default maintenance margin // ratio on a new derivative market - DefaultMaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=default_maintenance_margin_ratio,json=defaultMaintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_maintenance_margin_ratio"` + DefaultMaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=default_maintenance_margin_ratio,json=defaultMaintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_maintenance_margin_ratio"` // default_funding_interval defines the default funding interval on a // derivative market DefaultFundingInterval int64 `protobuf:"varint,9,opt,name=default_funding_interval,json=defaultFundingInterval,proto3" json:"default_funding_interval,omitempty"` @@ -260,24 +262,24 @@ type Params struct { FundingMultiple int64 `protobuf:"varint,10,opt,name=funding_multiple,json=fundingMultiple,proto3" json:"funding_multiple,omitempty"` // relayer_fee_share_rate defines the trade fee share percentage that goes to // relayers - RelayerFeeShareRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate"` + RelayerFeeShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate"` // default_hourly_funding_rate_cap defines the default maximum absolute value // of the hourly funding rate - DefaultHourlyFundingRateCap github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=default_hourly_funding_rate_cap,json=defaultHourlyFundingRateCap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_hourly_funding_rate_cap"` + DefaultHourlyFundingRateCap cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=default_hourly_funding_rate_cap,json=defaultHourlyFundingRateCap,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_hourly_funding_rate_cap"` // hourly_interest_rate defines the hourly interest rate - DefaultHourlyInterestRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=default_hourly_interest_rate,json=defaultHourlyInterestRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"default_hourly_interest_rate"` + DefaultHourlyInterestRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=default_hourly_interest_rate,json=defaultHourlyInterestRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"default_hourly_interest_rate"` // max_derivative_order_side_count defines the maximum number of derivative // active orders a subaccount can have for a given orderbook side MaxDerivativeOrderSideCount uint32 `protobuf:"varint,14,opt,name=max_derivative_order_side_count,json=maxDerivativeOrderSideCount,proto3" json:"max_derivative_order_side_count,omitempty"` // inj_reward_staked_requirement_threshold defines the threshold on INJ // rewards after which one also needs staked INJ to receive more - InjRewardStakedRequirementThreshold github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,15,opt,name=inj_reward_staked_requirement_threshold,json=injRewardStakedRequirementThreshold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"inj_reward_staked_requirement_threshold"` + InjRewardStakedRequirementThreshold cosmossdk_io_math.Int `protobuf:"bytes,15,opt,name=inj_reward_staked_requirement_threshold,json=injRewardStakedRequirementThreshold,proto3,customtype=cosmossdk.io/math.Int" json:"inj_reward_staked_requirement_threshold"` // the trading_rewards_vesting_duration defines the vesting times for trading // rewards TradingRewardsVestingDuration int64 `protobuf:"varint,16,opt,name=trading_rewards_vesting_duration,json=tradingRewardsVestingDuration,proto3" json:"trading_rewards_vesting_duration,omitempty"` // liquidator_reward_share_rate defines the ratio of the split of the surplus // collateral that goes to the liquidator - LiquidatorRewardShareRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,17,opt,name=liquidator_reward_share_rate,json=liquidatorRewardShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"liquidator_reward_share_rate"` + LiquidatorRewardShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,17,opt,name=liquidator_reward_share_rate,json=liquidatorRewardShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"liquidator_reward_share_rate"` // binary_options_market_instant_listing_fee defines the expedited fee in INJ // required to create a derivative market by bypassing governance BinaryOptionsMarketInstantListingFee types.Coin `protobuf:"bytes,18,opt,name=binary_options_market_instant_listing_fee,json=binaryOptionsMarketInstantListingFee,proto3" json:"binary_options_market_instant_listing_fee"` @@ -286,19 +288,26 @@ type Params struct { AtomicMarketOrderAccessLevel AtomicMarketOrderAccessLevel `protobuf:"varint,19,opt,name=atomic_market_order_access_level,json=atomicMarketOrderAccessLevel,proto3,enum=injective.exchange.v1beta1.AtomicMarketOrderAccessLevel" json:"atomic_market_order_access_level,omitempty"` // spot_atomic_market_order_fee_multiplier defines the default multiplier for // executing atomic market orders in spot markets - SpotAtomicMarketOrderFeeMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,20,opt,name=spot_atomic_market_order_fee_multiplier,json=spotAtomicMarketOrderFeeMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"spot_atomic_market_order_fee_multiplier"` + SpotAtomicMarketOrderFeeMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,20,opt,name=spot_atomic_market_order_fee_multiplier,json=spotAtomicMarketOrderFeeMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"spot_atomic_market_order_fee_multiplier"` // derivative_atomic_market_order_fee_multiplier defines the default // multiplier for executing atomic market orders in derivative markets - DerivativeAtomicMarketOrderFeeMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,21,opt,name=derivative_atomic_market_order_fee_multiplier,json=derivativeAtomicMarketOrderFeeMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"derivative_atomic_market_order_fee_multiplier"` + DerivativeAtomicMarketOrderFeeMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,21,opt,name=derivative_atomic_market_order_fee_multiplier,json=derivativeAtomicMarketOrderFeeMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"derivative_atomic_market_order_fee_multiplier"` // binary_options_atomic_market_order_fee_multiplier defines the default // multiplier for executing atomic market orders in binary markets - BinaryOptionsAtomicMarketOrderFeeMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,22,opt,name=binary_options_atomic_market_order_fee_multiplier,json=binaryOptionsAtomicMarketOrderFeeMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"binary_options_atomic_market_order_fee_multiplier"` + BinaryOptionsAtomicMarketOrderFeeMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,22,opt,name=binary_options_atomic_market_order_fee_multiplier,json=binaryOptionsAtomicMarketOrderFeeMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"binary_options_atomic_market_order_fee_multiplier"` // minimal_protocol_fee_rate defines the minimal protocol fee rate - MinimalProtocolFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,23,opt,name=minimal_protocol_fee_rate,json=minimalProtocolFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"minimal_protocol_fee_rate"` + MinimalProtocolFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,23,opt,name=minimal_protocol_fee_rate,json=minimalProtocolFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"minimal_protocol_fee_rate"` // is_instant_derivative_market_launch_enabled defines whether instant // derivative market launch is enabled IsInstantDerivativeMarketLaunchEnabled bool `protobuf:"varint,24,opt,name=is_instant_derivative_market_launch_enabled,json=isInstantDerivativeMarketLaunchEnabled,proto3" json:"is_instant_derivative_market_launch_enabled,omitempty"` PostOnlyModeHeightThreshold int64 `protobuf:"varint,25,opt,name=post_only_mode_height_threshold,json=postOnlyModeHeightThreshold,proto3" json:"post_only_mode_height_threshold,omitempty"` + // Maximum time in seconds since the last mark price update to allow a + // decrease in margin + 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"` } func (m *Params) Reset() { *m = Params{} } @@ -404,9 +413,23 @@ func (m *Params) GetPostOnlyModeHeightThreshold() int64 { return 0 } +func (m *Params) GetMarginDecreasePriceTimestampThresholdSeconds() int64 { + if m != nil { + return m.MarginDecreasePriceTimestampThresholdSeconds + } + return 0 +} + +func (m *Params) GetExchangeAdmins() []string { + if m != nil { + return m.ExchangeAdmins + } + return nil +} + type MarketFeeMultiplier struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - FeeMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=fee_multiplier,json=feeMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee_multiplier"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + FeeMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=fee_multiplier,json=feeMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee_multiplier"` } func (m *MarketFeeMultiplier) Reset() { *m = MarketFeeMultiplier{} } @@ -460,17 +483,17 @@ type DerivativeMarket struct { MarketId string `protobuf:"bytes,7,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // initial_margin_ratio defines the initial margin ratio of a derivative // market - InitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio"` + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` // maintenance_margin_ratio defines the maintenance margin ratio of a // derivative market - MaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio"` + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` // maker_fee_rate defines the maker fee rate of a derivative market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the taker fee rate of a derivative market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market - RelayerFeeShareRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate"` + RelayerFeeShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate"` // true if the market is a perpetual market. false if the market is an expiry // futures market IsPerpetual bool `protobuf:"varint,13,opt,name=isPerpetual,proto3" json:"isPerpetual,omitempty"` @@ -478,10 +501,17 @@ type DerivativeMarket struct { Status MarketStatus `protobuf:"varint,14,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,15,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,16,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,17,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // current market admin + Admin string `protobuf:"bytes,18,opt,name=admin,proto3" json:"admin,omitempty"` + // level of admin permissions + AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` } func (m *DerivativeMarket) Reset() { *m = DerivativeMarket{} } @@ -540,21 +570,26 @@ type BinaryOptionsMarket struct { // Unique market ID. MarketId string `protobuf:"bytes,10,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // maker_fee_rate defines the maker fee rate of a binary options market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the taker fee rate of a derivative market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market - RelayerFeeShareRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate"` + RelayerFeeShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate"` // Status of the market Status MarketStatus `protobuf:"varint,14,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,15,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,16,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` - SettlementPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,17,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price,omitempty"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + SettlementPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,17,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price,omitempty"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,18,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // level of admin permissions + AdminPermissions uint32 `protobuf:"varint,19,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` } func (m *BinaryOptionsMarket) Reset() { *m = BinaryOptionsMarket{} } @@ -601,10 +636,10 @@ type ExpiryFuturesMarketInfo struct { TwapStartTimestamp int64 `protobuf:"varint,3,opt,name=twap_start_timestamp,json=twapStartTimestamp,proto3" json:"twap_start_timestamp,omitempty"` // expiration_twap_start_price_cumulative defines the cumulative price for the // start of the TWAP window - ExpirationTwapStartPriceCumulative github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=expiration_twap_start_price_cumulative,json=expirationTwapStartPriceCumulative,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"expiration_twap_start_price_cumulative"` + ExpirationTwapStartPriceCumulative cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=expiration_twap_start_price_cumulative,json=expirationTwapStartPriceCumulative,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expiration_twap_start_price_cumulative"` // settlement_price defines the settlement price for a time expiry futures // market. - SettlementPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price"` + SettlementPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price"` } func (m *ExpiryFuturesMarketInfo) Reset() { *m = ExpiryFuturesMarketInfo{} } @@ -666,9 +701,9 @@ type PerpetualMarketInfo struct { MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // hourly_funding_rate_cap defines the maximum absolute value of the hourly // funding rate - HourlyFundingRateCap github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=hourly_funding_rate_cap,json=hourlyFundingRateCap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"hourly_funding_rate_cap"` + HourlyFundingRateCap cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=hourly_funding_rate_cap,json=hourlyFundingRateCap,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"hourly_funding_rate_cap"` // hourly_interest_rate defines the hourly interest rate - HourlyInterestRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=hourly_interest_rate,json=hourlyInterestRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"hourly_interest_rate"` + HourlyInterestRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=hourly_interest_rate,json=hourlyInterestRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"hourly_interest_rate"` // next_funding_timestamp defines the next funding timestamp in seconds of a // perpetual market NextFundingTimestamp int64 `protobuf:"varint,4,opt,name=next_funding_timestamp,json=nextFundingTimestamp,proto3" json:"next_funding_timestamp,omitempty"` @@ -733,11 +768,11 @@ func (m *PerpetualMarketInfo) GetFundingInterval() int64 { type PerpetualMarketFunding struct { // cumulative_funding defines the cumulative funding of a perpetual market. - CumulativeFunding github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=cumulative_funding,json=cumulativeFunding,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_funding"` + CumulativeFunding cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=cumulative_funding,json=cumulativeFunding,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_funding"` // cumulative_price defines the cumulative price for the current hour up to // the last timestamp - CumulativePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=cumulative_price,json=cumulativePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_price"` - LastTimestamp int64 `protobuf:"varint,3,opt,name=last_timestamp,json=lastTimestamp,proto3" json:"last_timestamp,omitempty"` + CumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=cumulative_price,json=cumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_price"` + LastTimestamp int64 `protobuf:"varint,3,opt,name=last_timestamp,json=lastTimestamp,proto3" json:"last_timestamp,omitempty"` } func (m *PerpetualMarketFunding) Reset() { *m = PerpetualMarketFunding{} } @@ -784,7 +819,7 @@ type DerivativeMarketSettlementInfo struct { // market ID. MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // settlement_price defines the settlement price - SettlementPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price"` + SettlementPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price"` } func (m *DerivativeMarketSettlementInfo) Reset() { *m = DerivativeMarketSettlementInfo{} } @@ -873,11 +908,11 @@ func (m *NextFundingTimestamp) GetNextTimestamp() int64 { type MidPriceAndTOB struct { // mid price of the market - MidPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mid_price,omitempty"` + MidPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mid_price,omitempty"` // best buy price of the market - BestBuyPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_buy_price,omitempty"` + BestBuyPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_buy_price,omitempty"` // best sell price of the market - BestSellPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_sell_price,omitempty"` + BestSellPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_sell_price,omitempty"` } func (m *MidPriceAndTOB) Reset() { *m = MidPriceAndTOB{} } @@ -923,22 +958,29 @@ type SpotMarket struct { // Coin used for the quote asset QuoteDenom string `protobuf:"bytes,3,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` // maker_fee_rate defines the fee percentage makers pay when trading - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the fee percentage takers pay when trading - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market - RelayerFeeShareRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate"` + RelayerFeeShareRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate"` // Unique market ID. MarketId string `protobuf:"bytes,7,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // Status of the market Status MarketStatus `protobuf:"varint,8,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` // min_price_tick_size defines the minimum tick size that the price required // for orders in the market - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + // current market admin + Admin string `protobuf:"bytes,12,opt,name=admin,proto3" json:"admin,omitempty"` + // level of admin permissions + AdminPermissions uint32 `protobuf:"varint,13,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` } func (m *SpotMarket) Reset() { *m = SpotMarket{} } @@ -1009,10 +1051,24 @@ func (m *SpotMarket) GetStatus() MarketStatus { return MarketStatus_Unspecified } +func (m *SpotMarket) GetAdmin() string { + if m != nil { + return m.Admin + } + return "" +} + +func (m *SpotMarket) GetAdminPermissions() uint32 { + if m != nil { + return m.AdminPermissions + } + return 0 +} + // A subaccount's deposit for a given base currency type Deposit struct { - AvailableBalance github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=available_balance,json=availableBalance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"available_balance"` - TotalBalance github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=total_balance,json=totalBalance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"total_balance"` + AvailableBalance cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=available_balance,json=availableBalance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"available_balance"` + TotalBalance cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=total_balance,json=totalBalance,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"total_balance"` } func (m *Deposit) Reset() { *m = Deposit{} } @@ -1098,10 +1154,10 @@ type OrderInfo struct { // address fee_recipient address that will receive fees for the order FeeRecipient string `protobuf:"bytes,2,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` // price of the order - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // quantity of the order - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - Cid string `protobuf:"bytes,5,opt,name=cid,proto3" json:"cid,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + Cid string `protobuf:"bytes,5,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *OrderInfo) Reset() { *m = OrderInfo{} } @@ -1166,7 +1222,7 @@ type SpotOrder struct { // order types OrderType OrderType `protobuf:"varint,3,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` } func (m *SpotOrder) Reset() { *m = SpotOrder{} } @@ -1230,10 +1286,10 @@ type SpotLimitOrder struct { // order types OrderType OrderType `protobuf:"varint,2,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` // the amount of the quantity remaining fillable - Fillable github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=fillable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fillable"` + Fillable cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=fillable,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fillable"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` - OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` + OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` } func (m *SpotLimitOrder) Reset() { *m = SpotLimitOrder{} } @@ -1293,13 +1349,13 @@ func (m *SpotLimitOrder) GetOrderHash() []byte { // A valid Spot market order with Metadata. type SpotMarketOrder struct { // order_info contains the information of the order - OrderInfo OrderInfo `protobuf:"bytes,1,opt,name=order_info,json=orderInfo,proto3" json:"order_info"` - BalanceHold github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=balance_hold,json=balanceHold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"balance_hold"` - OrderHash []byte `protobuf:"bytes,3,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + OrderInfo OrderInfo `protobuf:"bytes,1,opt,name=order_info,json=orderInfo,proto3" json:"order_info"` + BalanceHold cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=balance_hold,json=balanceHold,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance_hold"` + OrderHash []byte `protobuf:"bytes,3,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` // order types OrderType OrderType `protobuf:"varint,4,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` } func (m *SpotMarketOrder) Reset() { *m = SpotMarketOrder{} } @@ -1364,9 +1420,9 @@ type DerivativeOrder struct { // order types OrderType OrderType `protobuf:"varint,3,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` // margin is the margin used by the limit order - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` } func (m *DerivativeOrder) Reset() { *m = DerivativeOrder{} } @@ -1428,12 +1484,12 @@ type SubaccountOrderbookMetadata struct { ReduceOnlyLimitOrderCount uint32 `protobuf:"varint,2,opt,name=reduce_only_limit_order_count,json=reduceOnlyLimitOrderCount,proto3" json:"reduce_only_limit_order_count,omitempty"` // AggregateReduceOnlyQuantity is the aggregate fillable quantity of the // subaccount's reduce-only limit orders in the given direction. - AggregateReduceOnlyQuantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=aggregate_reduce_only_quantity,json=aggregateReduceOnlyQuantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"aggregate_reduce_only_quantity"` + AggregateReduceOnlyQuantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=aggregate_reduce_only_quantity,json=aggregateReduceOnlyQuantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"aggregate_reduce_only_quantity"` // AggregateVanillaQuantity is the aggregate fillable quantity of the // subaccount's vanilla limit orders in the given direction. - AggregateVanillaQuantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=aggregate_vanilla_quantity,json=aggregateVanillaQuantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"aggregate_vanilla_quantity"` - VanillaConditionalOrderCount uint32 `protobuf:"varint,5,opt,name=vanilla_conditional_order_count,json=vanillaConditionalOrderCount,proto3" json:"vanilla_conditional_order_count,omitempty"` - ReduceOnlyConditionalOrderCount uint32 `protobuf:"varint,6,opt,name=reduce_only_conditional_order_count,json=reduceOnlyConditionalOrderCount,proto3" json:"reduce_only_conditional_order_count,omitempty"` + AggregateVanillaQuantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=aggregate_vanilla_quantity,json=aggregateVanillaQuantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"aggregate_vanilla_quantity"` + VanillaConditionalOrderCount uint32 `protobuf:"varint,5,opt,name=vanilla_conditional_order_count,json=vanillaConditionalOrderCount,proto3" json:"vanilla_conditional_order_count,omitempty"` + ReduceOnlyConditionalOrderCount uint32 `protobuf:"varint,6,opt,name=reduce_only_conditional_order_count,json=reduceOnlyConditionalOrderCount,proto3" json:"reduce_only_conditional_order_count,omitempty"` } func (m *SubaccountOrderbookMetadata) Reset() { *m = SubaccountOrderbookMetadata{} } @@ -1499,10 +1555,11 @@ func (m *SubaccountOrderbookMetadata) GetReduceOnlyConditionalOrderCount() uint3 type SubaccountOrder struct { // price of the order - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // the amount of the quantity remaining fillable - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - IsReduceOnly bool `protobuf:"varint,3,opt,name=isReduceOnly,proto3" json:"isReduceOnly,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + IsReduceOnly bool `protobuf:"varint,3,opt,name=isReduceOnly,proto3" json:"isReduceOnly,omitempty"` + Cid string `protobuf:"bytes,4,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *SubaccountOrder) Reset() { *m = SubaccountOrder{} } @@ -1545,6 +1602,13 @@ func (m *SubaccountOrder) GetIsReduceOnly() bool { return false } +func (m *SubaccountOrder) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + type SubaccountOrderData struct { Order *SubaccountOrder `protobuf:"bytes,1,opt,name=order,proto3" json:"order,omitempty"` OrderHash []byte `protobuf:"bytes,2,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` @@ -1604,12 +1668,12 @@ type DerivativeLimitOrder struct { // order types OrderType OrderType `protobuf:"varint,2,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` // margin is the margin used by the limit order - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` // the amount of the quantity remaining fillable - Fillable github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=fillable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fillable"` + Fillable cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=fillable,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fillable"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` - OrderHash []byte `protobuf:"bytes,6,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` + OrderHash []byte `protobuf:"bytes,6,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` } func (m *DerivativeLimitOrder) Reset() { *m = DerivativeLimitOrder{} } @@ -1671,12 +1735,12 @@ type DerivativeMarketOrder struct { // order_info contains the information of the order OrderInfo OrderInfo `protobuf:"bytes,1,opt,name=order_info,json=orderInfo,proto3" json:"order_info"` // order types - OrderType OrderType `protobuf:"varint,2,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` - MarginHold github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=margin_hold,json=marginHold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin_hold"` + OrderType OrderType `protobuf:"varint,2,opt,name=order_type,json=orderType,proto3,enum=injective.exchange.v1beta1.OrderType" json:"order_type,omitempty"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` + MarginHold cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=margin_hold,json=marginHold,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin_hold"` // trigger_price is the trigger price used by stop/take orders - TriggerPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"trigger_price,omitempty"` - OrderHash []byte `protobuf:"bytes,6,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + TriggerPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=trigger_price,json=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"trigger_price,omitempty"` + OrderHash []byte `protobuf:"bytes,6,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` } func (m *DerivativeMarketOrder) Reset() { *m = DerivativeMarketOrder{} } @@ -1734,11 +1798,11 @@ func (m *DerivativeMarketOrder) GetOrderHash() []byte { } type Position struct { - IsLong bool `protobuf:"varint,1,opt,name=isLong,proto3" json:"isLong,omitempty"` - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - EntryPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=entry_price,json=entryPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"entry_price"` - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` - CumulativeFundingEntry github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_funding_entry"` + IsLong bool `protobuf:"varint,1,opt,name=isLong,proto3" json:"isLong,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + EntryPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=entry_price,json=entryPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"entry_price"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` + CumulativeFundingEntry cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_funding_entry"` } func (m *Position) Reset() { *m = Position{} } @@ -1835,14 +1899,14 @@ func (m *MarketOrderIndicator) GetIsBuy() bool { } type TradeLog struct { - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // bytes32 subaccount ID that executed the trade - SubaccountId []byte `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` - OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - FeeRecipientAddress []byte `protobuf:"bytes,6,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` - Cid string `protobuf:"bytes,7,opt,name=cid,proto3" json:"cid,omitempty"` + SubaccountId []byte `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` + OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + FeeRecipientAddress []byte `protobuf:"bytes,6,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` + Cid string `protobuf:"bytes,7,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *TradeLog) Reset() { *m = TradeLog{} } @@ -1907,10 +1971,10 @@ func (m *TradeLog) GetCid() string { } type PositionDelta struct { - IsLong bool `protobuf:"varint,1,opt,name=is_long,json=isLong,proto3" json:"is_long,omitempty"` - ExecutionQuantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=execution_quantity,json=executionQuantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"execution_quantity"` - ExecutionMargin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=execution_margin,json=executionMargin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"execution_margin"` - ExecutionPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=execution_price,json=executionPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"execution_price"` + IsLong bool `protobuf:"varint,1,opt,name=is_long,json=isLong,proto3" json:"is_long,omitempty"` + ExecutionQuantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=execution_quantity,json=executionQuantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"execution_quantity"` + ExecutionMargin cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=execution_margin,json=executionMargin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"execution_margin"` + ExecutionPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=execution_price,json=executionPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"execution_price"` } func (m *PositionDelta) Reset() { *m = PositionDelta{} } @@ -1954,13 +2018,14 @@ func (m *PositionDelta) GetIsLong() bool { } type DerivativeTradeLog struct { - SubaccountId []byte `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - PositionDelta *PositionDelta `protobuf:"bytes,2,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` - Payout github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=payout,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"payout"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` - OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - FeeRecipientAddress []byte `protobuf:"bytes,6,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` - Cid string `protobuf:"bytes,7,opt,name=cid,proto3" json:"cid,omitempty"` + SubaccountId []byte `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + PositionDelta *PositionDelta `protobuf:"bytes,2,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` + Payout cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=payout,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"payout"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` + OrderHash []byte `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + FeeRecipientAddress []byte `protobuf:"bytes,6,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` + Cid string `protobuf:"bytes,7,opt,name=cid,proto3" json:"cid,omitempty"` + Pnl cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=pnl,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"pnl"` } func (m *DerivativeTradeLog) Reset() { *m = DerivativeTradeLog{} } @@ -2188,8 +2253,8 @@ func (m *DepositUpdate) GetDeposits() []*SubaccountDeposit { } type PointsMultiplier struct { - MakerPointsMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=maker_points_multiplier,json=makerPointsMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_points_multiplier"` - TakerPointsMultiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=taker_points_multiplier,json=takerPointsMultiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_points_multiplier"` + MakerPointsMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=maker_points_multiplier,json=makerPointsMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_points_multiplier"` + TakerPointsMultiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=taker_points_multiplier,json=takerPointsMultiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_points_multiplier"` } func (m *PointsMultiplier) Reset() { *m = PointsMultiplier{} } @@ -2420,10 +2485,10 @@ func (m *TradingRewardCampaignInfo) GetDisqualifiedMarketIds() []string { } type FeeDiscountTierInfo struct { - MakerDiscountRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=maker_discount_rate,json=makerDiscountRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_discount_rate"` - TakerDiscountRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=taker_discount_rate,json=takerDiscountRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_discount_rate"` - StakedAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=staked_amount,json=stakedAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"staked_amount"` - Volume github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=volume,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"volume"` + MakerDiscountRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=maker_discount_rate,json=makerDiscountRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_discount_rate"` + TakerDiscountRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=taker_discount_rate,json=takerDiscountRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_discount_rate"` + StakedAmount cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=staked_amount,json=stakedAmount,proto3,customtype=cosmossdk.io/math.Int" json:"staked_amount"` + Volume cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=volume,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"volume"` } func (m *FeeDiscountTierInfo) Reset() { *m = FeeDiscountTierInfo{} } @@ -2593,8 +2658,8 @@ func (m *FeeDiscountTierTTL) GetTtlTimestamp() int64 { } type VolumeRecord struct { - MakerVolume github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=maker_volume,json=makerVolume,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_volume"` - TakerVolume github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=taker_volume,json=takerVolume,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_volume"` + MakerVolume cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=maker_volume,json=makerVolume,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_volume"` + TakerVolume cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=taker_volume,json=takerVolume,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_volume"` } func (m *VolumeRecord) Reset() { *m = VolumeRecord{} } @@ -2779,9 +2844,9 @@ func (m *SubaccountIDs) GetSubaccountIds() [][]byte { } type TradeRecord struct { - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` } func (m *TradeRecord) Reset() { *m = TradeRecord{} } @@ -2826,9 +2891,9 @@ func (m *TradeRecord) GetTimestamp() int64 { type Level struct { // price - P github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=p,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"p"` + P cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=p,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"p"` // quantity - Q github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=q,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"q"` + Q cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=q,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"q"` } func (m *Level) Reset() { *m = Level{} } @@ -3072,6 +3137,149 @@ func (m *DenomDecimals) GetDecimals() uint64 { return 0 } +type GrantAuthorization struct { + Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *GrantAuthorization) Reset() { *m = GrantAuthorization{} } +func (m *GrantAuthorization) String() string { return proto.CompactTextString(m) } +func (*GrantAuthorization) ProtoMessage() {} +func (*GrantAuthorization) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{48} +} +func (m *GrantAuthorization) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GrantAuthorization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GrantAuthorization.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GrantAuthorization) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrantAuthorization.Merge(m, src) +} +func (m *GrantAuthorization) XXX_Size() int { + return m.Size() +} +func (m *GrantAuthorization) XXX_DiscardUnknown() { + xxx_messageInfo_GrantAuthorization.DiscardUnknown(m) +} + +var xxx_messageInfo_GrantAuthorization proto.InternalMessageInfo + +func (m *GrantAuthorization) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +type ActiveGrant struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *ActiveGrant) Reset() { *m = ActiveGrant{} } +func (m *ActiveGrant) String() string { return proto.CompactTextString(m) } +func (*ActiveGrant) ProtoMessage() {} +func (*ActiveGrant) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{49} +} +func (m *ActiveGrant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ActiveGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ActiveGrant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ActiveGrant) XXX_Merge(src proto.Message) { + xxx_messageInfo_ActiveGrant.Merge(m, src) +} +func (m *ActiveGrant) XXX_Size() int { + return m.Size() +} +func (m *ActiveGrant) XXX_DiscardUnknown() { + xxx_messageInfo_ActiveGrant.DiscardUnknown(m) +} + +var xxx_messageInfo_ActiveGrant proto.InternalMessageInfo + +func (m *ActiveGrant) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +type EffectiveGrant struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` + NetGrantedStake cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=net_granted_stake,json=netGrantedStake,proto3,customtype=cosmossdk.io/math.Int" json:"net_granted_stake"` + IsValid bool `protobuf:"varint,3,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"` +} + +func (m *EffectiveGrant) Reset() { *m = EffectiveGrant{} } +func (m *EffectiveGrant) String() string { return proto.CompactTextString(m) } +func (*EffectiveGrant) ProtoMessage() {} +func (*EffectiveGrant) Descriptor() ([]byte, []int) { + return fileDescriptor_2116e2804e9c53f9, []int{50} +} +func (m *EffectiveGrant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EffectiveGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EffectiveGrant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EffectiveGrant) XXX_Merge(src proto.Message) { + xxx_messageInfo_EffectiveGrant.Merge(m, src) +} +func (m *EffectiveGrant) XXX_Size() int { + return m.Size() +} +func (m *EffectiveGrant) XXX_DiscardUnknown() { + xxx_messageInfo_EffectiveGrant.DiscardUnknown(m) +} + +var xxx_messageInfo_EffectiveGrant proto.InternalMessageInfo + +func (m *EffectiveGrant) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +func (m *EffectiveGrant) GetIsValid() bool { + if m != nil { + return m.IsValid + } + return false +} + func init() { proto.RegisterEnum("injective.exchange.v1beta1.AtomicMarketOrderAccessLevel", AtomicMarketOrderAccessLevel_name, AtomicMarketOrderAccessLevel_value) proto.RegisterEnum("injective.exchange.v1beta1.MarketStatus", MarketStatus_name, MarketStatus_value) @@ -3126,6 +3334,9 @@ func init() { proto.RegisterType((*AggregateAccountVolumeRecord)(nil), "injective.exchange.v1beta1.AggregateAccountVolumeRecord") proto.RegisterType((*MarketVolume)(nil), "injective.exchange.v1beta1.MarketVolume") proto.RegisterType((*DenomDecimals)(nil), "injective.exchange.v1beta1.DenomDecimals") + proto.RegisterType((*GrantAuthorization)(nil), "injective.exchange.v1beta1.GrantAuthorization") + proto.RegisterType((*ActiveGrant)(nil), "injective.exchange.v1beta1.ActiveGrant") + proto.RegisterType((*EffectiveGrant)(nil), "injective.exchange.v1beta1.EffectiveGrant") } func init() { @@ -3133,266 +3344,285 @@ func init() { } var fileDescriptor_2116e2804e9c53f9 = []byte{ - // 4144 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0x4d, 0x6c, 0x23, 0x59, - 0x5e, 0xef, 0xb2, 0x9d, 0xc4, 0xfe, 0xc7, 0x76, 0xdc, 0x95, 0x74, 0xe2, 0xa4, 0xbb, 0x13, 0x8f, - 0x67, 0x7a, 0x3a, 0xd3, 0xb3, 0x93, 0xde, 0x69, 0x60, 0x35, 0x8c, 0x58, 0xa9, 0x9d, 0xaf, 0x69, - 0xcf, 0xe4, 0x6b, 0xca, 0xee, 0x59, 0x35, 0xab, 0xd9, 0xda, 0x97, 0xaa, 0x97, 0xf8, 0x4d, 0x97, - 0xab, 0xdc, 0xf5, 0x9e, 0xd3, 0xc9, 0x22, 0xa4, 0x15, 0x8b, 0x10, 0x1b, 0x90, 0x06, 0x38, 0x2c, - 0x7b, 0x89, 0xb4, 0x07, 0x2e, 0x70, 0x00, 0x0e, 0x88, 0xcb, 0xc0, 0x99, 0x3d, 0xee, 0x11, 0x21, - 0x58, 0x50, 0xcf, 0x05, 0x71, 0x40, 0x82, 0x1b, 0x42, 0x42, 0xe8, 0x7d, 0xd4, 0x87, 0xed, 0xc4, - 0x49, 0x57, 0xd2, 0x5a, 0x16, 0xed, 0x29, 0x7e, 0x5f, 0xbf, 0xff, 0x7b, 0xff, 0xef, 0xf7, 0x51, - 0x81, 0xb7, 0x88, 0xfb, 0x19, 0xb6, 0x18, 0x39, 0xc0, 0xf7, 0xf1, 0xa1, 0xd5, 0x42, 0xee, 0x3e, - 0xbe, 0x7f, 0xf0, 0xee, 0x2e, 0x66, 0xe8, 0xdd, 0xb0, 0x62, 0xa9, 0xe3, 0x7b, 0xcc, 0xd3, 0xe7, - 0xc2, 0xae, 0x4b, 0x61, 0x8b, 0xea, 0x3a, 0x37, 0xb5, 0xef, 0xed, 0x7b, 0xa2, 0xdb, 0x7d, 0xfe, - 0x4b, 0x8e, 0x98, 0x9b, 0xb7, 0x3c, 0xda, 0xf6, 0xe8, 0xfd, 0x5d, 0x44, 0x23, 0x54, 0xcb, 0x23, - 0xae, 0x6a, 0xbf, 0x13, 0x11, 0xf7, 0x7c, 0x64, 0x39, 0x51, 0x27, 0x59, 0x94, 0xdd, 0xaa, 0x3f, - 0xb8, 0x01, 0xa3, 0x3b, 0xc8, 0x47, 0x6d, 0xaa, 0x63, 0x58, 0xa0, 0x1d, 0x8f, 0x99, 0x6d, 0xe4, - 0x3f, 0xc5, 0xcc, 0x24, 0x2e, 0x65, 0xc8, 0x65, 0xa6, 0x43, 0x28, 0x23, 0xee, 0xbe, 0xb9, 0x87, - 0x71, 0x59, 0xab, 0x68, 0x8b, 0xe3, 0x0f, 0x66, 0x97, 0x24, 0xed, 0x25, 0x4e, 0x3b, 0x98, 0xe6, - 0xd2, 0x8a, 0x47, 0xdc, 0xe5, 0xcc, 0x8f, 0x7f, 0xba, 0x70, 0xcd, 0xb8, 0xc9, 0x71, 0x36, 0x05, - 0x4c, 0x5d, 0xa2, 0x6c, 0x48, 0x90, 0x75, 0x8c, 0xf5, 0x67, 0x70, 0xc7, 0xc6, 0x3e, 0x39, 0x40, - 0x7c, 0x6e, 0xc3, 0x88, 0xa5, 0x2e, 0x46, 0xec, 0xb5, 0x08, 0xed, 0x2c, 0x92, 0x0e, 0xdc, 0xb4, - 0xf1, 0x1e, 0xea, 0x3a, 0xcc, 0x54, 0x2b, 0x7c, 0x8a, 0x7d, 0x4e, 0xc3, 0xf4, 0x11, 0xc3, 0xe5, - 0x74, 0x45, 0x5b, 0xcc, 0x2d, 0x2f, 0x71, 0xb4, 0x7f, 0xf8, 0xe9, 0xc2, 0x9b, 0xfb, 0x84, 0xb5, - 0xba, 0xbb, 0x4b, 0x96, 0xd7, 0xbe, 0xaf, 0x78, 0x2c, 0xff, 0xbc, 0x43, 0xed, 0xa7, 0xf7, 0xd9, - 0x51, 0x07, 0xd3, 0xa5, 0x55, 0x6c, 0x19, 0x33, 0x0a, 0xb2, 0x21, 0xd6, 0xfa, 0x14, 0xfb, 0xeb, - 0x18, 0x1b, 0x88, 0x0d, 0x52, 0x63, 0xbd, 0xd4, 0x32, 0x97, 0xa6, 0xd6, 0x8c, 0x53, 0x3b, 0x84, - 0xd7, 0x02, 0x6a, 0x3d, 0x6c, 0xed, 0xa1, 0x39, 0x92, 0x88, 0xe6, 0x6d, 0x05, 0xbc, 0x1a, 0x63, - 0xf0, 0xb9, 0x94, 0xfb, 0x56, 0x3b, 0x7a, 0x45, 0x94, 0x7b, 0xd6, 0xec, 0xc1, 0xad, 0x80, 0x32, - 0x71, 0x09, 0x23, 0xc8, 0xe1, 0x7a, 0xb4, 0x4f, 0x5c, 0x4e, 0x93, 0x78, 0xe5, 0xb1, 0x44, 0x44, - 0x67, 0x15, 0x66, 0x5d, 0x42, 0x6e, 0x0a, 0x44, 0x83, 0x03, 0xea, 0xcf, 0xa1, 0x12, 0x10, 0x6c, - 0x23, 0xe2, 0x32, 0xec, 0x22, 0xd7, 0xc2, 0xbd, 0x44, 0xb3, 0x97, 0x5a, 0xe9, 0x66, 0x04, 0x1b, - 0x27, 0xfc, 0x1e, 0x94, 0x03, 0xc2, 0x7b, 0x5d, 0xd7, 0xe6, 0xa6, 0xc1, 0xfb, 0xf9, 0x07, 0xc8, - 0x29, 0xe7, 0x2a, 0xda, 0x62, 0xda, 0x98, 0x56, 0xed, 0xeb, 0xb2, 0xb9, 0xae, 0x5a, 0xf5, 0xb7, - 0xa0, 0x14, 0x8c, 0x68, 0x77, 0x1d, 0x46, 0x3a, 0x0e, 0x2e, 0x83, 0x18, 0x31, 0xa1, 0xea, 0x37, - 0x55, 0xb5, 0x6e, 0xc1, 0xb4, 0x8f, 0x1d, 0x74, 0xa4, 0xe4, 0x46, 0x5b, 0xc8, 0x57, 0xd2, 0x1b, - 0x4f, 0xb4, 0xa6, 0x49, 0x85, 0xb6, 0x8e, 0x71, 0x83, 0x63, 0x09, 0x99, 0x31, 0x58, 0x08, 0x56, - 0xd2, 0xf2, 0xba, 0xbe, 0x73, 0x14, 0x2e, 0x88, 0x53, 0x32, 0x2d, 0xd4, 0x29, 0xe7, 0x13, 0x51, - 0x0b, 0x8c, 0xed, 0x91, 0x40, 0x55, 0x6c, 0xe0, 0x24, 0x57, 0x50, 0x27, 0xae, 0x29, 0x8a, 0xaa, - 0x60, 0x1f, 0xa6, 0x4c, 0x2e, 0xb0, 0x70, 0x29, 0x4d, 0x91, 0x24, 0xeb, 0x0a, 0x51, 0x2c, 0x73, - 0x15, 0x16, 0xda, 0xe8, 0x30, 0x6e, 0x10, 0x9e, 0x6f, 0x63, 0xdf, 0xa4, 0xc4, 0xc6, 0xa6, 0xe5, - 0x75, 0x5d, 0x56, 0x2e, 0x56, 0xb4, 0xc5, 0x82, 0x71, 0xb3, 0x8d, 0x0e, 0x23, 0xf5, 0xde, 0xe6, - 0x9d, 0x1a, 0xc4, 0xc6, 0x2b, 0xbc, 0x8b, 0xfe, 0xdb, 0x1a, 0xdc, 0x25, 0xee, 0x67, 0xa6, 0x8f, - 0x9f, 0x23, 0xdf, 0x36, 0x29, 0x37, 0x2a, 0xdb, 0xf4, 0xf1, 0xb3, 0x2e, 0xf1, 0x71, 0x1b, 0xbb, - 0xcc, 0x64, 0x2d, 0x1f, 0xd3, 0x96, 0xe7, 0xd8, 0xe5, 0x89, 0x97, 0x5e, 0x42, 0xdd, 0x65, 0xc6, - 0xeb, 0xc4, 0xfd, 0xcc, 0x10, 0xe8, 0x0d, 0x01, 0x6e, 0x44, 0xd8, 0xcd, 0x00, 0x5a, 0xff, 0x00, - 0x2a, 0xcc, 0x47, 0x52, 0x48, 0xa2, 0x2f, 0x35, 0x0f, 0xb0, 0x74, 0xd0, 0x76, 0x57, 0x68, 0xbd, - 0x5b, 0x2e, 0x09, 0x9d, 0xba, 0xad, 0xfa, 0x49, 0x48, 0xfa, 0x89, 0xec, 0xb5, 0xaa, 0x3a, 0x71, - 0x31, 0x38, 0xe4, 0x59, 0x97, 0xd8, 0x88, 0x79, 0x7e, 0xb8, 0xaa, 0x48, 0xcf, 0xae, 0x27, 0x13, - 0x43, 0x84, 0xa9, 0x96, 0x12, 0x6a, 0xdb, 0x21, 0xbc, 0xb5, 0x4b, 0x5c, 0xe4, 0x1f, 0x99, 0x5e, - 0x87, 0xcf, 0x80, 0x0e, 0x0b, 0x34, 0xfa, 0xc5, 0x02, 0xcd, 0x1b, 0x12, 0x71, 0x5b, 0x02, 0x9e, - 0x15, 0x6b, 0xbe, 0xab, 0x41, 0x05, 0x31, 0xaf, 0x4d, 0xac, 0x80, 0xa4, 0x54, 0x00, 0x64, 0x59, - 0x98, 0x52, 0xd3, 0xc1, 0x07, 0xd8, 0x29, 0x4f, 0x56, 0xb4, 0xc5, 0xe2, 0x83, 0xf7, 0x96, 0xce, - 0x8e, 0xfa, 0x4b, 0x35, 0x81, 0x21, 0xa9, 0x08, 0xed, 0xa8, 0x09, 0x80, 0x0d, 0x3e, 0xde, 0xb8, - 0x85, 0x86, 0xb4, 0xea, 0xdf, 0xd3, 0xe0, 0xae, 0x88, 0x3c, 0xa7, 0xcd, 0x83, 0x5b, 0xb8, 0x72, - 0x08, 0x04, 0xfb, 0xe5, 0xa9, 0x44, 0x9c, 0xaf, 0x72, 0xf8, 0x81, 0x19, 0xae, 0x63, 0xbc, 0x19, - 0x22, 0xeb, 0x9f, 0x6b, 0xf0, 0x4e, 0xcc, 0x0c, 0x2e, 0x30, 0x97, 0x1b, 0x89, 0xe6, 0xb2, 0x18, - 0x11, 0x39, 0x67, 0x46, 0x3f, 0xd0, 0xe0, 0xdd, 0x3e, 0xad, 0xb8, 0xc0, 0xac, 0xa6, 0x13, 0xcd, - 0xea, 0xed, 0x1e, 0x65, 0x39, 0x67, 0x62, 0x04, 0x66, 0xdb, 0xc4, 0x25, 0x6d, 0xe4, 0x98, 0x22, - 0x2b, 0xb3, 0x3c, 0x27, 0x8a, 0xa0, 0x33, 0x89, 0xe8, 0x4f, 0x2b, 0xc0, 0x1d, 0x85, 0x17, 0x84, - 0xce, 0x6f, 0xc2, 0xdb, 0x84, 0x86, 0x56, 0x30, 0x98, 0x88, 0x39, 0xa8, 0xeb, 0x5a, 0x2d, 0x13, - 0xbb, 0x68, 0xd7, 0xc1, 0x76, 0xb9, 0x5c, 0xd1, 0x16, 0xb3, 0xc6, 0x9b, 0x84, 0x2a, 0x45, 0x5f, - 0xed, 0xcb, 0xb5, 0x36, 0x44, 0xf7, 0x35, 0xd9, 0x9b, 0x3b, 0xbf, 0x8e, 0x47, 0x99, 0xe9, 0xb9, - 0xce, 0x91, 0xd9, 0xf6, 0x6c, 0x6c, 0xb6, 0x30, 0xd9, 0x6f, 0xc5, 0xbd, 0xd5, 0xac, 0x70, 0x17, - 0x37, 0x79, 0xb7, 0x6d, 0xd7, 0x39, 0xda, 0xf4, 0x6c, 0xfc, 0x48, 0xf4, 0x09, 0xbd, 0xce, 0xfb, - 0x99, 0x7f, 0xfd, 0xd1, 0x82, 0x56, 0xfd, 0x5c, 0x83, 0x49, 0x49, 0xa3, 0x97, 0x57, 0x37, 0x21, - 0x17, 0x98, 0xb2, 0x2d, 0xf2, 0xd1, 0x9c, 0x91, 0x95, 0x15, 0x75, 0x5b, 0x7f, 0x0c, 0xc5, 0x3e, - 0xe9, 0xa5, 0x12, 0x71, 0xaf, 0xb0, 0x17, 0xa7, 0xf9, 0x7e, 0xe6, 0x77, 0x7f, 0xb4, 0x70, 0xad, - 0xfa, 0xe7, 0x59, 0x28, 0xf5, 0xaf, 0x5f, 0x9f, 0x86, 0x51, 0x46, 0xac, 0xa7, 0xd8, 0x57, 0x73, - 0x51, 0x25, 0x7d, 0x01, 0xc6, 0x65, 0x9e, 0x6d, 0x72, 0x77, 0x22, 0xa7, 0x61, 0x80, 0xac, 0x5a, - 0x46, 0x14, 0xeb, 0xaf, 0x41, 0x5e, 0x75, 0x78, 0xd6, 0xf5, 0x82, 0x24, 0xd4, 0x50, 0x83, 0x3e, - 0xe6, 0x55, 0xfa, 0x5a, 0x88, 0xc1, 0x67, 0x26, 0x12, 0xc7, 0xe2, 0x83, 0x37, 0x62, 0x4e, 0x43, - 0x65, 0xf2, 0x81, 0xcb, 0xd8, 0x16, 0xc5, 0xe6, 0x51, 0x07, 0x07, 0x94, 0xf8, 0x6f, 0x7d, 0x09, - 0x26, 0x15, 0x0c, 0xb5, 0x90, 0x83, 0xcd, 0x3d, 0x64, 0x31, 0xcf, 0x17, 0x39, 0x61, 0xc1, 0xb8, - 0x2e, 0x9b, 0x1a, 0xbc, 0x65, 0x5d, 0x34, 0xf0, 0xa9, 0x8b, 0x29, 0x99, 0x36, 0x76, 0xbd, 0xb6, - 0xcc, 0xe0, 0x0c, 0x10, 0x55, 0xab, 0xbc, 0xa6, 0x57, 0x04, 0x63, 0x7d, 0x22, 0xf8, 0x36, 0x4c, - 0x9d, 0x9a, 0x93, 0x25, 0x4b, 0x8f, 0x74, 0x32, 0x98, 0x8c, 0xb5, 0xa0, 0x7c, 0x66, 0x12, 0x96, - 0x4b, 0x68, 0x2c, 0xa7, 0x67, 0x5f, 0x4d, 0x28, 0xf6, 0x25, 0xd2, 0x90, 0x08, 0x3f, 0xdf, 0x8e, - 0x67, 0xaf, 0x4d, 0x28, 0xf6, 0x25, 0xc9, 0xc9, 0xd2, 0xac, 0x3c, 0x8b, 0xa3, 0x9e, 0x9d, 0xc4, - 0xe5, 0xaf, 0x2e, 0x89, 0xab, 0xc0, 0x38, 0xa1, 0x3b, 0xd8, 0xef, 0x60, 0xd6, 0x45, 0x8e, 0xc8, - 0x9e, 0xb2, 0x46, 0xbc, 0x4a, 0x7f, 0x08, 0xa3, 0x94, 0x21, 0xd6, 0xa5, 0x22, 0xcd, 0x29, 0x3e, - 0x58, 0x1c, 0x16, 0xe3, 0xa4, 0x0d, 0x35, 0x44, 0x7f, 0x43, 0x8d, 0xd3, 0x3f, 0x85, 0xc9, 0x36, - 0x71, 0xcd, 0x8e, 0x4f, 0x2c, 0x6c, 0x72, 0x6b, 0x32, 0x29, 0xf9, 0x0e, 0x4e, 0x90, 0xe6, 0xf0, - 0x55, 0x94, 0xda, 0xc4, 0xdd, 0xe1, 0x48, 0x4d, 0x62, 0x3d, 0x6d, 0x90, 0xef, 0x08, 0x3e, 0x71, - 0xf8, 0x67, 0x5d, 0xe4, 0x32, 0xc2, 0x8e, 0x62, 0x14, 0x4a, 0xc9, 0xf8, 0xd4, 0x26, 0xee, 0xc7, - 0x0a, 0x2c, 0x20, 0xa2, 0x1c, 0xc6, 0x9f, 0x64, 0x61, 0x72, 0x79, 0x30, 0x67, 0x38, 0xd3, 0x67, - 0xbc, 0x0e, 0x85, 0xc0, 0x50, 0x8f, 0xda, 0xbb, 0x9e, 0xa3, 0xbc, 0x86, 0xf2, 0x13, 0x0d, 0x51, - 0xa7, 0xdf, 0x85, 0x09, 0xd5, 0xa9, 0xe3, 0x7b, 0x07, 0xc4, 0xc6, 0xbe, 0x72, 0x1d, 0x45, 0x59, - 0xbd, 0xa3, 0x6a, 0x7f, 0x56, 0xde, 0xe3, 0x5d, 0x98, 0xc2, 0x87, 0x1d, 0x22, 0x13, 0x3f, 0x93, - 0x91, 0x36, 0xa6, 0x0c, 0xb5, 0x3b, 0xc2, 0x8d, 0xa4, 0x8d, 0xc9, 0xa8, 0xad, 0x19, 0x34, 0xf1, - 0x21, 0x14, 0x33, 0xe6, 0xa8, 0xcc, 0x36, 0x1c, 0x32, 0x26, 0x87, 0x44, 0x6d, 0xd1, 0x90, 0x29, - 0x18, 0x41, 0x76, 0x9b, 0xb8, 0xd2, 0xad, 0x18, 0xb2, 0xd0, 0xef, 0xb9, 0x72, 0xc3, 0x3d, 0x17, - 0xf4, 0x79, 0xae, 0x41, 0x6b, 0x1f, 0x7f, 0x25, 0xd6, 0x9e, 0x7f, 0xa5, 0xd6, 0x5e, 0xb8, 0x3a, - 0x6b, 0xff, 0x85, 0x2d, 0x73, 0x22, 0x4f, 0xa0, 0x14, 0xd3, 0x4e, 0xb1, 0x94, 0xd8, 0x7e, 0x45, - 0x7b, 0x09, 0xf8, 0x89, 0x08, 0x47, 0xac, 0x43, 0xb9, 0x89, 0xff, 0x4e, 0xc1, 0xcc, 0x1a, 0x37, - 0x8b, 0xa3, 0xf5, 0x2e, 0xeb, 0xfa, 0x38, 0xdc, 0x5a, 0xec, 0x79, 0xc3, 0xb3, 0x9d, 0xb3, 0x4c, - 0x2d, 0x75, 0xb6, 0xa9, 0x7d, 0x15, 0xa6, 0xd8, 0x73, 0xd4, 0xe1, 0x3b, 0x4a, 0x3f, 0x6e, 0x6a, - 0x69, 0x31, 0x44, 0xe7, 0x6d, 0x0d, 0xde, 0x14, 0x8d, 0xf8, 0x2d, 0x0d, 0xde, 0x8c, 0x53, 0x89, - 0x46, 0x4b, 0xa9, 0x5a, 0xdd, 0x76, 0xd7, 0x11, 0x19, 0x51, 0xc2, 0x93, 0xad, 0x6a, 0x6c, 0x9e, - 0x01, 0x79, 0xc1, 0x9e, 0x95, 0x10, 0xf9, 0x54, 0x19, 0x24, 0x3b, 0xd3, 0xea, 0x97, 0x41, 0xf5, - 0x1f, 0x53, 0x30, 0x19, 0x86, 0xaf, 0x8b, 0x72, 0x1e, 0xc3, 0xcc, 0x59, 0x87, 0x18, 0xc9, 0x12, - 0xce, 0xa9, 0xd6, 0x69, 0xa7, 0x17, 0xdf, 0x86, 0xa9, 0x53, 0x4f, 0x2d, 0x92, 0x1d, 0x58, 0xea, - 0xad, 0xc1, 0xe3, 0x8a, 0x5f, 0x86, 0x69, 0x17, 0x1f, 0x46, 0x87, 0x4b, 0x91, 0x46, 0x64, 0x84, - 0x46, 0x4c, 0xf1, 0x56, 0x35, 0xab, 0x48, 0x27, 0x62, 0x67, 0x4b, 0xe1, 0x69, 0xd4, 0x48, 0xcf, - 0xd9, 0x52, 0x70, 0x0c, 0x55, 0xfd, 0x2f, 0x0d, 0xa6, 0xfb, 0xd8, 0xab, 0xe0, 0xf4, 0x4f, 0x41, - 0x8f, 0x94, 0x27, 0x98, 0x81, 0x64, 0xf5, 0x4b, 0xaf, 0xed, 0x7a, 0x84, 0x14, 0xc0, 0x3f, 0x81, - 0x52, 0x0c, 0x5e, 0xea, 0x4c, 0x32, 0xe1, 0x4c, 0x44, 0x38, 0x42, 0x67, 0xf4, 0x3b, 0x50, 0x74, - 0x10, 0x1d, 0xb4, 0x9f, 0x02, 0xaf, 0x0d, 0xd9, 0x54, 0xfd, 0xa1, 0x06, 0xf3, 0xfd, 0x1b, 0x86, - 0x46, 0xa8, 0x7e, 0xe7, 0x6b, 0xd9, 0x69, 0x5a, 0x9f, 0xba, 0x1a, 0xad, 0xff, 0x3a, 0x4c, 0x6d, - 0x9d, 0x26, 0xd9, 0x3b, 0x50, 0x14, 0xfa, 0x10, 0xad, 0x4c, 0x93, 0x2b, 0xe3, 0xb5, 0xd1, 0xca, - 0x7e, 0x2f, 0x05, 0xc5, 0x4d, 0x62, 0x0b, 0xac, 0x9a, 0x6b, 0x37, 0xb7, 0x97, 0xf5, 0x8f, 0x20, - 0xd7, 0x26, 0xb6, 0x9a, 0xa5, 0x96, 0xc8, 0x3f, 0x66, 0xdb, 0x0a, 0x92, 0x07, 0xcd, 0x5d, 0xae, - 0xed, 0xbb, 0xdd, 0xa3, 0x81, 0x75, 0xbf, 0x0c, 0x62, 0x9e, 0xa3, 0x2c, 0x77, 0x8f, 0x24, 0xea, - 0x27, 0x30, 0x21, 0x50, 0x29, 0x76, 0x1c, 0x05, 0x9b, 0x4e, 0x04, 0x5b, 0xe0, 0x30, 0x0d, 0xec, - 0x38, 0x92, 0x99, 0x3f, 0x1c, 0x01, 0x68, 0x84, 0x37, 0x1e, 0x67, 0xa6, 0x77, 0xb7, 0x01, 0xf8, - 0x5e, 0x50, 0x25, 0x27, 0x32, 0xb7, 0xcb, 0xf1, 0x1a, 0x99, 0x9b, 0xf4, 0x25, 0x2f, 0xe9, 0x81, - 0xe4, 0x65, 0x30, 0x3f, 0xc9, 0xbc, 0x92, 0xfc, 0x64, 0xe4, 0x95, 0xe6, 0x27, 0xa3, 0x57, 0x97, - 0x9f, 0x0c, 0xdd, 0x87, 0x46, 0xc9, 0x4b, 0xf6, 0x6a, 0x93, 0x97, 0xdc, 0x2b, 0x4f, 0x5e, 0xe0, - 0xca, 0x92, 0x97, 0xea, 0x17, 0x1a, 0x8c, 0xad, 0xe2, 0x8e, 0x47, 0x09, 0xd3, 0xbf, 0x09, 0xd7, - 0xd1, 0x01, 0x22, 0x0e, 0xda, 0x15, 0xa7, 0x12, 0x0e, 0xdf, 0xed, 0x26, 0x74, 0xb7, 0xa5, 0x10, - 0x68, 0x59, 0xe2, 0xe8, 0x0d, 0x28, 0x30, 0x8f, 0x21, 0x27, 0x04, 0x4e, 0x25, 0xd4, 0x22, 0x0e, - 0xa2, 0x40, 0xab, 0x5f, 0x81, 0xa9, 0x46, 0x77, 0x17, 0x59, 0xe2, 0xdc, 0xbc, 0xe9, 0x23, 0x1b, - 0x6f, 0x79, 0x9c, 0xd8, 0x14, 0x8c, 0xb8, 0x5e, 0x30, 0xfb, 0x82, 0x21, 0x0b, 0x3c, 0xd4, 0xe4, - 0xc4, 0xe1, 0x9a, 0xf0, 0xac, 0xaf, 0x43, 0x81, 0x86, 0x63, 0x23, 0xef, 0x9a, 0x8f, 0x2a, 0xeb, - 0x36, 0xef, 0x24, 0xd4, 0x1e, 0x5b, 0xa4, 0x43, 0xb0, 0xcb, 0x82, 0x1d, 0xd7, 0x1e, 0xc6, 0x46, - 0x50, 0xa7, 0xaf, 0xc2, 0x48, 0xbf, 0xb3, 0x78, 0x99, 0x25, 0xc9, 0xc1, 0xfa, 0x87, 0x90, 0x0d, - 0x44, 0x9d, 0xd0, 0x6e, 0xc3, 0xf1, 0x7a, 0x09, 0xd2, 0x16, 0xb1, 0xa5, 0xa1, 0x1a, 0xfc, 0x67, - 0xf5, 0xf3, 0x14, 0xe4, 0xb8, 0x0b, 0x12, 0xeb, 0x1f, 0x1e, 0x55, 0x3e, 0x04, 0x90, 0xe7, 0x9c, - 0xc4, 0xdd, 0xf3, 0xd4, 0x25, 0xeb, 0x9d, 0x61, 0xc6, 0x11, 0xf2, 0x54, 0x9d, 0x83, 0xe7, 0xbc, - 0x90, 0xc9, 0xab, 0x01, 0x96, 0xd8, 0x62, 0xa6, 0x85, 0xa1, 0x9d, 0x8f, 0x25, 0xf6, 0x98, 0x12, - 0x45, 0x6c, 0x31, 0xb9, 0xee, 0xf8, 0x64, 0x7f, 0x1f, 0xfb, 0xca, 0x2b, 0x67, 0x92, 0x39, 0x7b, - 0x05, 0x22, 0x9d, 0xf2, 0x8b, 0x14, 0x14, 0x39, 0x47, 0x36, 0x48, 0x9b, 0x28, 0xb6, 0xf4, 0xae, - 0x5c, 0xbb, 0xc2, 0x95, 0xa7, 0x12, 0xae, 0xfc, 0x43, 0xc8, 0xee, 0x11, 0x47, 0x18, 0x52, 0x42, - 0xed, 0x0a, 0xc7, 0xbf, 0x12, 0x2e, 0xf2, 0x98, 0x25, 0x97, 0xd9, 0x42, 0xb4, 0x25, 0x14, 0x2e, - 0xaf, 0xe6, 0xff, 0x08, 0xd1, 0x56, 0xf5, 0xdf, 0x52, 0x30, 0x11, 0x45, 0xbe, 0xab, 0xe7, 0xf2, - 0xc7, 0x90, 0x57, 0xfe, 0xc4, 0x14, 0xa7, 0xc7, 0xc9, 0x9c, 0xca, 0xb8, 0xc2, 0x78, 0xe4, 0x39, - 0x76, 0xdf, 0x8a, 0xd2, 0x7d, 0x2b, 0xea, 0x93, 0x6b, 0xe6, 0xaa, 0x34, 0x7a, 0xe4, 0x0a, 0x34, - 0xfa, 0x9f, 0x52, 0x30, 0xd1, 0x77, 0x63, 0xf8, 0xf3, 0x66, 0xe9, 0xeb, 0x30, 0x2a, 0x8f, 0x6b, - 0x13, 0xba, 0x40, 0x35, 0xfa, 0xd5, 0xf0, 0xf7, 0x8f, 0x32, 0x70, 0x33, 0x0a, 0x37, 0x62, 0xfe, - 0xbb, 0x9e, 0xf7, 0x74, 0x13, 0x33, 0x64, 0x23, 0x86, 0xf4, 0x5f, 0x85, 0xd9, 0x03, 0xe4, 0x72, - 0x73, 0x33, 0x1d, 0xee, 0x54, 0xd4, 0x75, 0x91, 0xbc, 0xd4, 0x95, 0x91, 0x68, 0x5a, 0x75, 0x88, - 0x9c, 0x8e, 0xbc, 0xcf, 0x7d, 0x08, 0xb7, 0x7d, 0x6c, 0x77, 0x2d, 0x2c, 0xaf, 0x46, 0x06, 0x87, - 0xa7, 0xc4, 0xf0, 0x59, 0xd9, 0x69, 0xdb, 0x75, 0x8e, 0xfa, 0x11, 0x28, 0xcc, 0xa3, 0xfd, 0x7d, - 0x1f, 0xef, 0xf3, 0x7d, 0x66, 0x1c, 0x2b, 0x0c, 0x2a, 0xc9, 0xfc, 0xc7, 0xcd, 0x10, 0xd5, 0x08, - 0x69, 0x07, 0x59, 0x84, 0xee, 0xc0, 0x5c, 0x44, 0x34, 0x58, 0xfb, 0x25, 0xa3, 0x58, 0x39, 0x44, - 0xfc, 0x44, 0x02, 0x86, 0xd4, 0xd6, 0x60, 0x21, 0xa0, 0x61, 0x79, 0xae, 0x4d, 0x18, 0xf1, 0x5c, - 0xe4, 0xf4, 0xb0, 0x49, 0x9e, 0x3a, 0xde, 0x52, 0xdd, 0x56, 0xa2, 0x5e, 0x31, 0x4e, 0x6d, 0xc0, - 0xeb, 0x71, 0xfe, 0x9c, 0x05, 0x35, 0x2a, 0xa0, 0x16, 0x22, 0x8e, 0x9f, 0x8a, 0x56, 0xfd, 0x3b, - 0x0d, 0x26, 0xfa, 0x94, 0x22, 0x4a, 0x08, 0xb4, 0xab, 0x4a, 0x08, 0x52, 0x97, 0x4c, 0x08, 0xaa, - 0x90, 0x27, 0x34, 0x12, 0xa0, 0xd0, 0x85, 0xac, 0xd1, 0x53, 0x57, 0x7d, 0x0e, 0x93, 0x7d, 0x0b, - 0x59, 0xe5, 0x5a, 0x5d, 0x83, 0x11, 0xc1, 0x16, 0xe5, 0xa9, 0xdf, 0x1e, 0x66, 0xd3, 0x7d, 0xe3, - 0x0d, 0x39, 0xb2, 0xcf, 0xa5, 0xa6, 0xfa, 0x83, 0xc4, 0x5f, 0xa6, 0x61, 0x2a, 0xf2, 0x5b, 0xff, - 0xa7, 0xe3, 0x71, 0xe4, 0x9f, 0xd2, 0x97, 0xf2, 0x4f, 0xf1, 0xb8, 0x9e, 0xb9, 0xea, 0xb8, 0x3e, - 0x72, 0xe5, 0x71, 0x7d, 0xb4, 0x5f, 0x64, 0x7f, 0x9d, 0x86, 0x1b, 0xfd, 0x27, 0x17, 0xff, 0xdf, - 0x65, 0xb6, 0x0d, 0xe3, 0xea, 0x2a, 0x51, 0xa4, 0x1a, 0xc9, 0xc4, 0x06, 0x12, 0x42, 0x64, 0x1a, - 0x3f, 0x0b, 0xc1, 0xfd, 0x47, 0x0a, 0xb2, 0x3b, 0x7c, 0xb7, 0x47, 0x3c, 0x57, 0x9f, 0x86, 0x51, - 0x42, 0x37, 0x3c, 0x75, 0xa8, 0x96, 0x35, 0x54, 0xe9, 0x4a, 0x3d, 0xcf, 0x36, 0x8c, 0x63, 0x97, - 0xf9, 0x47, 0xe6, 0x65, 0xb6, 0x48, 0x20, 0x20, 0xe4, 0x02, 0xaf, 0x2a, 0x45, 0x68, 0x41, 0x79, - 0xf0, 0x74, 0xd1, 0x14, 0x84, 0x12, 0x9e, 0x70, 0x4c, 0x0f, 0x9c, 0x31, 0xae, 0x71, 0xb4, 0x6a, - 0x1d, 0xa6, 0x62, 0x16, 0x52, 0x77, 0x6d, 0x62, 0x21, 0xe6, 0x9d, 0x93, 0x9b, 0x4d, 0xc1, 0x08, - 0xa1, 0xcb, 0x5d, 0x29, 0x80, 0xac, 0x21, 0x0b, 0xd5, 0x7f, 0x4f, 0x41, 0x56, 0xec, 0x73, 0x37, - 0xbc, 0x5e, 0x31, 0x69, 0x97, 0x14, 0x53, 0x18, 0xb2, 0x52, 0x97, 0x09, 0x59, 0x03, 0x7b, 0x6a, - 0x99, 0x3e, 0xf7, 0xee, 0xa9, 0x1f, 0x42, 0x7a, 0x0f, 0x27, 0x75, 0x7b, 0x7c, 0xe8, 0x39, 0x9b, - 0x0e, 0xfd, 0x3d, 0xb8, 0xd1, 0xb3, 0x69, 0x37, 0x91, 0x6d, 0xfb, 0x98, 0x52, 0x69, 0x0d, 0xc2, - 0xcd, 0x68, 0xc6, 0x64, 0x7c, 0x0b, 0x5f, 0x93, 0x1d, 0x82, 0x7d, 0xf3, 0x58, 0xb4, 0x6f, 0xfe, - 0x22, 0x05, 0x85, 0xc0, 0x5e, 0x56, 0xb1, 0xc3, 0x90, 0x3e, 0x03, 0x63, 0x84, 0x9a, 0xce, 0xa0, - 0xd5, 0x7c, 0x0a, 0x3a, 0x3e, 0xc4, 0x56, 0x57, 0x5c, 0x83, 0x5c, 0xd2, 0x7e, 0xae, 0x87, 0x48, - 0x61, 0xf6, 0xf3, 0x04, 0x4a, 0x11, 0xfc, 0xa5, 0x1c, 0xda, 0x44, 0x88, 0x23, 0xdf, 0x32, 0xe8, - 0xdf, 0x80, 0xa8, 0x6a, 0x60, 0x6f, 0xf8, 0x32, 0xc8, 0xc5, 0x10, 0x46, 0x66, 0xcc, 0xdf, 0x4d, - 0x83, 0x1e, 0x7b, 0xa2, 0x1b, 0x28, 0xee, 0xa9, 0x47, 0x2f, 0xfd, 0x6a, 0xb2, 0x03, 0xc5, 0x8e, - 0x62, 0xbc, 0x69, 0x73, 0xce, 0xab, 0x0d, 0xca, 0x5b, 0xc3, 0x02, 0x40, 0x8f, 0xa8, 0x8c, 0x42, - 0xa7, 0x47, 0x72, 0xeb, 0x30, 0xda, 0x41, 0x47, 0x5e, 0x97, 0x25, 0x0d, 0x04, 0x72, 0xf4, 0xcf, - 0x97, 0x02, 0xff, 0x06, 0xe8, 0x51, 0x56, 0x16, 0x7a, 0xfe, 0x87, 0x90, 0x0d, 0x78, 0xa3, 0x62, - 0xf4, 0x1b, 0x17, 0x61, 0xab, 0x11, 0x8e, 0x1a, 0x94, 0x61, 0x6a, 0x50, 0x86, 0xd5, 0xe7, 0x70, - 0x3d, 0x22, 0x1e, 0x1c, 0x33, 0x5e, 0x48, 0xfa, 0x5f, 0x87, 0x31, 0x5b, 0xf6, 0x57, 0x62, 0x7f, - 0x7d, 0xd8, 0xfc, 0x14, 0xb4, 0x11, 0x8c, 0xa9, 0x76, 0xa0, 0xa0, 0xea, 0x1e, 0x77, 0x6c, 0xc4, - 0xc4, 0x89, 0xa0, 0x3c, 0x36, 0x97, 0x7e, 0x56, 0x16, 0xf4, 0x3a, 0x64, 0xd5, 0x08, 0x5a, 0x4e, - 0x55, 0xd2, 0x8b, 0xe3, 0x0f, 0xde, 0xb9, 0x58, 0x7a, 0x1b, 0x10, 0x0c, 0x87, 0x57, 0x5f, 0x68, - 0x50, 0xda, 0xf1, 0x88, 0xcb, 0x68, 0xec, 0x2d, 0xda, 0x1e, 0xcc, 0xc8, 0x13, 0xf9, 0x8e, 0x68, - 0x89, 0xbf, 0x3b, 0x4b, 0xe6, 0xb0, 0x6f, 0x08, 0xb8, 0xd3, 0xe8, 0xb0, 0x33, 0xe8, 0x24, 0xf3, - 0x3f, 0x37, 0xd8, 0x69, 0x74, 0xaa, 0xff, 0x93, 0x82, 0xf9, 0x66, 0xfc, 0x21, 0xef, 0x0a, 0x6a, - 0x77, 0x10, 0xd9, 0x77, 0x97, 0x3d, 0x8f, 0xca, 0x0b, 0xab, 0x5f, 0x81, 0x99, 0x5d, 0x5e, 0xc0, - 0xb6, 0xd9, 0xf3, 0xb1, 0x88, 0x4d, 0xcb, 0x5a, 0x25, 0xbd, 0x98, 0x33, 0xa6, 0x54, 0x73, 0x74, - 0x2c, 0x54, 0xb7, 0xa9, 0xfe, 0x19, 0xcc, 0xc4, 0xbb, 0x47, 0x0b, 0x08, 0x04, 0xf3, 0x95, 0xe1, - 0xfa, 0xd9, 0x3b, 0x51, 0x95, 0x4a, 0xde, 0x88, 0x3e, 0x33, 0x89, 0xda, 0xa8, 0x5e, 0x83, 0xdb, - 0xc1, 0x14, 0x4f, 0xf9, 0xd0, 0xc4, 0xa6, 0xe5, 0xb4, 0x98, 0xe8, 0x9c, 0xea, 0xd4, 0x9f, 0xe7, - 0xf2, 0xe9, 0x1e, 0xc0, 0xed, 0xc1, 0xa1, 0xf1, 0x49, 0x67, 0x12, 0x4f, 0xfa, 0x66, 0xff, 0xe7, - 0x2a, 0xb1, 0xa9, 0x57, 0xff, 0x46, 0x03, 0x3d, 0xe0, 0xb9, 0x94, 0xc0, 0x8e, 0x27, 0xdf, 0xfc, - 0xf4, 0x5f, 0xd8, 0xcb, 0x6b, 0xb9, 0x22, 0xed, 0xbd, 0xac, 0xff, 0x4d, 0x98, 0x6a, 0xa3, 0x43, - 0xd3, 0x52, 0x10, 0xc1, 0xab, 0x6d, 0xc5, 0xe3, 0x21, 0x2f, 0x9c, 0xbf, 0xca, 0xe7, 0xf6, 0x67, - 0xff, 0xbc, 0xb0, 0x78, 0x01, 0x05, 0xe2, 0x03, 0xa8, 0xa1, 0xb7, 0xd1, 0x61, 0xef, 0x54, 0x69, - 0xf5, 0x4f, 0x53, 0x30, 0x7b, 0xaa, 0xfe, 0x08, 0xd5, 0x79, 0x1f, 0x66, 0xc3, 0x89, 0x05, 0xcf, - 0xc7, 0x4d, 0x8a, 0xf9, 0x06, 0x9d, 0xaa, 0xf5, 0xcc, 0x04, 0x1d, 0x82, 0x97, 0xe3, 0x0d, 0xd9, - 0xac, 0xbf, 0x06, 0xf9, 0xd8, 0xe5, 0x98, 0x5c, 0x50, 0xce, 0x18, 0x8f, 0x6e, 0xc7, 0xa8, 0xde, - 0x85, 0xd9, 0xde, 0xc7, 0xea, 0xa6, 0x10, 0xb0, 0xdc, 0xa8, 0xa4, 0x85, 0x93, 0x79, 0x7f, 0x98, - 0xbc, 0x86, 0x2b, 0xbe, 0x31, 0xdd, 0xf3, 0xc2, 0x3d, 0x32, 0x88, 0xaf, 0xc1, 0x8c, 0x4d, 0xe8, - 0xb3, 0x2e, 0x72, 0xc8, 0x1e, 0xc1, 0x76, 0x5c, 0xcf, 0x32, 0x62, 0x92, 0x37, 0xe2, 0xcd, 0xa1, - 0x8a, 0x55, 0xff, 0x33, 0x05, 0x93, 0xeb, 0x18, 0xaf, 0x12, 0x2a, 0x6f, 0x37, 0x88, 0xda, 0x14, - 0x7d, 0x0b, 0x26, 0xa5, 0x4f, 0xb1, 0x55, 0x8b, 0xbc, 0x36, 0x4b, 0x78, 0x2d, 0x2e, 0xa0, 0x02, - 0x1a, 0xe2, 0xd2, 0xec, 0x5b, 0x30, 0xc9, 0x4e, 0xc1, 0x4f, 0x98, 0xc7, 0xb0, 0x01, 0xfc, 0x06, - 0x14, 0xd4, 0xe7, 0x0a, 0xa8, 0x2d, 0x0e, 0x5a, 0xd2, 0x89, 0xbe, 0x4f, 0xc8, 0x4b, 0x90, 0x9a, - 0xc0, 0xe0, 0xa1, 0xfd, 0xc0, 0x73, 0xba, 0xed, 0xa4, 0x51, 0x59, 0x8d, 0xae, 0xfe, 0x7e, 0x2f, - 0xd3, 0x1b, 0x56, 0x0b, 0xdb, 0x5d, 0x47, 0x3c, 0xc6, 0xdd, 0xed, 0x5a, 0x5c, 0x6e, 0xd1, 0x69, - 0x5e, 0xc6, 0x18, 0x97, 0x75, 0xf2, 0x58, 0xe9, 0x2e, 0x4c, 0xa8, 0x2e, 0xe1, 0xa7, 0x0f, 0xf2, - 0x9d, 0x4d, 0x51, 0x56, 0x87, 0xdf, 0x3a, 0xf4, 0xab, 0x6a, 0x7a, 0x50, 0x55, 0xb7, 0x00, 0x18, - 0x51, 0x7b, 0xe8, 0xc0, 0x97, 0xdc, 0x1f, 0xa6, 0x9b, 0xa7, 0x28, 0x8a, 0x91, 0x63, 0xea, 0x17, - 0x1d, 0xa6, 0x83, 0x23, 0xc3, 0x74, 0x70, 0x13, 0xf4, 0x3e, 0xe4, 0x66, 0x73, 0x43, 0xd7, 0x21, - 0xc3, 0x82, 0x10, 0x96, 0x31, 0xc4, 0x6f, 0x1e, 0xd4, 0x19, 0x73, 0x06, 0xde, 0x18, 0xe5, 0x19, - 0x73, 0xa2, 0x57, 0x01, 0x7f, 0xa5, 0x41, 0xfe, 0x13, 0xc1, 0x68, 0x03, 0x5b, 0x9e, 0x6f, 0xeb, - 0x1f, 0x83, 0xbc, 0x6b, 0x36, 0x95, 0xf0, 0x92, 0x29, 0xf1, 0xb8, 0xc0, 0x90, 0xc0, 0x1c, 0x92, - 0xc5, 0x21, 0x13, 0xde, 0x08, 0xb0, 0x08, 0xb2, 0xfa, 0x87, 0x1a, 0x14, 0x6b, 0x32, 0xee, 0x2b, - 0x47, 0xa6, 0x97, 0x61, 0x4c, 0x65, 0x02, 0x2a, 0xa1, 0x08, 0x8a, 0x3a, 0x86, 0xb1, 0x57, 0xe8, - 0x54, 0x03, 0xec, 0xea, 0xef, 0x68, 0x90, 0x17, 0xf9, 0xb4, 0xe4, 0x24, 0x3d, 0xef, 0xa1, 0xc8, - 0x94, 0x83, 0x18, 0xa6, 0xcc, 0xe4, 0x4e, 0x4a, 0x64, 0x96, 0x5e, 0x34, 0xc3, 0xbb, 0xe7, 0x79, - 0x3d, 0x45, 0xc4, 0xd0, 0x25, 0x48, 0x9c, 0x6e, 0xf5, 0x6b, 0x50, 0x88, 0xd2, 0xa2, 0xfa, 0x2a, - 0xd5, 0xef, 0x40, 0xb1, 0x27, 0xbd, 0x93, 0x71, 0x3f, 0x6f, 0x14, 0xe2, 0xf9, 0x1d, 0xad, 0xfe, - 0xad, 0x06, 0xe3, 0x31, 0x20, 0xfd, 0x16, 0xe4, 0xfa, 0x83, 0x57, 0x54, 0x71, 0x45, 0xdb, 0xd3, - 0xf8, 0x86, 0x39, 0x7d, 0xb9, 0x0d, 0x73, 0xf5, 0x7b, 0x1a, 0x8c, 0xc8, 0xaf, 0x69, 0x7e, 0x0d, - 0xb4, 0x4e, 0x42, 0xcd, 0xd5, 0x3a, 0x7c, 0xf4, 0xb3, 0x84, 0xab, 0xd2, 0x9e, 0x55, 0xff, 0x58, - 0x83, 0x85, 0x5a, 0x70, 0x5e, 0x1e, 0xc9, 0xa1, 0xc7, 0xc8, 0x2e, 0x74, 0xd1, 0xbd, 0x0d, 0x45, - 0xa5, 0x3e, 0xd2, 0x6e, 0x02, 0xdd, 0xb8, 0xc0, 0xab, 0x08, 0x45, 0xac, 0xd0, 0x8e, 0x95, 0x68, - 0xf5, 0xfb, 0x1a, 0xdc, 0x0a, 0x67, 0x56, 0x3b, 0x65, 0x5a, 0x67, 0x9b, 0xd0, 0x95, 0xcf, 0x85, - 0x42, 0x3e, 0xde, 0x3c, 0xdc, 0x56, 0xa2, 0x50, 0x22, 0x37, 0x1e, 0x43, 0xa9, 0xc6, 0x57, 0xa4, - 0xf2, 0xb7, 0x20, 0x94, 0xd4, 0xf8, 0x16, 0xc4, 0xf5, 0xda, 0xab, 0xd8, 0x22, 0x6d, 0xe4, 0xd0, - 0x33, 0xb6, 0x20, 0x73, 0x7c, 0x0b, 0x22, 0x7b, 0x08, 0x82, 0x19, 0x23, 0x2c, 0xdf, 0x63, 0x70, - 0x6b, 0xd8, 0x57, 0x5e, 0x3a, 0xc0, 0xe8, 0x96, 0xb7, 0xeb, 0xd9, 0x47, 0xa5, 0x6b, 0x7a, 0x15, - 0xe6, 0x97, 0xf1, 0x3e, 0x71, 0x97, 0x1d, 0xcf, 0x7a, 0x8a, 0xfd, 0x46, 0x1b, 0xf9, 0x6c, 0xc5, - 0x73, 0x99, 0x8f, 0x2c, 0x46, 0xb7, 0x5d, 0xe7, 0xa8, 0xa4, 0xe9, 0xd3, 0xa0, 0x9f, 0x52, 0x9f, - 0xd2, 0xf3, 0x90, 0x5d, 0x3b, 0xc0, 0xfe, 0x91, 0xe7, 0xe2, 0x52, 0xfa, 0x5e, 0x33, 0xe0, 0x96, - 0x7c, 0xee, 0xa2, 0x4f, 0xc0, 0xf8, 0x63, 0x97, 0x76, 0xb0, 0x25, 0x82, 0x43, 0xe9, 0x1a, 0x27, - 0x5b, 0x13, 0xfc, 0x28, 0x69, 0xfc, 0xf7, 0x0e, 0xea, 0x52, 0x6c, 0x97, 0x52, 0x7a, 0x11, 0x60, - 0x15, 0xb7, 0x3d, 0x87, 0xd0, 0x16, 0xb6, 0x4b, 0x69, 0x7d, 0x1c, 0xc6, 0xc4, 0xb3, 0x55, 0x6c, - 0x97, 0x32, 0xf7, 0xbe, 0x48, 0xa9, 0xc7, 0x17, 0xe2, 0x4c, 0xb6, 0x02, 0xe3, 0x8f, 0xb7, 0x1a, - 0x3b, 0x6b, 0x2b, 0xf5, 0xf5, 0xfa, 0xda, 0x6a, 0xe9, 0xda, 0xdc, 0xc4, 0xf1, 0x49, 0x25, 0x5e, - 0xc5, 0x77, 0xb2, 0xcb, 0x8f, 0x9f, 0x94, 0xb4, 0xb9, 0xb1, 0xe3, 0x93, 0x0a, 0xff, 0xc9, 0xc3, - 0x4e, 0x63, 0x6d, 0x63, 0xa3, 0x94, 0x9a, 0xcb, 0x1e, 0x9f, 0x54, 0xc4, 0x6f, 0xce, 0xbd, 0x46, - 0x73, 0x7b, 0xc7, 0xe4, 0x5d, 0xd3, 0x73, 0xf9, 0xe3, 0x93, 0x4a, 0x58, 0xe6, 0x1e, 0x45, 0xfc, - 0x16, 0x83, 0x32, 0x73, 0x85, 0xe3, 0x93, 0x4a, 0x54, 0xc1, 0x47, 0x36, 0x6b, 0x1f, 0xad, 0x89, - 0x91, 0x23, 0x72, 0x64, 0x50, 0xe6, 0x23, 0xc5, 0x6f, 0x31, 0x72, 0x54, 0x8e, 0x0c, 0x2b, 0xf4, - 0x69, 0x18, 0x5d, 0x7e, 0xfc, 0xc4, 0xdc, 0xd9, 0x2e, 0x8d, 0xcd, 0xc1, 0xf1, 0x49, 0x45, 0x95, - 0xb8, 0x42, 0xf3, 0x76, 0xde, 0x90, 0x9d, 0x1b, 0x3f, 0x3e, 0xa9, 0x04, 0x45, 0x7d, 0x1e, 0x80, - 0xf7, 0xa9, 0x35, 0xb7, 0x37, 0xeb, 0x2b, 0xa5, 0xdc, 0x5c, 0xf1, 0xf8, 0xa4, 0x12, 0xab, 0xe1, - 0xdc, 0x10, 0x5d, 0x55, 0x07, 0x90, 0xdc, 0x88, 0x55, 0xdd, 0xfb, 0x0b, 0x0d, 0x0a, 0x6b, 0xc1, - 0xd9, 0x8a, 0xe0, 0xe0, 0x2d, 0x28, 0xc7, 0xa4, 0xd2, 0xd3, 0x26, 0x45, 0x24, 0x65, 0x58, 0xd2, - 0xf4, 0x02, 0xe4, 0xc4, 0x9d, 0xca, 0x3a, 0x71, 0x9c, 0x52, 0x4a, 0x9f, 0x83, 0x69, 0x51, 0xdc, - 0x44, 0xcc, 0x6a, 0x19, 0xf2, 0x3b, 0x4c, 0x21, 0x98, 0x52, 0x9a, 0x2b, 0x48, 0xd4, 0xb6, 0x85, - 0x9f, 0xcb, 0xfa, 0x8c, 0x7e, 0x03, 0xae, 0xab, 0xcf, 0xb9, 0xd4, 0x07, 0x95, 0xc4, 0x73, 0x4b, - 0x23, 0x1c, 0x4a, 0xbe, 0x4b, 0xee, 0x7f, 0xba, 0x58, 0x1a, 0xbd, 0xf7, 0xfd, 0x40, 0xde, 0x9b, - 0x88, 0x3e, 0xe5, 0x3c, 0x7b, 0xbc, 0xf5, 0xb8, 0x21, 0x44, 0x2d, 0x78, 0x26, 0x4b, 0x5c, 0xca, - 0xb5, 0xad, 0x50, 0xca, 0xb5, 0xad, 0x27, 0x9c, 0x8b, 0xc6, 0xda, 0x07, 0x8f, 0x37, 0x6a, 0x46, - 0x29, 0x25, 0xb9, 0xa8, 0x8a, 0x9c, 0x4b, 0x2b, 0xdb, 0x5b, 0xab, 0xf5, 0x66, 0x7d, 0x7b, 0xab, - 0xc6, 0x25, 0x2a, 0xb8, 0x14, 0xab, 0xd2, 0x97, 0x60, 0x66, 0xb5, 0x6e, 0xac, 0xad, 0xf0, 0x22, - 0x17, 0xa4, 0xb9, 0x6d, 0x98, 0x8f, 0xea, 0x1f, 0x3c, 0x5a, 0x33, 0x4a, 0xd9, 0xb9, 0xeb, 0xc7, - 0x27, 0x95, 0x42, 0x4f, 0x65, 0x6f, 0x7f, 0xc1, 0xee, 0x6d, 0xc3, 0xdc, 0xd8, 0xfe, 0xc6, 0x9a, - 0x51, 0x2a, 0xc9, 0xfe, 0x3d, 0x95, 0xfa, 0x4d, 0x18, 0x6f, 0x3e, 0xd9, 0x59, 0x33, 0x37, 0x6b, - 0xc6, 0x47, 0x6b, 0xcd, 0x52, 0x45, 0x2e, 0x45, 0x96, 0xf4, 0x59, 0x00, 0xd1, 0xb8, 0x51, 0xdf, - 0xac, 0x37, 0x4b, 0x0f, 0xe7, 0x72, 0xc7, 0x27, 0x95, 0x11, 0x51, 0x58, 0x6e, 0xfd, 0xf8, 0xc5, - 0xbc, 0xf6, 0x93, 0x17, 0xf3, 0xda, 0xbf, 0xbc, 0x98, 0xd7, 0xfe, 0xe0, 0xcb, 0xf9, 0x6b, 0x3f, - 0xf9, 0x72, 0xfe, 0xda, 0xdf, 0x7f, 0x39, 0x7f, 0xed, 0xd7, 0xb7, 0x62, 0xae, 0xbe, 0x1e, 0xb8, - 0x99, 0x0d, 0xb4, 0x4b, 0xef, 0x87, 0x4e, 0xe7, 0x1d, 0xcb, 0xf3, 0x71, 0xbc, 0xd8, 0x42, 0xc4, - 0xbd, 0xdf, 0xf6, 0x78, 0x5e, 0x4a, 0xa3, 0xff, 0x1b, 0x21, 0xc2, 0xc2, 0xee, 0xa8, 0xf8, 0x3c, - 0xf0, 0x97, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x09, 0xcb, 0x9d, 0x5a, 0x42, 0x00, 0x00, + // 4438 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x6f, 0x63, 0x59, + 0x56, 0x77, 0x1d, 0x3b, 0x17, 0x7b, 0xf9, 0x12, 0xe7, 0xe4, 0xe6, 0x24, 0x55, 0x89, 0xdb, 0xd5, + 0x35, 0x9d, 0xae, 0xee, 0x4e, 0xa6, 0xfa, 0xfb, 0x7a, 0xd4, 0xd3, 0xa3, 0xd1, 0xb4, 0x13, 0x27, + 0x55, 0xa6, 0x73, 0x9b, 0xe3, 0xa4, 0xa1, 0x66, 0x34, 0x73, 0xb4, 0x73, 0xce, 0x4e, 0xbc, 0x2b, + 0xe7, 0xe2, 0x3a, 0xfb, 0x38, 0x95, 0x34, 0x42, 0xe2, 0xa1, 0x85, 0x98, 0x00, 0x62, 0x78, 0x40, + 0x48, 0x48, 0x41, 0xc3, 0x03, 0x42, 0xf0, 0x02, 0xef, 0xf0, 0x80, 0x84, 0x80, 0x79, 0x18, 0xa4, + 0x79, 0x40, 0x02, 0x21, 0x31, 0xa0, 0x6e, 0x24, 0x10, 0x9a, 0x3f, 0x01, 0x21, 0xb4, 0x2f, 0xe7, + 0x62, 0x3b, 0x71, 0xec, 0x24, 0x03, 0x03, 0xbc, 0x54, 0x79, 0x5f, 0xd6, 0x6f, 0xed, 0xbd, 0xd6, + 0xda, 0x6b, 0xad, 0x7d, 0x39, 0x81, 0x37, 0x89, 0xf3, 0x02, 0x1b, 0x3e, 0x39, 0xc1, 0x2b, 0xf8, + 0xd4, 0x68, 0x20, 0xe7, 0x08, 0xaf, 0x9c, 0x3c, 0x39, 0xc0, 0x3e, 0x7a, 0x12, 0x56, 0x2c, 0x37, + 0x3d, 0xd7, 0x77, 0xd5, 0xb9, 0xb0, 0xeb, 0x72, 0xd8, 0x22, 0xbb, 0xce, 0x4d, 0x1e, 0xb9, 0x47, + 0x2e, 0xef, 0xb6, 0xc2, 0x7e, 0x09, 0x8a, 0xb9, 0x05, 0xc3, 0xa5, 0xb6, 0x4b, 0x57, 0x0e, 0x10, + 0x8d, 0x50, 0x0d, 0x97, 0x38, 0xb2, 0xfd, 0x51, 0xc4, 0xdc, 0xf5, 0x90, 0x61, 0x45, 0x9d, 0x44, + 0x51, 0x76, 0x1b, 0x47, 0x36, 0x71, 0xdc, 0x15, 0xfe, 0xaf, 0xa8, 0x2a, 0xff, 0xc3, 0x14, 0x8c, + 0xec, 0x22, 0x0f, 0xd9, 0x54, 0xc5, 0xb0, 0x48, 0x9b, 0xae, 0xaf, 0xdb, 0xc8, 0x3b, 0xc6, 0xbe, + 0x4e, 0x1c, 0xea, 0x23, 0xc7, 0xd7, 0x2d, 0x42, 0x7d, 0xe2, 0x1c, 0xe9, 0x87, 0x18, 0x17, 0x95, + 0x92, 0xb2, 0x94, 0x79, 0x77, 0x76, 0x59, 0x0c, 0x67, 0x99, 0x0d, 0x27, 0x18, 0xf9, 0xf2, 0x9a, + 0x4b, 0x9c, 0xd5, 0xa1, 0xef, 0xff, 0x68, 0xf1, 0x9e, 0x36, 0xcf, 0x70, 0xb6, 0x38, 0x4c, 0x4d, + 0xa0, 0x6c, 0x0a, 0x90, 0x0d, 0x8c, 0xd5, 0x97, 0xf0, 0xc8, 0xc4, 0x1e, 0x39, 0x41, 0x6c, 0xb8, + 0xbd, 0x98, 0x25, 0xfa, 0x63, 0xf6, 0x5a, 0x84, 0x76, 0x15, 0x4b, 0x04, 0xf3, 0x26, 0x3e, 0x44, + 0x2d, 0xcb, 0xd7, 0xe5, 0x0c, 0x8f, 0xb1, 0xc7, 0x78, 0xe8, 0x1e, 0xf2, 0x71, 0x31, 0x59, 0x52, + 0x96, 0xd2, 0xab, 0x0f, 0x19, 0xda, 0xdf, 0xff, 0x68, 0x71, 0x5e, 0xf0, 0xa3, 0xe6, 0xf1, 0x32, + 0x71, 0x57, 0x6c, 0xe4, 0x37, 0x96, 0x37, 0xf1, 0x11, 0x32, 0xce, 0xaa, 0xd8, 0xd0, 0x66, 0x24, + 0x4e, 0x9d, 0x4f, 0xf0, 0x18, 0x7b, 0x1b, 0x18, 0x6b, 0xc8, 0xef, 0x66, 0xe1, 0xb7, 0xb3, 0x18, + 0xba, 0x19, 0x8b, 0xbd, 0x38, 0x0b, 0x1b, 0x5e, 0x0b, 0x58, 0xb4, 0x09, 0xb0, 0x8d, 0xd1, 0x70, + 0xff, 0x8c, 0x1e, 0x48, 0xb4, 0x6a, 0x4c, 0x7e, 0xd7, 0xb2, 0xeb, 0x98, 0xd7, 0xc8, 0x6d, 0xd8, + 0xb5, 0xcd, 0xce, 0x84, 0xfb, 0x01, 0x3b, 0xe2, 0x10, 0x9f, 0x20, 0x8b, 0xd9, 0xc6, 0x11, 0x71, + 0x18, 0x23, 0xe2, 0x16, 0x47, 0xfb, 0xe7, 0x34, 0x2b, 0x81, 0x6a, 0x02, 0x67, 0x8b, 0xc3, 0x68, + 0x0c, 0x45, 0xb5, 0xa0, 0x14, 0x70, 0xb1, 0x11, 0x71, 0x7c, 0xec, 0x20, 0xc7, 0xc0, 0xed, 0x9c, + 0x52, 0x83, 0xcf, 0x69, 0x2b, 0xc2, 0x8a, 0x73, 0x7b, 0x1f, 0x8a, 0x01, 0xb7, 0xc3, 0x96, 0x63, + 0x32, 0xc3, 0x66, 0xfd, 0xbc, 0x13, 0x64, 0x15, 0xd3, 0x25, 0x65, 0x29, 0xa9, 0x4d, 0xcb, 0xf6, + 0x0d, 0xd1, 0x5c, 0x93, 0xad, 0xea, 0x9b, 0x50, 0x08, 0x28, 0xec, 0x96, 0xe5, 0x93, 0xa6, 0x85, + 0x8b, 0xc0, 0x29, 0xc6, 0x64, 0xfd, 0x96, 0xac, 0x56, 0x7f, 0x0e, 0xa6, 0x3d, 0x6c, 0xa1, 0x33, + 0xa9, 0x16, 0xda, 0x40, 0x9e, 0x54, 0x4e, 0xa6, 0xff, 0x89, 0x4c, 0x48, 0x88, 0x0d, 0x8c, 0xeb, + 0x0c, 0x80, 0xab, 0x84, 0xc0, 0x62, 0x30, 0xfc, 0x86, 0xdb, 0xf2, 0xac, 0xb3, 0x70, 0x16, 0x0c, + 0x5e, 0x37, 0x50, 0xb3, 0x98, 0xed, 0x9f, 0x45, 0xb0, 0x3e, 0x9e, 0x71, 0x28, 0x39, 0x61, 0xc6, + 0x67, 0x0d, 0x35, 0xe3, 0xda, 0x97, 0xac, 0xb8, 0xa0, 0x30, 0xf5, 0xc5, 0x54, 0x72, 0x83, 0x6b, + 0x5f, 0xf0, 0xa9, 0x49, 0x18, 0x3e, 0xa1, 0x2a, 0x2c, 0xda, 0xe8, 0x34, 0x6e, 0xce, 0xae, 0x67, + 0x62, 0x4f, 0xa7, 0xc4, 0xc4, 0xba, 0xe1, 0xb6, 0x1c, 0xbf, 0x98, 0x2f, 0x29, 0x4b, 0x39, 0x6d, + 0xde, 0x46, 0xa7, 0x91, 0x9d, 0xee, 0xb0, 0x4e, 0x75, 0x62, 0xe2, 0x35, 0xd6, 0x45, 0xa5, 0xf0, + 0x06, 0x71, 0x5e, 0xe8, 0x1e, 0x7e, 0x85, 0x3c, 0x53, 0xa7, 0x6c, 0x45, 0x98, 0xba, 0x87, 0x5f, + 0xb6, 0x88, 0x87, 0x6d, 0xec, 0xf8, 0xba, 0xdf, 0xf0, 0x30, 0x6d, 0xb8, 0x96, 0x59, 0x1c, 0xe3, + 0xc3, 0x7e, 0x20, 0x87, 0x3d, 0xd5, 0x3d, 0xec, 0x9a, 0xe3, 0x6b, 0x0f, 0x89, 0xf3, 0x42, 0xe3, + 0x60, 0x75, 0x8e, 0xa5, 0x45, 0x50, 0x7b, 0x01, 0x92, 0xfa, 0x14, 0x4a, 0xbe, 0x87, 0x84, 0xf0, + 0x79, 0x5f, 0xaa, 0x9f, 0x60, 0xe1, 0x2b, 0xcd, 0x16, 0xb7, 0x5b, 0xa7, 0x58, 0xe0, 0x06, 0xf2, + 0x40, 0xf6, 0x13, 0x90, 0xf4, 0x63, 0xd1, 0xab, 0x2a, 0x3b, 0x31, 0x49, 0x5b, 0xe4, 0x65, 0x8b, + 0x98, 0xc8, 0x77, 0xbd, 0x70, 0x12, 0x91, 0xd1, 0x8c, 0x0f, 0x20, 0xe9, 0x08, 0x48, 0x8e, 0x3f, + 0x34, 0x9d, 0x53, 0x78, 0xf3, 0x80, 0x38, 0xc8, 0x3b, 0xd3, 0xdd, 0x26, 0x63, 0x4b, 0x7b, 0x39, + 0x7a, 0xb5, 0x3f, 0x47, 0xff, 0xba, 0x40, 0xdc, 0x11, 0x80, 0x57, 0xf9, 0xfa, 0x5f, 0x54, 0xa0, + 0x84, 0x7c, 0xd7, 0x26, 0x46, 0xc0, 0x52, 0xe8, 0x18, 0x19, 0x06, 0xa6, 0x54, 0xb7, 0xf0, 0x09, + 0xb6, 0x8a, 0x13, 0x25, 0x65, 0x29, 0xff, 0xee, 0xfb, 0xcb, 0x57, 0x07, 0xe2, 0xe5, 0x0a, 0xc7, + 0x10, 0x5c, 0xb8, 0x01, 0x54, 0x38, 0xc0, 0x26, 0xa3, 0xd7, 0xee, 0xa3, 0x1e, 0xad, 0xea, 0x29, + 0xbc, 0xc1, 0x63, 0xc0, 0x65, 0xc3, 0x60, 0x4b, 0x54, 0xae, 0x68, 0x82, 0xbd, 0xe2, 0x64, 0xff, + 0xd2, 0x2e, 0x33, 0xcc, 0xae, 0x51, 0x6d, 0x60, 0xbc, 0x15, 0xc2, 0xa9, 0x9f, 0x2a, 0xf0, 0x4e, + 0xcc, 0xba, 0xfb, 0x18, 0xc0, 0x54, 0xff, 0x03, 0x58, 0x8a, 0x90, 0xaf, 0x19, 0xc6, 0xaf, 0x28, + 0xf0, 0xa4, 0x43, 0xfd, 0x7d, 0x0c, 0x65, 0xba, 0xff, 0xa1, 0xbc, 0xd5, 0x66, 0x0a, 0xd7, 0x8c, + 0xe6, 0xdb, 0x30, 0x6b, 0x13, 0x87, 0xd8, 0xc8, 0xd2, 0x79, 0xce, 0x63, 0xb8, 0x56, 0x14, 0xc0, + 0x66, 0xfa, 0x67, 0x3a, 0x2d, 0x51, 0x76, 0x25, 0x48, 0x10, 0xb9, 0xbe, 0x09, 0x6f, 0x11, 0x1a, + 0x1a, 0x76, 0x77, 0x6e, 0x63, 0xa1, 0x96, 0x63, 0x34, 0x74, 0xec, 0xa0, 0x03, 0x0b, 0x9b, 0xc5, + 0x62, 0x49, 0x59, 0x4a, 0x69, 0x5f, 0x20, 0x54, 0xda, 0x6e, 0xb5, 0x23, 0x7d, 0xd9, 0xe4, 0xdd, + 0xd7, 0x45, 0x6f, 0xe6, 0xb2, 0x9a, 0x2e, 0xf5, 0x75, 0xd7, 0xb1, 0xce, 0x74, 0xdb, 0x35, 0xb1, + 0xde, 0xc0, 0xe4, 0xa8, 0x11, 0x77, 0x32, 0xb3, 0x7c, 0xd9, 0xcf, 0xb3, 0x6e, 0x3b, 0x8e, 0x75, + 0xb6, 0xe5, 0x9a, 0xf8, 0x19, 0xef, 0x13, 0x79, 0x8f, 0x23, 0x78, 0x22, 0x43, 0x9c, 0x89, 0x0d, + 0x0f, 0x23, 0x8a, 0xf5, 0xa6, 0x47, 0x0c, 0xac, 0xfb, 0xc4, 0xc6, 0xd4, 0x47, 0x76, 0x33, 0xc2, + 0xd3, 0x29, 0x36, 0x5c, 0xc7, 0xa4, 0xc5, 0x39, 0x8e, 0xfb, 0xb6, 0x20, 0xac, 0x4a, 0xba, 0x5d, + 0x46, 0xb6, 0x17, 0x50, 0x85, 0x1c, 0xea, 0x82, 0x46, 0x7d, 0x03, 0xc6, 0x82, 0x95, 0xa4, 0x23, + 0xd3, 0x26, 0x0e, 0x2d, 0xce, 0x97, 0x92, 0x4b, 0x69, 0x2d, 0x1f, 0x54, 0x57, 0x78, 0xad, 0xba, + 0x09, 0x13, 0xcc, 0x89, 0xa2, 0x96, 0xc1, 0x54, 0xa8, 0x33, 0xb7, 0xcc, 0xe2, 0xc9, 0xfd, 0x7e, + 0x1c, 0x66, 0x81, 0x38, 0x2f, 0x2a, 0x82, 0x70, 0x0b, 0x9d, 0xae, 0xa1, 0xe6, 0x07, 0xc5, 0x7f, + 0xfd, 0xde, 0xa2, 0x72, 0xfe, 0x2f, 0x7f, 0xfc, 0x38, 0xe4, 0xbe, 0x22, 0x92, 0xda, 0xf2, 0xa7, + 0x0a, 0x4c, 0x08, 0xb9, 0xb6, 0x1b, 0xc5, 0x3c, 0xa4, 0x03, 0x8f, 0x64, 0xf2, 0xb4, 0x36, 0xad, + 0xa5, 0x44, 0x45, 0xcd, 0x54, 0x7f, 0x06, 0xf2, 0x1d, 0xb6, 0x99, 0xe8, 0xdf, 0x4c, 0x72, 0x87, + 0x71, 0x46, 0x1f, 0x0c, 0xfd, 0xf2, 0xf7, 0x16, 0xef, 0x95, 0x7f, 0x9c, 0x82, 0x42, 0xa7, 0xa2, + 0xd5, 0x69, 0x18, 0xf1, 0x89, 0x71, 0x8c, 0x3d, 0x39, 0x00, 0x59, 0x52, 0x17, 0x21, 0x23, 0xd2, + 0x76, 0x9d, 0xb9, 0x42, 0xc1, 0x5b, 0x03, 0x51, 0xb5, 0x8a, 0x28, 0x56, 0x5f, 0x83, 0xac, 0xec, + 0xf0, 0xb2, 0xe5, 0x06, 0x09, 0xac, 0x26, 0x89, 0xbe, 0xce, 0xaa, 0xd4, 0xf5, 0x10, 0xc3, 0x3f, + 0x6b, 0x8a, 0xfc, 0x33, 0xff, 0xee, 0xeb, 0x31, 0x87, 0x27, 0x37, 0x06, 0x81, 0xbb, 0xdb, 0xe1, + 0xc5, 0xbd, 0xb3, 0x26, 0x0e, 0x38, 0xb1, 0xdf, 0xea, 0x32, 0x4c, 0x48, 0x18, 0x6a, 0x20, 0x0b, + 0xeb, 0x87, 0xc8, 0xf0, 0x5d, 0x8f, 0x67, 0x99, 0x39, 0x6d, 0x5c, 0x34, 0xd5, 0x59, 0xcb, 0x06, + 0x6f, 0x60, 0x43, 0xe7, 0x43, 0xd2, 0x4d, 0xec, 0xb8, 0xb6, 0x48, 0x0f, 0x35, 0xe0, 0x55, 0x55, + 0x56, 0xd3, 0x2e, 0xf7, 0xd1, 0x0e, 0xb9, 0xef, 0xc3, 0xe4, 0xa5, 0xb9, 0xdf, 0x00, 0x19, 0x99, + 0x4a, 0xba, 0x93, 0xbe, 0x6f, 0x41, 0xf1, 0xca, 0x64, 0x2f, 0x3d, 0xc8, 0xfa, 0xbf, 0x3c, 0xcb, + 0xab, 0x41, 0xbe, 0x23, 0x09, 0x87, 0xfe, 0x41, 0xb3, 0x76, 0x3c, 0x09, 0xae, 0x41, 0xbe, 0x23, + 0xc1, 0x1e, 0x20, 0x87, 0xcb, 0xfa, 0x71, 0xa8, 0xab, 0xd3, 0xc2, 0xec, 0x2d, 0xd3, 0xc2, 0x12, + 0x64, 0x08, 0xdd, 0xc5, 0x5e, 0x13, 0xfb, 0x2d, 0x64, 0xf1, 0xd4, 0x2c, 0xa5, 0xc5, 0xab, 0xd4, + 0x0f, 0x61, 0x84, 0xfa, 0xc8, 0x6f, 0x51, 0x9e, 0x4e, 0xe5, 0xdf, 0x5d, 0xea, 0x15, 0x68, 0xc5, + 0x62, 0xa8, 0xf3, 0xfe, 0x9a, 0xa4, 0x53, 0x35, 0x98, 0xb0, 0x89, 0x13, 0x3a, 0x29, 0xe3, 0x58, + 0xa7, 0xe4, 0x13, 0x2c, 0xf3, 0xa9, 0xbe, 0x86, 0x5e, 0xb0, 0x89, 0x23, 0x9d, 0x95, 0x71, 0x5c, + 0x27, 0x9f, 0x70, 0x89, 0x30, 0xcc, 0x97, 0x2d, 0xe4, 0xf8, 0xc4, 0x3f, 0x8b, 0xc1, 0x16, 0x06, + 0x90, 0x88, 0x4d, 0x9c, 0xaf, 0x4b, 0x84, 0x10, 0x79, 0x03, 0xb2, 0x0c, 0xd9, 0x71, 0x99, 0x4b, + 0x42, 0xd6, 0x20, 0x39, 0x54, 0xc6, 0x26, 0xce, 0xb6, 0xa4, 0x53, 0x27, 0x61, 0x98, 0x3b, 0x4d, + 0x9e, 0x11, 0xa5, 0x35, 0x51, 0x50, 0xdf, 0x82, 0x71, 0xfe, 0x43, 0x6f, 0x62, 0xcf, 0x26, 0x94, + 0xb2, 0x90, 0xc7, 0x33, 0x98, 0x9c, 0x56, 0xe0, 0x0d, 0xbb, 0x51, 0xbd, 0x74, 0x37, 0x7f, 0x9b, + 0x82, 0x89, 0xd5, 0xee, 0x6c, 0xe9, 0x4a, 0x8f, 0xf3, 0x10, 0x72, 0xc1, 0x32, 0x3f, 0xb3, 0x0f, + 0x5c, 0x4b, 0xfa, 0x1c, 0xe9, 0x65, 0xea, 0xbc, 0x8e, 0xf9, 0x76, 0xd9, 0xa9, 0xe9, 0xb9, 0x27, + 0xc4, 0xc4, 0x9e, 0x74, 0x3c, 0x79, 0x51, 0xbd, 0x2b, 0x6b, 0xff, 0xbb, 0x7c, 0xcf, 0x13, 0x98, + 0xc4, 0xa7, 0x4d, 0x22, 0xf2, 0xdc, 0x28, 0xb2, 0x71, 0x27, 0x94, 0xd4, 0x26, 0xa2, 0xb6, 0x30, + 0x7c, 0x31, 0x12, 0x8a, 0x7d, 0xdf, 0x92, 0x79, 0x7b, 0x48, 0x32, 0x2a, 0x48, 0xa2, 0xb6, 0x88, + 0x24, 0xd4, 0x51, 0x2a, 0xae, 0xa3, 0x0e, 0xbf, 0x97, 0xee, 0xed, 0xf7, 0xa0, 0xc3, 0xef, 0x75, + 0x7b, 0x90, 0xcc, 0xdd, 0x79, 0x90, 0xec, 0xdd, 0x7b, 0x90, 0xdc, 0x2d, 0x3d, 0xc8, 0xff, 0x35, + 0xff, 0xb0, 0x0d, 0x85, 0x98, 0x99, 0xf1, 0x41, 0xc7, 0x7c, 0x84, 0x72, 0x1d, 0xe6, 0x58, 0x44, + 0xcc, 0x47, 0xdc, 0xe5, 0x6f, 0xd4, 0x1b, 0xfa, 0x9b, 0x1b, 0x78, 0x96, 0x7f, 0x4e, 0xc0, 0xcc, + 0x3a, 0x5b, 0x49, 0x67, 0x1b, 0x2d, 0xbf, 0xe5, 0xe1, 0x70, 0x1f, 0x76, 0xe8, 0xf6, 0xce, 0xa9, + 0xae, 0x5a, 0x9d, 0x89, 0xab, 0x57, 0xe7, 0x17, 0x61, 0xd2, 0x7f, 0x85, 0x9a, 0x6c, 0x8b, 0xed, + 0xc5, 0x57, 0x67, 0x92, 0x93, 0xa8, 0xac, 0xad, 0xce, 0x9a, 0x22, 0x8a, 0x57, 0xf0, 0x85, 0x38, + 0x93, 0x88, 0x58, 0x18, 0x8a, 0xd1, 0xb2, 0x5b, 0x16, 0xcf, 0xc0, 0x06, 0x39, 0x90, 0x2b, 0xc7, + 0xc6, 0x16, 0xb0, 0xe4, 0x7a, 0x58, 0x0b, 0xe1, 0x2e, 0xd5, 0xf0, 0x00, 0x47, 0x71, 0x9d, 0x1a, + 0x2e, 0xff, 0x65, 0x02, 0x26, 0xc2, 0x78, 0xda, 0xaf, 0x88, 0xbf, 0x01, 0x33, 0x57, 0x9d, 0xd3, + 0x0c, 0x90, 0xbf, 0x4e, 0x36, 0x2e, 0x3b, 0xa0, 0xd9, 0x87, 0xc9, 0x4b, 0x0f, 0x66, 0x06, 0x38, + 0x3b, 0x55, 0x1b, 0xdd, 0x27, 0x32, 0xff, 0x1f, 0xa6, 0x1d, 0x7c, 0x1a, 0x1d, 0x8f, 0x45, 0x4a, + 0x1e, 0xe2, 0x4a, 0x9e, 0x64, 0xad, 0x72, 0x28, 0x91, 0x9a, 0x63, 0xa7, 0x63, 0xe1, 0x79, 0xda, + 0x70, 0xdb, 0xe9, 0x58, 0x70, 0x90, 0x56, 0xfe, 0x5c, 0x81, 0xe9, 0x0e, 0x41, 0x4a, 0x38, 0x55, + 0x03, 0x35, 0x32, 0x88, 0x60, 0x04, 0x42, 0xa8, 0xfd, 0x4d, 0x68, 0x3c, 0x22, 0x0f, 0x30, 0xb7, + 0xa1, 0x10, 0xc3, 0x14, 0x76, 0x30, 0x80, 0xec, 0xc7, 0x22, 0x62, 0xb1, 0xd2, 0x1f, 0x41, 0xde, + 0x42, 0xb4, 0xdb, 0xf8, 0x73, 0xac, 0x36, 0x14, 0x48, 0xf9, 0xd7, 0x14, 0x58, 0xe8, 0xdc, 0x5e, + 0xd4, 0x43, 0x93, 0xba, 0xde, 0x72, 0x2e, 0x33, 0xdf, 0xc4, 0x2d, 0xcc, 0xf7, 0xab, 0x30, 0xb9, + 0x7d, 0x99, 0xe2, 0x1e, 0x41, 0x9e, 0xab, 0x3b, 0x9a, 0x8e, 0x22, 0xa6, 0xc3, 0x6a, 0xa3, 0xe9, + 0xfc, 0x9b, 0x02, 0xf9, 0x2d, 0x62, 0x72, 0xac, 0x8a, 0x63, 0xee, 0xed, 0xac, 0xaa, 0x1f, 0x42, + 0xda, 0x26, 0xa6, 0x1c, 0x9a, 0xd2, 0xbf, 0xef, 0x4c, 0xd9, 0x12, 0x87, 0x45, 0xc6, 0x03, 0x66, + 0xb6, 0x07, 0xad, 0xb3, 0xae, 0x19, 0x5e, 0x0b, 0x93, 0x65, 0xa4, 0xab, 0xad, 0x33, 0x01, 0xf5, + 0x11, 0x8c, 0x71, 0x28, 0x8a, 0x2d, 0x4b, 0x62, 0x25, 0xfb, 0xc7, 0xca, 0x31, 0xda, 0x3a, 0xb6, + 0x2c, 0x21, 0xab, 0x1f, 0x0f, 0x03, 0xd4, 0xc3, 0xfb, 0x92, 0x2b, 0x53, 0xb4, 0x07, 0x00, 0x6c, + 0x37, 0x28, 0x13, 0x0c, 0x91, 0x9f, 0xa5, 0x59, 0x8d, 0xc8, 0x2f, 0x3a, 0x12, 0x90, 0x64, 0x57, + 0x02, 0xd2, 0x9d, 0x63, 0x0c, 0xdd, 0x5d, 0x8e, 0x31, 0x7c, 0xf7, 0x39, 0xc6, 0xc8, 0x2d, 0x73, + 0x8c, 0x9e, 0x1b, 0xcd, 0x28, 0x01, 0x49, 0xdd, 0x6d, 0x02, 0x92, 0xfe, 0xc9, 0x24, 0x20, 0x70, + 0xc7, 0x1b, 0x94, 0xcc, 0x6d, 0x37, 0x28, 0xd9, 0x6b, 0x37, 0x28, 0xb9, 0xcb, 0xd3, 0x88, 0xf2, + 0xef, 0x29, 0x30, 0x5a, 0xc5, 0x4d, 0x97, 0x12, 0x5f, 0xdd, 0x85, 0x71, 0x74, 0x82, 0x88, 0x85, + 0x0e, 0xf8, 0x59, 0x87, 0xc5, 0x76, 0xd6, 0x83, 0x38, 0xe0, 0x42, 0x48, 0xbd, 0x2a, 0x88, 0xd5, + 0x67, 0x90, 0xf3, 0x5d, 0x1f, 0x59, 0x21, 0x5a, 0x62, 0x10, 0xcb, 0x64, 0x94, 0x12, 0xa9, 0xfc, + 0x36, 0x4c, 0xd6, 0x5b, 0x07, 0xc8, 0xe0, 0xd7, 0x02, 0x7b, 0x1e, 0x32, 0xf1, 0xb6, 0xcb, 0x38, + 0x4c, 0xc2, 0xb0, 0xe3, 0x06, 0xe3, 0xcc, 0x69, 0xa2, 0xc0, 0xc2, 0x4c, 0x9a, 0x1f, 0x3d, 0x72, + 0x5f, 0xfb, 0x10, 0x72, 0x34, 0xa4, 0x8d, 0xfc, 0x6d, 0x36, 0xaa, 0xac, 0x99, 0xac, 0x13, 0x5f, + 0x3f, 0xd8, 0x20, 0x4d, 0x82, 0x1d, 0x3f, 0xd8, 0x73, 0x1d, 0x62, 0xac, 0x05, 0x75, 0xea, 0x97, + 0x61, 0xb8, 0xd3, 0xbf, 0x5c, 0x3b, 0x0f, 0x41, 0xa1, 0x7e, 0x0d, 0x52, 0x81, 0x25, 0x0d, 0xb2, + 0xd4, 0x43, 0x22, 0xb5, 0x00, 0x49, 0x83, 0x98, 0x62, 0x6d, 0x6b, 0xec, 0x67, 0xf9, 0xd3, 0x04, + 0xa4, 0x99, 0xab, 0xe2, 0x33, 0xbd, 0xee, 0x08, 0x0d, 0xc4, 0x21, 0x2f, 0x71, 0x0e, 0x5d, 0x79, + 0x95, 0xfb, 0xa8, 0xd7, 0x2a, 0x0b, 0xa5, 0x27, 0x4f, 0xfb, 0xd3, 0x6e, 0x28, 0xce, 0x6a, 0x80, + 0xc5, 0xb7, 0x93, 0x49, 0xbe, 0x62, 0xaf, 0xc7, 0xe2, 0xfb, 0x49, 0x81, 0xc2, 0xb7, 0x93, 0xcc, + 0x34, 0x3c, 0x72, 0x74, 0x84, 0x3d, 0xe9, 0xb2, 0x87, 0x06, 0x70, 0xff, 0x92, 0x52, 0x78, 0xec, + 0x1f, 0x24, 0x20, 0xcf, 0xc4, 0xb0, 0x49, 0x6c, 0x22, 0x65, 0xd1, 0x3e, 0x5d, 0xe5, 0x0e, 0xa7, + 0x9b, 0xb8, 0xe1, 0x74, 0xbf, 0x06, 0xa9, 0x43, 0x62, 0xf1, 0xc5, 0x31, 0x88, 0xf1, 0x84, 0x44, + 0x77, 0x27, 0x2f, 0x16, 0xba, 0xc4, 0x84, 0x1a, 0x88, 0x36, 0xb8, 0x3d, 0x65, 0xe5, 0x48, 0x9f, + 0x21, 0xda, 0x28, 0xff, 0x4d, 0x02, 0xc6, 0xa2, 0x00, 0x78, 0xf7, 0xf2, 0xdc, 0x80, 0xac, 0xf4, + 0x06, 0x3a, 0x3f, 0x2f, 0x1f, 0xc0, 0x25, 0x64, 0x24, 0xe1, 0x33, 0xd7, 0x32, 0x3b, 0xa6, 0x91, + 0xec, 0x98, 0x46, 0x87, 0xda, 0x86, 0xee, 0xca, 0x4a, 0x87, 0x6f, 0x6a, 0xa5, 0x7f, 0x95, 0x80, + 0xb1, 0x8e, 0x3b, 0xcc, 0xff, 0x69, 0x4b, 0xf6, 0x2b, 0x30, 0x22, 0x0e, 0x6b, 0x07, 0x71, 0x60, + 0x92, 0xe4, 0x0e, 0x25, 0xf9, 0xef, 0x49, 0x98, 0x8f, 0x62, 0x01, 0x1f, 0xe9, 0x81, 0xeb, 0x1e, + 0x6f, 0x61, 0x1f, 0x99, 0xc8, 0x47, 0xea, 0x97, 0x61, 0xf6, 0x04, 0x39, 0x6c, 0xdd, 0xe8, 0x16, + 0x73, 0x09, 0xf2, 0x7a, 0x4b, 0x5c, 0x28, 0x8b, 0x30, 0x31, 0x2d, 0x3b, 0x44, 0x2e, 0x43, 0xdc, + 0x25, 0x7f, 0x08, 0x0f, 0x3c, 0x6c, 0xb6, 0x0c, 0x2c, 0x2e, 0x78, 0xba, 0xc9, 0x13, 0x9c, 0x7c, + 0x56, 0x74, 0xda, 0x71, 0xac, 0xb3, 0x4e, 0x84, 0x06, 0x2c, 0xa0, 0xa3, 0x23, 0x0f, 0x1f, 0xb1, + 0xad, 0x5e, 0x1c, 0x2b, 0x74, 0xfe, 0x03, 0xac, 0xfe, 0xf9, 0x10, 0x4a, 0x0b, 0x19, 0x06, 0xc9, + 0x84, 0x8a, 0x60, 0x2e, 0xe2, 0x14, 0x4c, 0xf8, 0x26, 0x21, 0xa6, 0x18, 0xc2, 0x7c, 0x2c, 0x50, + 0x42, 0x16, 0xeb, 0xb0, 0x18, 0x00, 0x1b, 0xae, 0x63, 0x12, 0x91, 0x76, 0xb4, 0x09, 0x44, 0x1c, + 0xff, 0xdd, 0x97, 0xdd, 0xd6, 0xa2, 0x5e, 0x31, 0x99, 0x6c, 0xc2, 0xc3, 0xb8, 0x24, 0xae, 0x82, + 0x1a, 0xe1, 0x50, 0x8b, 0x91, 0x6c, 0x2f, 0x45, 0x2b, 0xff, 0xb9, 0x02, 0x63, 0x1d, 0xea, 0x8f, + 0xe2, 0xb2, 0x72, 0xab, 0xb8, 0x9c, 0xb8, 0x49, 0x5c, 0x2e, 0x43, 0x96, 0xd0, 0x48, 0x3f, 0x5c, + 0xbf, 0x29, 0xad, 0xad, 0x2e, 0x88, 0xdd, 0x43, 0x51, 0xec, 0x7e, 0x05, 0x13, 0x1d, 0x93, 0xa8, + 0x32, 0xdb, 0xad, 0xc0, 0x30, 0x17, 0x89, 0xf4, 0xb1, 0x6f, 0xf5, 0x5a, 0xa3, 0x1d, 0xf4, 0x9a, + 0xa0, 0xec, 0xf0, 0x8b, 0x89, 0x4e, 0xf7, 0xfe, 0xeb, 0x49, 0x98, 0x8c, 0xfc, 0xd0, 0x4f, 0x75, + 0xcc, 0x8c, 0xfc, 0x4d, 0x72, 0x70, 0x7f, 0x13, 0x0f, 0xb8, 0x43, 0x77, 0x12, 0x70, 0x87, 0xef, + 0x26, 0xe0, 0x8e, 0x74, 0x6a, 0xe4, 0x37, 0x93, 0x30, 0xd5, 0x79, 0x5a, 0xf0, 0xbf, 0x52, 0x25, + 0x55, 0xc8, 0xc8, 0xcb, 0x3e, 0x1e, 0xf8, 0x07, 0xd0, 0x0a, 0x08, 0x3a, 0x1e, 0xf7, 0xff, 0xcb, + 0xf4, 0xf2, 0x17, 0x09, 0x48, 0xed, 0xb2, 0x8d, 0x11, 0x71, 0x1d, 0x75, 0x1a, 0x46, 0x08, 0xdd, + 0x74, 0xe5, 0x89, 0x54, 0x4a, 0x93, 0xa5, 0xdb, 0xbb, 0x8f, 0x2a, 0x64, 0xb0, 0xe3, 0x7b, 0x67, + 0xfa, 0xc0, 0x1b, 0x0b, 0xe0, 0x74, 0x62, 0x2a, 0xb7, 0x0a, 0xcd, 0xdf, 0x82, 0x62, 0xf7, 0xc9, + 0x9b, 0xce, 0xd1, 0x07, 0x39, 0x4a, 0x98, 0xee, 0x3a, 0x7f, 0x5b, 0x67, 0x10, 0xe5, 0x1a, 0x4c, + 0xc6, 0x8c, 0xba, 0xe6, 0x98, 0xc4, 0x40, 0xbe, 0x7b, 0x4d, 0xf6, 0x33, 0x09, 0xc3, 0x84, 0xae, + 0xb6, 0x84, 0x50, 0x53, 0x9a, 0x28, 0x94, 0xff, 0x3a, 0x01, 0x29, 0xbe, 0xf9, 0xdb, 0x74, 0xdb, + 0x45, 0xaf, 0xdc, 0x44, 0xf4, 0x61, 0xd4, 0x48, 0x0c, 0x1c, 0x35, 0xba, 0xb6, 0x94, 0x22, 0xff, + 0x6c, 0xdf, 0x52, 0xbe, 0x07, 0xc9, 0x43, 0x3c, 0x90, 0xf7, 0x61, 0xfd, 0xaf, 0xc9, 0xcf, 0xd5, + 0xf7, 0x61, 0xaa, 0x6d, 0xa3, 0xaa, 0x23, 0xd3, 0xf4, 0x30, 0xa5, 0xc2, 0x80, 0xf9, 0xc2, 0x57, + 0xb4, 0x89, 0xf8, 0xb6, 0xb5, 0x22, 0x3a, 0x04, 0x51, 0x68, 0x34, 0x8a, 0x42, 0xbf, 0x9d, 0x80, + 0x5c, 0x60, 0xe2, 0x55, 0x6c, 0xf9, 0x48, 0x9d, 0x81, 0x51, 0x42, 0x75, 0xab, 0xdb, 0xd0, 0x35, + 0x50, 0xf1, 0x29, 0x36, 0x5a, 0xfc, 0x28, 0xff, 0x26, 0x26, 0x3f, 0x1e, 0x92, 0x87, 0xf9, 0xc5, + 0x36, 0x14, 0x22, 0xcc, 0xc1, 0xfd, 0xca, 0x58, 0x48, 0x2c, 0xee, 0xff, 0xd5, 0x4d, 0x88, 0xaa, + 0xba, 0x76, 0x49, 0xd7, 0xc2, 0xe5, 0x43, 0x5a, 0x91, 0x67, 0xfe, 0x6e, 0x12, 0xd4, 0xd8, 0xeb, + 0xd8, 0xc0, 0xec, 0x2e, 0x3d, 0x4d, 0xe8, 0x54, 0xfd, 0x2e, 0xe4, 0x9b, 0x52, 0xae, 0xba, 0xc9, + 0x04, 0x2b, 0x13, 0xf8, 0x37, 0x7b, 0x79, 0xdc, 0x36, 0x4d, 0x68, 0xb9, 0x66, 0x9b, 0x62, 0xbe, + 0x02, 0x23, 0x4d, 0x74, 0xe6, 0xb6, 0xfc, 0x81, 0x3c, 0xaf, 0x20, 0xf9, 0xe9, 0xb7, 0x44, 0x36, + 0xc2, 0xa6, 0x63, 0x0d, 0xf2, 0xb4, 0x84, 0xf5, 0x2f, 0xff, 0x3c, 0xa8, 0x51, 0x1a, 0x14, 0x3a, + 0xeb, 0x0f, 0x21, 0x15, 0x08, 0x4f, 0x46, 0xcd, 0xd7, 0xfb, 0x91, 0xbb, 0x16, 0x52, 0x75, 0x2b, + 0x39, 0xd1, 0xad, 0xe4, 0xf2, 0x2b, 0x18, 0x8f, 0x98, 0x07, 0x87, 0x68, 0x7d, 0x99, 0xc7, 0x57, + 0x61, 0xd4, 0x14, 0xfd, 0xa5, 0x5d, 0x3c, 0xec, 0x35, 0x3e, 0x09, 0xad, 0x05, 0x34, 0xe5, 0x26, + 0xe4, 0x64, 0xdd, 0x7e, 0xd3, 0x44, 0x3e, 0x3f, 0x05, 0x13, 0x07, 0xcd, 0xc2, 0x8d, 0x8a, 0x82, + 0x5a, 0x83, 0x94, 0xa4, 0xa0, 0xc5, 0x44, 0x29, 0xb9, 0x94, 0x79, 0xf7, 0x9d, 0xfe, 0xf2, 0xc9, + 0x80, 0x61, 0x48, 0x5e, 0xfe, 0x81, 0x02, 0x85, 0x5d, 0x97, 0x38, 0x3e, 0x8d, 0x3d, 0xda, 0xfa, + 0x26, 0xcc, 0x88, 0x33, 0xec, 0x26, 0x6f, 0x89, 0x3f, 0xd0, 0x1a, 0xc0, 0x1f, 0x4f, 0x71, 0x8c, + 0xcb, 0xc0, 0xfd, 0x2b, 0xc0, 0x07, 0x70, 0x3a, 0x53, 0xfe, 0x65, 0xe0, 0xe5, 0xff, 0x48, 0xc0, + 0xc2, 0x5e, 0xfc, 0x5d, 0xee, 0x1a, 0xb2, 0x9b, 0x88, 0x1c, 0x39, 0xab, 0xae, 0x4b, 0xc5, 0x05, + 0xcd, 0x7b, 0x30, 0x73, 0xc0, 0x0a, 0xd8, 0xd4, 0xdb, 0x3e, 0xc3, 0x30, 0x69, 0x51, 0xe1, 0x4f, + 0xe8, 0x26, 0x65, 0x73, 0x74, 0x56, 0x52, 0x33, 0xa9, 0xfa, 0x02, 0x66, 0xe2, 0xdd, 0xa3, 0x51, + 0x07, 0x2a, 0x78, 0xbb, 0xb7, 0x25, 0xb6, 0x0f, 0x54, 0xa6, 0x71, 0x53, 0xd1, 0x07, 0x1c, 0x51, + 0x1b, 0x55, 0x2b, 0xf0, 0x20, 0x18, 0xe2, 0x25, 0x9f, 0x70, 0x98, 0xb4, 0x98, 0xe4, 0x03, 0x9d, + 0x93, 0x9d, 0x3a, 0x73, 0x4c, 0x36, 0xdc, 0x13, 0x78, 0xd0, 0x4d, 0x1a, 0x1f, 0xf4, 0xd0, 0x8d, + 0x07, 0x3d, 0xdf, 0xf9, 0x21, 0x48, 0x6c, 0xe8, 0xe5, 0x3f, 0x55, 0x40, 0x0d, 0x64, 0x2e, 0x34, + 0xb0, 0xeb, 0x8a, 0x37, 0x2d, 0x9d, 0xb7, 0xcb, 0xe2, 0x46, 0x2a, 0x4f, 0xdb, 0x6f, 0x96, 0x7f, + 0x01, 0x26, 0xc5, 0x1b, 0x45, 0x01, 0x11, 0x3c, 0xc2, 0x96, 0x32, 0xee, 0xf1, 0x76, 0xf9, 0x8b, + 0x6c, 0x6c, 0x7f, 0xf8, 0x8f, 0x8b, 0x4b, 0x47, 0xc4, 0x6f, 0xb4, 0x0e, 0x96, 0x0d, 0xd7, 0x5e, + 0x91, 0x5f, 0xf3, 0x88, 0xff, 0xde, 0xa1, 0xe6, 0xf1, 0x0a, 0xcb, 0x91, 0x29, 0x27, 0xa0, 0x9a, + 0x6a, 0xa3, 0xd3, 0xf6, 0xa1, 0xd2, 0xf2, 0x1f, 0x24, 0x60, 0xf6, 0x52, 0xfb, 0xe1, 0xa6, 0xf3, + 0x01, 0xcc, 0x86, 0x03, 0x0b, 0x5e, 0x83, 0x87, 0xcf, 0x38, 0xc5, 0x7c, 0x66, 0x82, 0x0e, 0xc1, + 0x43, 0xf0, 0xe0, 0xc5, 0xe6, 0x6b, 0x90, 0x8d, 0x5d, 0x1c, 0x89, 0x09, 0xa5, 0xb5, 0x4c, 0x74, + 0x73, 0x44, 0xd5, 0x16, 0xcc, 0xb6, 0xbf, 0x3d, 0xd7, 0xb9, 0x82, 0xc5, 0x26, 0x21, 0xc9, 0xdd, + 0xc9, 0x07, 0xbd, 0xf4, 0xd5, 0xdb, 0xf0, 0xb5, 0xe9, 0xb6, 0x07, 0xeb, 0xd1, 0x82, 0xf8, 0x12, + 0xcc, 0x98, 0x84, 0xbe, 0x6c, 0x21, 0x8b, 0x1c, 0x12, 0x6c, 0xc6, 0xed, 0x6c, 0x88, 0x0f, 0x72, + 0x2a, 0xde, 0x1c, 0x9a, 0x58, 0xf9, 0xcf, 0x12, 0x30, 0xb1, 0x81, 0x71, 0x95, 0x50, 0x71, 0x76, + 0x4f, 0xe4, 0x86, 0xa4, 0x0e, 0x13, 0xc2, 0x7b, 0x98, 0xb2, 0x45, 0x5c, 0x34, 0x0d, 0x72, 0xe1, + 0xcb, 0xe9, 0x03, 0x60, 0x7e, 0xcd, 0x54, 0x87, 0x09, 0xff, 0x12, 0xd0, 0x41, 0xd2, 0x14, 0xbf, + 0x0b, 0x74, 0x15, 0x72, 0xf2, 0xb3, 0x02, 0x64, 0xf3, 0x93, 0x8a, 0x64, 0x3f, 0xcf, 0x62, 0xb3, + 0x82, 0xa6, 0xc2, 0x49, 0x58, 0xf8, 0x3e, 0x71, 0xad, 0x96, 0x3d, 0x50, 0x10, 0x96, 0x24, 0xe5, + 0x5f, 0x6d, 0x17, 0x61, 0xdd, 0x68, 0x60, 0xb3, 0x65, 0xf1, 0x87, 0xa7, 0x07, 0x2d, 0x83, 0x69, + 0x21, 0x3a, 0xdc, 0x1a, 0xd2, 0x32, 0xa2, 0x4e, 0x9c, 0xbd, 0xbc, 0x01, 0x63, 0xb2, 0x4b, 0xf8, + 0x5d, 0x82, 0x78, 0xe2, 0x91, 0x17, 0xd5, 0xe1, 0x87, 0x08, 0x9d, 0x86, 0x97, 0xec, 0x36, 0xbc, + 0x6d, 0x00, 0x9f, 0xc8, 0xdd, 0x68, 0xe0, 0x19, 0x56, 0x7a, 0x59, 0xda, 0x25, 0x6a, 0xd7, 0xd2, + 0xbe, 0xfc, 0x45, 0x7b, 0x59, 0xd4, 0x70, 0x2f, 0x8b, 0xda, 0x02, 0xb5, 0x03, 0x79, 0x6f, 0x6f, + 0x53, 0x55, 0x61, 0xc8, 0x0f, 0x42, 0xcf, 0x90, 0xc6, 0x7f, 0xb3, 0x60, 0xec, 0xfb, 0x56, 0xd7, + 0xf3, 0x96, 0xac, 0xef, 0x5b, 0xd1, 0xf5, 0xf6, 0xef, 0x28, 0x90, 0xfd, 0x98, 0x0b, 0x5a, 0xc3, + 0x86, 0xeb, 0x99, 0xfc, 0x7a, 0x8e, 0x1b, 0x91, 0xd4, 0x98, 0x32, 0xc8, 0xf5, 0x1c, 0x23, 0x14, + 0x68, 0x0c, 0xc7, 0x8f, 0xe3, 0x0c, 0x72, 0xd2, 0xed, 0x47, 0x38, 0xe5, 0xdf, 0x50, 0x20, 0x5f, + 0x11, 0x91, 0x59, 0x3a, 0x20, 0xb5, 0x08, 0xa3, 0x32, 0x56, 0xcb, 0x90, 0x1f, 0x14, 0x55, 0x0c, + 0xa3, 0x3f, 0x41, 0x67, 0x18, 0x60, 0x97, 0x7f, 0x49, 0x81, 0x2c, 0x4f, 0x89, 0x85, 0xcc, 0x68, + 0xef, 0xdd, 0xdc, 0x73, 0x98, 0xb4, 0x90, 0x8f, 0xa9, 0xaf, 0x33, 0xe7, 0xc2, 0x53, 0x46, 0x37, + 0x1a, 0xe1, 0x1b, 0xd7, 0x79, 0x2b, 0xc9, 0x44, 0x53, 0x05, 0x48, 0x9c, 0x6f, 0xf9, 0x4b, 0x90, + 0x8b, 0x12, 0x97, 0x5a, 0x95, 0xaa, 0x8f, 0x20, 0xdf, 0x96, 0x80, 0x89, 0x78, 0x9d, 0xd5, 0x72, + 0xf1, 0x0c, 0x8c, 0x96, 0x7f, 0x5f, 0x81, 0x4c, 0x0c, 0x48, 0xbd, 0x0f, 0xe9, 0xce, 0xa0, 0x13, + 0x55, 0xdc, 0x66, 0xab, 0x18, 0xdf, 0xa6, 0x26, 0x6f, 0xb0, 0x4d, 0x2d, 0xdb, 0x30, 0x2c, 0x3e, + 0x64, 0x79, 0x02, 0x4a, 0x73, 0x10, 0x63, 0x54, 0x9a, 0x8c, 0xe4, 0xe5, 0x20, 0x63, 0x56, 0x5e, + 0x96, 0x7f, 0x4b, 0x81, 0xc5, 0x4a, 0x70, 0x22, 0x1c, 0x89, 0xb6, 0x6d, 0x85, 0xf4, 0x75, 0xa3, + 0xba, 0x03, 0x79, 0x69, 0x11, 0xc2, 0xfe, 0x03, 0x75, 0xf7, 0x71, 0xbb, 0x2f, 0x99, 0xe5, 0xec, + 0x58, 0x89, 0x96, 0xbf, 0xa3, 0xc0, 0xfd, 0x70, 0x64, 0x95, 0x4b, 0x86, 0x75, 0xf5, 0xaa, 0xb8, + 0xf3, 0xb1, 0x50, 0xc8, 0xc6, 0x9b, 0x7b, 0x9b, 0xff, 0x46, 0xe8, 0xfc, 0x45, 0xb6, 0xdf, 0x93, + 0x6b, 0x7c, 0x46, 0x32, 0x95, 0x0a, 0xe2, 0x40, 0x85, 0xe5, 0xfd, 0x8e, 0x6b, 0x57, 0xb1, 0x41, + 0x6c, 0x64, 0xd1, 0x2b, 0xf2, 0xfe, 0x39, 0x96, 0xf7, 0x8b, 0x1e, 0x9c, 0xe1, 0x90, 0x16, 0x96, + 0xcb, 0x18, 0xd4, 0xa7, 0x1e, 0x72, 0xfc, 0x4a, 0xcb, 0x6f, 0xb8, 0x1e, 0xf9, 0x44, 0x38, 0xff, + 0x22, 0x8c, 0x1e, 0xb1, 0x5a, 0xf9, 0x4d, 0x71, 0x5a, 0x0b, 0x8a, 0xea, 0x7b, 0x30, 0x22, 0x83, + 0x5e, 0xa2, 0x9f, 0xa0, 0x27, 0x3b, 0x97, 0xbf, 0x0d, 0x99, 0x0a, 0x9f, 0x1f, 0x67, 0x16, 0xe1, + 0x7b, 0xed, 0xf8, 0xde, 0x4d, 0xf1, 0xbf, 0xab, 0x40, 0x7e, 0xfd, 0xf0, 0x10, 0xf7, 0xc5, 0xa3, + 0x06, 0xe3, 0x0e, 0xf6, 0x75, 0x51, 0x94, 0x9f, 0x08, 0xf6, 0xc7, 0x6e, 0xcc, 0xc1, 0xfe, 0x53, + 0x41, 0xc6, 0x3f, 0x06, 0x54, 0x67, 0x21, 0x45, 0xa8, 0x7e, 0x82, 0x2c, 0x79, 0xe4, 0x93, 0xd2, + 0x46, 0x09, 0xfd, 0x98, 0x15, 0x1f, 0xfb, 0x70, 0xbf, 0xd7, 0x47, 0x6a, 0x2a, 0xc0, 0xc8, 0xb6, + 0x7b, 0xe0, 0x9a, 0x67, 0x85, 0x7b, 0x6a, 0x19, 0x16, 0x56, 0xf1, 0x11, 0x71, 0x56, 0x2d, 0xd7, + 0x38, 0xc6, 0x5e, 0xdd, 0x46, 0x9e, 0xbf, 0xe6, 0x3a, 0xbe, 0x87, 0x0c, 0x9f, 0xee, 0x38, 0xd6, + 0x59, 0x41, 0x51, 0xa7, 0x41, 0xbd, 0xa4, 0x3e, 0xa1, 0x66, 0x21, 0xb5, 0x7e, 0x82, 0xbd, 0x33, + 0xd7, 0xc1, 0x85, 0xe4, 0xe3, 0xbd, 0xc0, 0x0e, 0xc5, 0x83, 0x18, 0x75, 0x0c, 0x32, 0xfb, 0x0e, + 0x6d, 0x62, 0x83, 0xc7, 0xcc, 0xc2, 0x3d, 0xc6, 0x56, 0x68, 0xa2, 0xa0, 0xb0, 0xdf, 0xbb, 0xa8, + 0x45, 0xb1, 0x59, 0x48, 0xa8, 0x79, 0x80, 0x2a, 0xb6, 0x5d, 0x8b, 0xd0, 0x06, 0x36, 0x0b, 0x49, + 0x35, 0x03, 0xa3, 0xfc, 0x21, 0x29, 0x36, 0x0b, 0x43, 0x8f, 0xff, 0x24, 0x21, 0xdf, 0x4f, 0xf0, + 0x43, 0xdf, 0x12, 0x64, 0xf6, 0xb7, 0xeb, 0xbb, 0xeb, 0x6b, 0xb5, 0x8d, 0xda, 0x7a, 0xb5, 0x70, + 0x6f, 0x6e, 0xec, 0xfc, 0xa2, 0x14, 0xaf, 0x62, 0xfb, 0xf9, 0xd5, 0xfd, 0xe7, 0x05, 0x65, 0x6e, + 0xf4, 0xfc, 0xa2, 0xc4, 0x7e, 0xb2, 0x68, 0x5c, 0x5f, 0xdf, 0xdc, 0x2c, 0x24, 0xe6, 0x52, 0xe7, + 0x17, 0x25, 0xfe, 0x9b, 0xd9, 0x65, 0x7d, 0x6f, 0x67, 0x57, 0x67, 0x5d, 0x93, 0x73, 0xd9, 0xf3, + 0x8b, 0x52, 0x58, 0x66, 0xee, 0x97, 0xff, 0xe6, 0x44, 0x43, 0x73, 0xb9, 0xf3, 0x8b, 0x52, 0x54, + 0xc1, 0x28, 0xf7, 0x2a, 0x1f, 0xad, 0x73, 0xca, 0x61, 0x41, 0x19, 0x94, 0x19, 0x25, 0xff, 0xcd, + 0x29, 0x47, 0x04, 0x65, 0x58, 0xa1, 0x4e, 0xc3, 0xc8, 0xea, 0xfe, 0x73, 0x7d, 0x77, 0xa7, 0x30, + 0x3a, 0x07, 0xe7, 0x17, 0x25, 0x59, 0x62, 0xd6, 0xc2, 0xda, 0x59, 0x43, 0x6a, 0x2e, 0x73, 0x7e, + 0x51, 0x0a, 0x8a, 0xea, 0x02, 0x00, 0xeb, 0x53, 0xd9, 0xdb, 0xd9, 0xaa, 0xad, 0x15, 0xd2, 0x73, + 0xf9, 0xf3, 0x8b, 0x52, 0xac, 0x86, 0x49, 0x83, 0x77, 0x95, 0x1d, 0x40, 0x48, 0x23, 0x56, 0xf5, + 0xf8, 0x8f, 0x14, 0xc8, 0xad, 0x07, 0x67, 0x49, 0x5c, 0x82, 0xf7, 0xa1, 0x18, 0xd3, 0x4a, 0x5b, + 0x9b, 0x50, 0x91, 0xd0, 0x61, 0x41, 0x51, 0x73, 0x90, 0xe6, 0x77, 0x32, 0x1b, 0xc4, 0xb2, 0x0a, + 0x09, 0x75, 0x0e, 0xa6, 0x79, 0x71, 0x0b, 0xf9, 0x46, 0x43, 0x13, 0xdf, 0x8e, 0x72, 0xc5, 0x14, + 0x92, 0xcc, 0x40, 0xa2, 0xb6, 0x6d, 0xfc, 0x4a, 0xd4, 0x0f, 0xa9, 0x53, 0x30, 0x2e, 0x3f, 0x5d, + 0x93, 0xdf, 0x83, 0x12, 0xd7, 0x29, 0x0c, 0x33, 0x28, 0xf1, 0x52, 0xb8, 0xf3, 0x3d, 0x62, 0x61, + 0xe4, 0xf1, 0x77, 0x02, 0x7d, 0x6f, 0x21, 0x7a, 0xcc, 0x64, 0xb6, 0xbf, 0xbd, 0x5f, 0xe7, 0xaa, + 0xe6, 0x32, 0x13, 0x25, 0xa6, 0xe5, 0xca, 0x76, 0xa8, 0xe5, 0xca, 0xf6, 0x73, 0x26, 0x45, 0x6d, + 0xfd, 0xe9, 0xfe, 0x66, 0x45, 0x2b, 0x24, 0x84, 0x14, 0x65, 0x91, 0x49, 0x69, 0x6d, 0x67, 0xbb, + 0x5a, 0xdb, 0xab, 0xed, 0x6c, 0x57, 0x98, 0x46, 0xb9, 0x94, 0x62, 0x55, 0xea, 0x32, 0xcc, 0x54, + 0x6b, 0xda, 0xfa, 0x1a, 0x2b, 0x32, 0x45, 0xea, 0x3b, 0x9a, 0xfe, 0xac, 0xf6, 0xf4, 0xd9, 0xba, + 0x56, 0x48, 0xcd, 0x8d, 0x9f, 0x5f, 0x94, 0x72, 0x6d, 0x95, 0xed, 0xfd, 0xb9, 0xb8, 0x77, 0x34, + 0x7d, 0x73, 0xe7, 0x67, 0xd7, 0xb5, 0x42, 0x41, 0xf4, 0x6f, 0xab, 0x54, 0xe7, 0x21, 0xb3, 0xf7, + 0x7c, 0x77, 0x5d, 0xdf, 0xaa, 0x68, 0x1f, 0xad, 0xef, 0x15, 0x4a, 0x62, 0x2a, 0xa2, 0xa4, 0xce, + 0x02, 0xf0, 0xc6, 0xcd, 0xda, 0x56, 0x6d, 0xaf, 0xf0, 0xe1, 0x5c, 0xfa, 0xfc, 0xa2, 0x34, 0xcc, + 0x0b, 0xab, 0x8d, 0xef, 0x7f, 0xb6, 0xa0, 0xfc, 0xf0, 0xb3, 0x05, 0xe5, 0x9f, 0x3e, 0x5b, 0x50, + 0xbe, 0xfb, 0xf9, 0xc2, 0xbd, 0x1f, 0x7e, 0xbe, 0x70, 0xef, 0xef, 0x3e, 0x5f, 0xb8, 0xf7, 0x8d, + 0xed, 0x58, 0x9a, 0x54, 0x0b, 0x1c, 0xf8, 0x26, 0x3a, 0xa0, 0x2b, 0xa1, 0x3b, 0x7f, 0xc7, 0x70, + 0x3d, 0x1c, 0x2f, 0x36, 0x10, 0x71, 0x56, 0x6c, 0x97, 0xa5, 0xeb, 0x34, 0xfa, 0x4b, 0x14, 0x3c, + 0xa5, 0x3a, 0x18, 0xe1, 0xdf, 0x3f, 0xfe, 0xbf, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x35, 0xcc, + 0x95, 0x72, 0xac, 0x42, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -3489,6 +3719,20 @@ func (this *Params) Equal(that interface{}) bool { if this.PostOnlyModeHeightThreshold != that1.PostOnlyModeHeightThreshold { return false } + if this.MarginDecreasePriceTimestampThresholdSeconds != that1.MarginDecreasePriceTimestampThresholdSeconds { + return false + } + if len(this.ExchangeAdmins) != len(that1.ExchangeAdmins) { + return false + } + for i := range this.ExchangeAdmins { + if this.ExchangeAdmins[i] != that1.ExchangeAdmins[i] { + return false + } + } + if !this.InjAuctionMaxCap.Equal(that1.InjAuctionMaxCap) { + return false + } return true } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -3511,6 +3755,36 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.InjAuctionMaxCap.Size() + i -= size + if _, err := m.InjAuctionMaxCap.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xe2 + if len(m.ExchangeAdmins) > 0 { + for iNdEx := len(m.ExchangeAdmins) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ExchangeAdmins[iNdEx]) + copy(dAtA[i:], m.ExchangeAdmins[iNdEx]) + i = encodeVarintExchange(dAtA, i, uint64(len(m.ExchangeAdmins[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xda + } + } + if m.MarginDecreasePriceTimestampThresholdSeconds != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.MarginDecreasePriceTimestampThresholdSeconds)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xd0 + } if m.PostOnlyModeHeightThreshold != 0 { i = encodeVarintExchange(dAtA, i, uint64(m.PostOnlyModeHeightThreshold)) i-- @@ -3814,6 +4088,34 @@ func (m *DerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AdminPermissions != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } + if len(m.Admin) > 0 { + i -= len(m.Admin) + copy(dAtA[i:], m.Admin) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Admin))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a { size := m.MinQuantityTickSize.Size() i -= size @@ -3969,6 +4271,25 @@ func (m *BinaryOptionsMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AdminPermissions != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x98 + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 if m.SettlementPrice != nil { { size := m.SettlementPrice.Size() @@ -4420,6 +4741,28 @@ func (m *SpotMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.AdminPermissions != 0 { + i = encodeVarintExchange(dAtA, i, uint64(m.AdminPermissions)) + i-- + dAtA[i] = 0x68 + } + if len(m.Admin) > 0 { + i -= len(m.Admin) + copy(dAtA[i:], m.Admin) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Admin))) + i-- + dAtA[i] = 0x62 + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a { size := m.MinQuantityTickSize.Size() i -= size @@ -4982,6 +5325,13 @@ func (m *SubaccountOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x22 + } if m.IsReduceOnly { i-- if m.IsReduceOnly { @@ -5488,6 +5838,16 @@ func (m *DerivativeTradeLog) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.Pnl.Size() + i -= size + if _, err := m.Pnl.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 if len(m.Cid) > 0 { i -= len(m.Cid) copy(dAtA[i:], m.Cid) @@ -6469,44 +6829,174 @@ func (m *DenomDecimals) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func encodeVarintExchange(dAtA []byte, offset int, v uint64) int { - offset -= sovExchange(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *GrantAuthorization) 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 *Params) Size() (n int) { - if m == nil { - return 0 - } + +func (m *GrantAuthorization) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GrantAuthorization) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = m.SpotMarketInstantListingFee.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DerivativeMarketInstantListingFee.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultSpotMakerFeeRate.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultSpotTakerFeeRate.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultDerivativeMakerFeeRate.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultDerivativeTakerFeeRate.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultInitialMarginRatio.Size() - n += 1 + l + sovExchange(uint64(l)) - l = m.DefaultMaintenanceMarginRatio.Size() - n += 1 + l + sovExchange(uint64(l)) - if m.DefaultFundingInterval != 0 { - n += 1 + sovExchange(uint64(m.DefaultFundingInterval)) + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) } - if m.FundingMultiple != 0 { - n += 1 + sovExchange(uint64(m.FundingMultiple)) + i-- + dAtA[i] = 0x12 + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ActiveGrant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ActiveGrant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ActiveGrant) 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 = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EffectiveGrant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EffectiveGrant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EffectiveGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsValid { + i-- + if m.IsValid { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + { + size := m.NetGrantedStake.Size() + i -= size + if _, err := m.NetGrantedStake.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintExchange(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintExchange(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintExchange(dAtA []byte, offset int, v uint64) int { + offset -= sovExchange(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.SpotMarketInstantListingFee.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DerivativeMarketInstantListingFee.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultSpotMakerFeeRate.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultSpotTakerFeeRate.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultDerivativeMakerFeeRate.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultDerivativeTakerFeeRate.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultInitialMarginRatio.Size() + n += 1 + l + sovExchange(uint64(l)) + l = m.DefaultMaintenanceMarginRatio.Size() + n += 1 + l + sovExchange(uint64(l)) + if m.DefaultFundingInterval != 0 { + n += 1 + sovExchange(uint64(m.DefaultFundingInterval)) + } + if m.FundingMultiple != 0 { + n += 1 + sovExchange(uint64(m.FundingMultiple)) } l = m.RelayerFeeShareRate.Size() n += 1 + l + sovExchange(uint64(l)) @@ -6543,6 +7033,17 @@ func (m *Params) Size() (n int) { if m.PostOnlyModeHeightThreshold != 0 { n += 2 + sovExchange(uint64(m.PostOnlyModeHeightThreshold)) } + if m.MarginDecreasePriceTimestampThresholdSeconds != 0 { + n += 2 + sovExchange(uint64(m.MarginDecreasePriceTimestampThresholdSeconds)) + } + if len(m.ExchangeAdmins) > 0 { + for _, s := range m.ExchangeAdmins { + l = len(s) + n += 2 + l + sovExchange(uint64(l)) + } + } + l = m.InjAuctionMaxCap.Size() + n += 2 + l + sovExchange(uint64(l)) return n } @@ -6613,6 +7114,15 @@ func (m *DerivativeMarket) Size() (n int) { n += 1 + l + sovExchange(uint64(l)) l = m.MinQuantityTickSize.Size() n += 2 + l + sovExchange(uint64(l)) + l = m.MinNotional.Size() + n += 2 + l + sovExchange(uint64(l)) + l = len(m.Admin) + if l > 0 { + n += 2 + l + sovExchange(uint64(l)) + } + if m.AdminPermissions != 0 { + n += 2 + sovExchange(uint64(m.AdminPermissions)) + } return n } @@ -6675,6 +7185,11 @@ func (m *BinaryOptionsMarket) Size() (n int) { l = m.SettlementPrice.Size() n += 2 + l + sovExchange(uint64(l)) } + l = m.MinNotional.Size() + n += 2 + l + sovExchange(uint64(l)) + if m.AdminPermissions != 0 { + n += 2 + sovExchange(uint64(m.AdminPermissions)) + } return n } @@ -6823,6 +7338,15 @@ func (m *SpotMarket) Size() (n int) { n += 1 + l + sovExchange(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovExchange(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovExchange(uint64(l)) + l = len(m.Admin) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } + if m.AdminPermissions != 0 { + n += 1 + sovExchange(uint64(m.AdminPermissions)) + } return n } @@ -7008,6 +7532,10 @@ func (m *SubaccountOrder) Size() (n int) { if m.IsReduceOnly { n += 2 } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } return n } @@ -7195,6 +7723,8 @@ func (m *DerivativeTradeLog) Size() (n int) { if l > 0 { n += 1 + l + sovExchange(uint64(l)) } + l = m.Pnl.Size() + n += 1 + l + sovExchange(uint64(l)) return n } @@ -7572,6 +8102,54 @@ func (m *DenomDecimals) Size() (n int) { return n } +func (m *GrantAuthorization) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovExchange(uint64(l)) + return n +} + +func (m *ActiveGrant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovExchange(uint64(l)) + return n +} + +func (m *EffectiveGrant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovExchange(uint64(l)) + } + l = m.NetGrantedStake.Size() + n += 1 + l + sovExchange(uint64(l)) + if m.IsValid { + n += 2 + } + return n +} + func sovExchange(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -8350,6 +8928,91 @@ func (m *Params) Unmarshal(dAtA []byte) error { break } } + case 26: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MarginDecreasePriceTimestampThresholdSeconds", wireType) + } + m.MarginDecreasePriceTimestampThresholdSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MarginDecreasePriceTimestampThresholdSeconds |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 27: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExchangeAdmins", 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.ExchangeAdmins = append(m.ExchangeAdmins, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 28: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InjAuctionMaxCap", 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.InjAuctionMaxCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -8991,9 +9654,94 @@ func (m *DerivativeMarket) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipExchange(dAtA[iNdEx:]) + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", 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.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admin", 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.Admin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminPermissions", wireType) + } + m.AdminPermissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AdminPermissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) if err != nil { return err } @@ -9528,12 +10276,65 @@ func (m *BinaryOptionsMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.SettlementPrice = &v if err := m.SettlementPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", 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.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 19: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminPermissions", wireType) + } + m.AdminPermissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AdminPermissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -10312,7 +11113,7 @@ func (m *MidPriceAndTOB) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MidPrice = &v if err := m.MidPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -10348,7 +11149,7 @@ func (m *MidPriceAndTOB) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestBuyPrice = &v if err := m.BestBuyPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -10384,7 +11185,7 @@ func (m *MidPriceAndTOB) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestSellPrice = &v if err := m.BestSellPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -10757,6 +11558,91 @@ func (m *SpotMarket) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", 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.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admin", 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.Admin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminPermissions", wireType) + } + m.AdminPermissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AdminPermissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -11322,7 +12208,7 @@ func (m *SpotOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11494,7 +12380,7 @@ func (m *SpotLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11734,7 +12620,7 @@ func (m *SpotMarketOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11938,7 +12824,7 @@ func (m *DerivativeOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -12276,6 +13162,38 @@ func (m *SubaccountOrder) Unmarshal(dAtA []byte) error { } } m.IsReduceOnly = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipExchange(dAtA[iNdEx:]) @@ -12596,7 +13514,7 @@ func (m *DerivativeLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -12836,7 +13754,7 @@ func (m *DerivativeMarketOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TriggerPrice = &v if err := m.TriggerPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -13930,17 +14848,51 @@ func (m *DerivativeTradeLog) Unmarshal(dAtA []byte) error { } m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipExchange(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthExchange - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pnl", 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.Pnl.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } iNdEx += skippy } @@ -16474,6 +17426,374 @@ func (m *DenomDecimals) Unmarshal(dAtA []byte) error { } return nil } +func (m *GrantAuthorization) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GrantAuthorization: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GrantAuthorization: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = 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 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.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ActiveGrant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ActiveGrant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ActiveGrant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = 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 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.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EffectiveGrant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: EffectiveGrant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EffectiveGrant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetGrantedStake", 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.NetGrantedStake.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsValid", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowExchange + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsValid = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipExchange(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthExchange + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipExchange(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/expected_keepers.go b/chain/exchange/types/expected_keepers.go index 4a565c43..1078c62b 100644 --- a/chain/exchange/types/expected_keepers.go +++ b/chain/exchange/types/expected_keepers.go @@ -1,6 +1,7 @@ package types import ( + "context" "time" sdkmath "cosmossdk.io/math" @@ -27,13 +28,14 @@ type BankKeeper interface { // OracleKeeper defines the expected oracle keeper methods. type OracleKeeper interface { - GetPrice(ctx sdk.Context, oracletype oracletypes.OracleType, base string, quote string) *sdk.Dec - GetCumulativePrice(ctx sdk.Context, oracleType oracletypes.OracleType, base string, quote string) *sdk.Dec + GetPrice(ctx sdk.Context, oracletype oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec + GetPricePairState(ctx sdk.Context, oracletype oracletypes.OracleType, base, quote string, scalingOptions *oracletypes.ScalingOptions) *oracletypes.PricePairState + GetCumulativePrice(ctx sdk.Context, oracleType oracletypes.OracleType, base string, quote string) *sdkmath.LegacyDec GetHistoricalPriceRecords(ctx sdk.Context, oracleType oracletypes.OracleType, symbol string, from int64) (entry *oracletypes.PriceRecords, omitted bool) GetMixedHistoricalPriceRecords(ctx sdk.Context, baseOracleType, quoteOracleType oracletypes.OracleType, baseSymbol, quoteSymbol string, from int64) (mixed *oracletypes.PriceRecords, ok bool) - GetStandardDeviationForPriceRecords(priceRecords []*oracletypes.PriceRecord) *sdk.Dec + GetStandardDeviationForPriceRecords(priceRecords []*oracletypes.PriceRecord) *sdkmath.LegacyDec GetProviderInfo(ctx sdk.Context, provider string) *oracletypes.ProviderInfo - GetProviderPrice(ctx sdk.Context, provider, symbol string) *sdk.Dec + GetProviderPrice(ctx sdk.Context, provider, symbol string) *sdkmath.LegacyDec GetProviderPriceState(ctx sdk.Context, provider, symbol string) *oracletypes.ProviderPriceState } @@ -52,8 +54,8 @@ type InsuranceKeeper interface { } type GovKeeper interface { - IterateActiveProposalsQueue(ctx sdk.Context, endTime time.Time, cb func(proposal v1.Proposal) (stop bool)) - GetParams(ctx sdk.Context) v1.Params + IterateActiveProposalsQueue(ctx context.Context, endTime time.Time, cb func(proposal v1.Proposal) (stop bool)) + GetParams(ctx context.Context) v1.Params } type DistributionKeeper interface { @@ -63,8 +65,8 @@ type DistributionKeeper interface { } type StakingKeeper interface { - GetDelegatorDelegations(ctx sdk.Context, delegator sdk.AccAddress, maxRetrieve uint16) (delegations []stakingtypes.Delegation) - Validator(sdk.Context, sdk.ValAddress) stakingtypes.ValidatorI + GetDelegatorDelegations(ctx context.Context, delegator sdk.AccAddress, maxRetrieve uint16) (delegations []stakingtypes.Delegation, err error) + Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) // get a particular validator by operator address } type WasmViewKeeper interface { diff --git a/chain/exchange/types/fee_discounts.go b/chain/exchange/types/fee_discounts.go index c9f16850..3e0bdec4 100644 --- a/chain/exchange/types/fee_discounts.go +++ b/chain/exchange/types/fee_discounts.go @@ -1,18 +1,17 @@ package types import ( - sdkmath "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) type FeeDiscountRates struct { - MakerDiscountRate sdk.Dec - TakerDiscountRate sdk.Dec + MakerDiscountRate math.LegacyDec + TakerDiscountRate math.LegacyDec } func (s *FeeDiscountSchedule) CalculateFeeDiscountTier( - stakedAmount sdkmath.Int, - tradingVolume sdk.Dec, + stakedAmount math.Int, + tradingVolume math.LegacyDec, ) ( feeDiscountRates *FeeDiscountRates, tierLevel uint64, @@ -31,8 +30,8 @@ func (s *FeeDiscountSchedule) CalculateFeeDiscountTier( if tierLevel == 0 { feeDiscountRates = &FeeDiscountRates{ - MakerDiscountRate: sdk.ZeroDec(), - TakerDiscountRate: sdk.ZeroDec(), + MakerDiscountRate: math.LegacyZeroDec(), + TakerDiscountRate: math.LegacyZeroDec(), } } else { feeDiscountRates = &FeeDiscountRates{ @@ -45,8 +44,8 @@ func (s *FeeDiscountSchedule) CalculateFeeDiscountTier( } func (s *FeeDiscountSchedule) TierOneRequirements() ( - minStakedAmount sdkmath.Int, - minTradingFeePaid sdk.Dec, + minStakedAmount math.Int, + minTradingFeePaid math.LegacyDec, ) { // s.TierInfos[0] is tier one, since tier 0 is implicit return s.TierInfos[0].StakedAmount, s.TierInfos[0].Volume @@ -61,8 +60,8 @@ func (s *FeeDiscountSchedule) GetFeeDiscountRatesMap() FeeDiscountRatesMap { feeDiscountRatesMap := make(FeeDiscountRatesMap, len(s.TierInfos)) feeDiscountRatesMap[0] = &FeeDiscountRates{ - MakerDiscountRate: sdk.ZeroDec(), - TakerDiscountRate: sdk.ZeroDec(), + MakerDiscountRate: math.LegacyZeroDec(), + TakerDiscountRate: math.LegacyZeroDec(), } for idx, tierInfo := range s.TierInfos { diff --git a/chain/exchange/types/fee_validation.go b/chain/exchange/types/fee_validation.go index 9284639c..96f301af 100644 --- a/chain/exchange/types/fee_validation.go +++ b/chain/exchange/types/fee_validation.go @@ -4,33 +4,37 @@ import ( "fmt" "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) -func ValidateMakerWithTakerFee(makerFeeRate, takerFeeRate, relayerFeeShareRate, minimalProtocolFeeRate sdk.Dec) error { +func ValidateMakerWithTakerFee(makerFeeRate, takerFeeRate, relayerFeeShareRate, minimalProtocolFeeRate math.LegacyDec) error { if makerFeeRate.GT(takerFeeRate) { return ErrFeeRatesRelation } if !makerFeeRate.IsNegative() { - return nil - } - - // if makerFeeRate is negative, must hold: takerFeeRate * (1 - relayerFeeShareRate) + makerFeeRate > minimalProtocolFeeRate - if takerFeeRate.Mul(sdk.OneDec().Sub(relayerFeeShareRate)).Add(makerFeeRate).LT(minimalProtocolFeeRate) { - errMsg := fmt.Sprintf("if makerFeeRate (%v) is negative, (takerFeeRate = %v) * (1 - relayerFeeShareRate = %v) + makerFeeRate < %v", makerFeeRate.String(), takerFeeRate.String(), relayerFeeShareRate.String(), minimalProtocolFeeRate.String()) - return errors.Wrap(ErrFeeRatesRelation, errMsg) + // if makerFeeRate is positive, must hold: (takerFeeRate + makerFeeRate) * (1 - relayerFeeShareRate) > minimalProtocolFeeRate + if takerFeeRate.Add(makerFeeRate).Mul(math.LegacyOneDec().Sub(relayerFeeShareRate)).LT(minimalProtocolFeeRate) { + errMsg := fmt.Sprintf("if makerFeeRate (%v) is positive, (takerFeeRate = %v + makerFeeRate = %v) * (1 - relayerFeeShareRate = %v) > %v", makerFeeRate.String(), takerFeeRate.String(), makerFeeRate.String(), relayerFeeShareRate.String(), minimalProtocolFeeRate.String()) + return errors.Wrap(ErrFeeRatesRelation, errMsg) + } + } else { + // if makerFeeRate is negative, must hold: takerFeeRate * (1 - relayerFeeShareRate) + makerFeeRate > minimalProtocolFeeRate + if takerFeeRate.Mul(math.LegacyOneDec().Sub(relayerFeeShareRate)).Add(makerFeeRate).LT(minimalProtocolFeeRate) { + errMsg := fmt.Sprintf("if makerFeeRate (%v) is negative, (takerFeeRate = %v) * (1 - relayerFeeShareRate = %v) + makerFeeRate < %v", makerFeeRate.String(), takerFeeRate.String(), relayerFeeShareRate.String(), minimalProtocolFeeRate.String()) + return errors.Wrap(ErrFeeRatesRelation, errMsg) + } } return nil } -func ValidateMakerWithTakerFeeAndDiscounts(makerFeeRate, takerFeeRate, relayerFeeShareRate, minimalProtocolFeeRate sdk.Dec, discountSchedule *FeeDiscountSchedule) error { +func ValidateMakerWithTakerFeeAndDiscounts(makerFeeRate, takerFeeRate, relayerFeeShareRate, minimalProtocolFeeRate math.LegacyDec, discountSchedule *FeeDiscountSchedule) error { smallestTakerFeeRate := takerFeeRate if makerFeeRate.IsNegative() && discountSchedule != nil && len(discountSchedule.TierInfos) > 0 { maxTakerDiscount := discountSchedule.TierInfos[len(discountSchedule.TierInfos)-1].TakerDiscountRate - smallestTakerFeeRate = smallestTakerFeeRate.Mul(sdk.OneDec().Sub(maxTakerDiscount)) + smallestTakerFeeRate = smallestTakerFeeRate.Mul(math.LegacyOneDec().Sub(maxTakerDiscount)) } return ValidateMakerWithTakerFee(makerFeeRate, smallestTakerFeeRate, relayerFeeShareRate, minimalProtocolFeeRate) diff --git a/chain/exchange/types/genesis.pb.go b/chain/exchange/types/genesis.pb.go index 92998d1d..bfb2e0ca 100644 --- a/chain/exchange/types/genesis.pb.go +++ b/chain/exchange/types/genesis.pb.go @@ -4,8 +4,8 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - 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" @@ -101,6 +101,8 @@ type GenesisState struct { OrderbookSequences []*OrderbookSequence `protobuf:"bytes,32,rep,name=orderbook_sequences,json=orderbookSequences,proto3" json:"orderbook_sequences,omitempty"` SubaccountVolumes []*AggregateSubaccountVolumeRecord `protobuf:"bytes,33,rep,name=subaccount_volumes,json=subaccountVolumes,proto3" json:"subaccount_volumes,omitempty"` MarketVolumes []*MarketVolume `protobuf:"bytes,34,rep,name=market_volumes,json=marketVolumes,proto3" json:"market_volumes,omitempty"` + GrantAuthorizations []*FullGrantAuthorizations `protobuf:"bytes,35,rep,name=grant_authorizations,json=grantAuthorizations,proto3" json:"grant_authorizations,omitempty"` + ActiveGrants []*FullActiveGrant `protobuf:"bytes,36,rep,name=active_grants,json=activeGrants,proto3" json:"active_grants,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -374,6 +376,20 @@ func (m *GenesisState) GetMarketVolumes() []*MarketVolume { return nil } +func (m *GenesisState) GetGrantAuthorizations() []*FullGrantAuthorizations { + if m != nil { + return m.GrantAuthorizations + } + return nil +} + +func (m *GenesisState) GetActiveGrants() []*FullActiveGrant { + if m != nil { + return m.ActiveGrants + } + return nil +} + type OrderbookSequence struct { Sequence uint64 `protobuf:"varint,1,opt,name=sequence,proto3" json:"sequence,omitempty"` MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` @@ -531,8 +547,8 @@ func (m *FeeDiscountBucketVolumeAccounts) GetAccountVolume() []*AccountVolume { } type AccountVolume struct { - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Volume github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=volume,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"volume"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Volume cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=volume,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"volume"` } func (m *AccountVolume) Reset() { *m = AccountVolume{} } @@ -576,8 +592,8 @@ func (m *AccountVolume) GetAccount() string { } type TradingRewardCampaignAccountPoints struct { - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` - Points github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=points,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"points"` + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` + Points cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=points,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"points"` } func (m *TradingRewardCampaignAccountPoints) Reset() { *m = TradingRewardCampaignAccountPoints{} } @@ -1018,6 +1034,119 @@ func (m *PerpetualMarketFundingState) GetFunding() *PerpetualMarketFunding { return nil } +type FullGrantAuthorizations struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` + TotalGrantAmount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=total_grant_amount,json=totalGrantAmount,proto3,customtype=cosmossdk.io/math.Int" json:"total_grant_amount"` + LastDelegationsCheckedTime int64 `protobuf:"varint,3,opt,name=last_delegations_checked_time,json=lastDelegationsCheckedTime,proto3" json:"last_delegations_checked_time,omitempty"` + Grants []*GrantAuthorization `protobuf:"bytes,4,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (m *FullGrantAuthorizations) Reset() { *m = FullGrantAuthorizations{} } +func (m *FullGrantAuthorizations) String() string { return proto.CompactTextString(m) } +func (*FullGrantAuthorizations) ProtoMessage() {} +func (*FullGrantAuthorizations) Descriptor() ([]byte, []int) { + return fileDescriptor_c47ec6b98758ed05, []int{15} +} +func (m *FullGrantAuthorizations) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FullGrantAuthorizations) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FullGrantAuthorizations.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FullGrantAuthorizations) XXX_Merge(src proto.Message) { + xxx_messageInfo_FullGrantAuthorizations.Merge(m, src) +} +func (m *FullGrantAuthorizations) XXX_Size() int { + return m.Size() +} +func (m *FullGrantAuthorizations) XXX_DiscardUnknown() { + xxx_messageInfo_FullGrantAuthorizations.DiscardUnknown(m) +} + +var xxx_messageInfo_FullGrantAuthorizations proto.InternalMessageInfo + +func (m *FullGrantAuthorizations) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +func (m *FullGrantAuthorizations) GetLastDelegationsCheckedTime() int64 { + if m != nil { + return m.LastDelegationsCheckedTime + } + return 0 +} + +func (m *FullGrantAuthorizations) GetGrants() []*GrantAuthorization { + if m != nil { + return m.Grants + } + return nil +} + +type FullActiveGrant struct { + Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"` + ActiveGrant *ActiveGrant `protobuf:"bytes,2,opt,name=active_grant,json=activeGrant,proto3" json:"active_grant,omitempty"` +} + +func (m *FullActiveGrant) Reset() { *m = FullActiveGrant{} } +func (m *FullActiveGrant) String() string { return proto.CompactTextString(m) } +func (*FullActiveGrant) ProtoMessage() {} +func (*FullActiveGrant) Descriptor() ([]byte, []int) { + return fileDescriptor_c47ec6b98758ed05, []int{16} +} +func (m *FullActiveGrant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FullActiveGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_FullActiveGrant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *FullActiveGrant) XXX_Merge(src proto.Message) { + xxx_messageInfo_FullActiveGrant.Merge(m, src) +} +func (m *FullActiveGrant) XXX_Size() int { + return m.Size() +} +func (m *FullActiveGrant) XXX_DiscardUnknown() { + xxx_messageInfo_FullActiveGrant.DiscardUnknown(m) +} + +var xxx_messageInfo_FullActiveGrant proto.InternalMessageInfo + +func (m *FullActiveGrant) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +func (m *FullActiveGrant) GetActiveGrant() *ActiveGrant { + if m != nil { + return m.ActiveGrant + } + return nil +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.exchange.v1beta1.GenesisState") proto.RegisterType((*OrderbookSequence)(nil), "injective.exchange.v1beta1.OrderbookSequence") @@ -1034,6 +1163,8 @@ func init() { proto.RegisterType((*SubaccountNonce)(nil), "injective.exchange.v1beta1.SubaccountNonce") proto.RegisterType((*ExpiryFuturesMarketInfoState)(nil), "injective.exchange.v1beta1.ExpiryFuturesMarketInfoState") proto.RegisterType((*PerpetualMarketFundingState)(nil), "injective.exchange.v1beta1.PerpetualMarketFundingState") + proto.RegisterType((*FullGrantAuthorizations)(nil), "injective.exchange.v1beta1.FullGrantAuthorizations") + proto.RegisterType((*FullActiveGrant)(nil), "injective.exchange.v1beta1.FullActiveGrant") } func init() { @@ -1041,123 +1172,135 @@ func init() { } var fileDescriptor_c47ec6b98758ed05 = []byte{ - // 1851 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcb, 0x6f, 0xe3, 0xc6, - 0x19, 0x37, 0xd7, 0x1b, 0x5b, 0xfe, 0xbc, 0xf6, 0xae, 0xc7, 0x8f, 0xa5, 0x1f, 0x91, 0xbc, 0x72, - 0xbb, 0xd0, 0xb6, 0x59, 0x29, 0xbb, 0x69, 0x90, 0x36, 0x7d, 0x65, 0xb5, 0xb6, 0x5a, 0x03, 0x4e, - 0x6c, 0xd0, 0x42, 0x0e, 0xe9, 0x83, 0xa0, 0xc8, 0x91, 0x34, 0x59, 0x92, 0xc3, 0x70, 0x86, 0xce, - 0xfa, 0x16, 0xf4, 0x10, 0xa4, 0xa7, 0xb4, 0x05, 0x0a, 0xf4, 0x18, 0x14, 0x3d, 0xb4, 0x97, 0xfe, - 0x0f, 0xbd, 0xe5, 0x98, 0xde, 0x8a, 0x1e, 0x82, 0x62, 0xf7, 0xd2, 0x6b, 0xff, 0x83, 0x82, 0x33, - 0xc3, 0x87, 0x5e, 0x94, 0xec, 0xf6, 0x24, 0x71, 0xe6, 0xfb, 0x7e, 0xbf, 0xdf, 0x3c, 0x3e, 0x7e, - 0x1f, 0x3f, 0xa8, 0x11, 0xff, 0x43, 0x6c, 0x73, 0x72, 0x81, 0x1b, 0xf8, 0xb9, 0xdd, 0xb7, 0xfc, - 0x1e, 0x6e, 0x5c, 0x3c, 0xea, 0x60, 0x6e, 0x3d, 0x6a, 0xf4, 0xb0, 0x8f, 0x19, 0x61, 0xf5, 0x20, - 0xa4, 0x9c, 0xa2, 0x9d, 0xd4, 0xb2, 0x9e, 0x58, 0xd6, 0x95, 0xe5, 0xce, 0x83, 0x02, 0x94, 0xd4, - 0x58, 0xc0, 0xec, 0x1c, 0x14, 0x98, 0xf2, 0xe7, 0xca, 0x68, 0xa3, 0x47, 0x7b, 0x54, 0xfc, 0x6d, - 0xc4, 0xff, 0xe4, 0x68, 0xf5, 0x3f, 0xbb, 0x70, 0xeb, 0x27, 0x52, 0xd3, 0x39, 0xb7, 0x38, 0x46, - 0xef, 0xc0, 0x42, 0x60, 0x85, 0x96, 0xc7, 0x74, 0x6d, 0x5f, 0xab, 0x2d, 0x3f, 0xae, 0xd6, 0x27, - 0x6b, 0xac, 0x9f, 0x09, 0xcb, 0xe6, 0xcd, 0x2f, 0xbf, 0xae, 0xcc, 0x19, 0xca, 0x0f, 0x1d, 0xc3, - 0x2d, 0x16, 0x50, 0x6e, 0x7a, 0x56, 0xf8, 0x0c, 0x73, 0xa6, 0xdf, 0xd8, 0x9f, 0xaf, 0x2d, 0x3f, - 0xbe, 0x5f, 0x84, 0x73, 0x1e, 0x50, 0xfe, 0xae, 0x30, 0x37, 0x96, 0x59, 0xfa, 0x9f, 0xa1, 0x9f, - 0x01, 0x72, 0x70, 0x48, 0x2e, 0xac, 0xd8, 0x2d, 0x05, 0x9c, 0x17, 0x80, 0xaf, 0x15, 0x01, 0x1e, - 0xa6, 0x5e, 0x0a, 0x76, 0xcd, 0x19, 0x1a, 0x61, 0xe8, 0x7d, 0x58, 0x15, 0x3a, 0x69, 0xe8, 0xe0, - 0xb0, 0x43, 0xe9, 0x33, 0xfd, 0xa6, 0x00, 0x7e, 0x30, 0x4d, 0xe9, 0x69, 0xec, 0xd0, 0xa4, 0xf4, - 0x99, 0x5a, 0xf8, 0x0a, 0x4b, 0x06, 0x63, 0x14, 0xd4, 0x87, 0x8d, 0x9c, 0xe8, 0x0c, 0xfd, 0x15, - 0x81, 0xde, 0x98, 0x4d, 0xf6, 0x30, 0xc7, 0xba, 0x33, 0x38, 0x25, 0x98, 0x8e, 0xa0, 0xd4, 0xb1, - 0x5c, 0xcb, 0xb7, 0x31, 0xd3, 0x17, 0x04, 0xfa, 0x41, 0x11, 0x7a, 0x53, 0xda, 0x2a, 0xc4, 0xd4, - 0x15, 0x19, 0xb0, 0x14, 0x50, 0x46, 0x38, 0xa1, 0x3e, 0xd3, 0x17, 0x05, 0x4e, 0x7d, 0x36, 0x95, - 0x67, 0xca, 0x4d, 0x41, 0x66, 0x30, 0x88, 0xc0, 0x5d, 0x16, 0x75, 0x2c, 0xdb, 0xa6, 0x91, 0xcf, - 0x4d, 0x1e, 0x5a, 0x0e, 0x36, 0x7d, 0x2a, 0x94, 0x96, 0x04, 0xc3, 0xb7, 0x0b, 0x77, 0x39, 0x75, - 0x7d, 0x8f, 0x66, 0x8a, 0x37, 0x33, 0xc4, 0x76, 0x0c, 0x28, 0xe6, 0x18, 0xfa, 0x54, 0x83, 0x7d, - 0xfc, 0x3c, 0x20, 0xe1, 0xa5, 0xd9, 0x8d, 0x78, 0x14, 0x62, 0xa6, 0x6e, 0x8a, 0x49, 0xfc, 0x2e, - 0x35, 0x59, 0x7c, 0xad, 0xf5, 0x25, 0x41, 0xfa, 0xdd, 0x22, 0xd2, 0x23, 0x81, 0xd1, 0x92, 0x10, - 0xf2, 0x92, 0x1c, 0xfb, 0x5d, 0x2a, 0xc2, 0x42, 0x29, 0xd8, 0xc3, 0x05, 0x36, 0x88, 0xc0, 0x66, - 0x80, 0xc3, 0x00, 0xf3, 0xc8, 0x72, 0xf3, 0x12, 0x74, 0x98, 0x7e, 0xf2, 0x67, 0x89, 0x63, 0x06, - 0x9a, 0x9c, 0x7c, 0x30, 0x3a, 0x85, 0x7e, 0xa5, 0x41, 0x79, 0x84, 0xab, 0x1b, 0xf9, 0x0e, 0xf1, - 0x7b, 0x6a, 0xc5, 0xcb, 0x82, 0xf4, 0xad, 0x2b, 0x90, 0xb6, 0xa4, 0x7f, 0x7e, 0xc1, 0xbb, 0xc1, - 0x64, 0x13, 0xf4, 0x7b, 0x0d, 0xee, 0x8f, 0x84, 0xa7, 0xc9, 0x30, 0xe7, 0x2e, 0xf6, 0xb0, 0xcf, - 0x4d, 0x66, 0xf7, 0xb1, 0x13, 0xb9, 0xd8, 0xd1, 0x6f, 0x09, 0x31, 0x6f, 0x5f, 0x25, 0x64, 0xcf, - 0x53, 0x9c, 0xdc, 0x66, 0x1c, 0x38, 0x13, 0xad, 0xce, 0x13, 0x32, 0xf4, 0x16, 0xe8, 0x84, 0x99, - 0x22, 0xb6, 0x13, 0x16, 0x13, 0xfb, 0x56, 0x27, 0x16, 0xb2, 0xb2, 0xaf, 0xd5, 0x4a, 0xc6, 0x26, - 0x61, 0x71, 0x20, 0x1f, 0xa9, 0xd9, 0x23, 0x39, 0x89, 0x8e, 0xa0, 0x42, 0x98, 0x99, 0x51, 0xb0, - 0x51, 0xff, 0x55, 0xe1, 0xbf, 0x47, 0x58, 0x26, 0x97, 0x0d, 0xc3, 0x5c, 0xc0, 0x5e, 0x7c, 0xe1, - 0xe3, 0xa3, 0x08, 0xf1, 0xc7, 0x56, 0xe8, 0x98, 0xb6, 0xe5, 0x05, 0x16, 0xe9, 0xf9, 0xf2, 0x3a, - 0xdc, 0x16, 0x2f, 0xd6, 0x37, 0x8b, 0x36, 0xa3, 0x2d, 0xfd, 0x0d, 0xe1, 0xfe, 0x54, 0x79, 0xc7, - 0xfb, 0x60, 0x6c, 0xf3, 0x49, 0x53, 0xe8, 0x13, 0x0d, 0xbe, 0x39, 0x44, 0x1c, 0x50, 0xea, 0x66, - 0xec, 0xc9, 0x79, 0xe8, 0x77, 0xa6, 0x07, 0x79, 0x82, 0x2c, 0x79, 0xce, 0x28, 0x75, 0x8d, 0x7b, - 0x03, 0xd4, 0xf1, 0x50, 0x62, 0x94, 0xec, 0x3d, 0xfa, 0x9d, 0x06, 0xf7, 0x27, 0xad, 0x3d, 0x79, - 0x19, 0x04, 0x94, 0xf8, 0x9c, 0xe9, 0x6b, 0x42, 0xc3, 0x8f, 0xae, 0xbc, 0x0b, 0x4f, 0x24, 0xcc, - 0x99, 0x40, 0x31, 0xaa, 0x7c, 0xaa, 0x0d, 0xb2, 0x61, 0xb3, 0x8b, 0xb1, 0xe9, 0x10, 0x26, 0x05, - 0xa4, 0xdb, 0x80, 0xc4, 0x41, 0x14, 0xc6, 0x65, 0x0b, 0xe3, 0x43, 0xe5, 0x97, 0x2c, 0xd2, 0x58, - 0xef, 0x8e, 0x0e, 0xa2, 0x8f, 0xe1, 0xd5, 0x01, 0x92, 0xf4, 0xd5, 0x47, 0x70, 0x68, 0x72, 0xee, - 0xea, 0xeb, 0x62, 0xbd, 0x6f, 0xce, 0x48, 0xa6, 0x56, 0xd0, 0x26, 0x38, 0x6c, 0xb7, 0x4f, 0x8c, - 0xed, 0xee, 0xf8, 0x29, 0xee, 0xa2, 0x5f, 0x6b, 0x70, 0x30, 0xc0, 0xdc, 0x89, 0xec, 0x38, 0x0e, - 0x2f, 0xa8, 0x1b, 0x79, 0x38, 0xd1, 0xc1, 0xf4, 0x0d, 0xc1, 0xff, 0xfd, 0x19, 0xf9, 0x9b, 0x02, - 0xe4, 0x7d, 0x81, 0xa1, 0x08, 0x99, 0x51, 0xe9, 0x16, 0x1b, 0xa0, 0x1f, 0xc0, 0x2e, 0x61, 0x66, - 0x97, 0x84, 0x8c, 0x9b, 0xb1, 0x26, 0xfb, 0xd2, 0x76, 0xb1, 0xd9, 0x25, 0x3e, 0x61, 0x7d, 0xec, - 0xe8, 0x9b, 0x22, 0x78, 0xee, 0x12, 0xd6, 0x8a, 0x2d, 0x5a, 0x18, 0x3f, 0x8d, 0xe7, 0x5b, 0x6a, - 0x1a, 0x7d, 0xae, 0xc1, 0xc3, 0x00, 0xcb, 0x77, 0xd8, 0x6c, 0xf7, 0x78, 0xeb, 0x5a, 0xf7, 0xb8, - 0xa6, 0x48, 0xda, 0x53, 0xaf, 0xf3, 0x9f, 0x35, 0xa8, 0x4f, 0x50, 0x34, 0xe9, 0x5a, 0xdf, 0x15, - 0x92, 0x8e, 0xae, 0x7d, 0xad, 0x25, 0x9b, 0xba, 0xdd, 0x0f, 0xc6, 0x29, 0x1d, 0x7f, 0xc9, 0xbf, - 0x07, 0xdb, 0x52, 0x19, 0x33, 0x69, 0xc0, 0x4d, 0x1a, 0x71, 0xd3, 0x72, 0x9c, 0x10, 0x33, 0x86, - 0x99, 0xae, 0xef, 0xcf, 0xd7, 0x96, 0x8c, 0x2d, 0x65, 0x70, 0x1a, 0xf0, 0xd3, 0x88, 0x3f, 0x49, - 0x66, 0x51, 0x07, 0xf4, 0x3e, 0x61, 0x9c, 0x86, 0xc4, 0xb6, 0x5c, 0x95, 0xab, 0x43, 0x6c, 0xd3, - 0xd0, 0x61, 0xfa, 0xb6, 0x58, 0x4e, 0x6d, 0xda, 0x72, 0xb0, 0x21, 0xed, 0x8d, 0xad, 0x0c, 0x29, - 0x3f, 0x8e, 0x30, 0x6c, 0x75, 0x88, 0x6f, 0x85, 0x97, 0xb1, 0xba, 0xb8, 0x42, 0x48, 0xab, 0xb9, - 0x9d, 0xe9, 0xc9, 0xb1, 0x29, 0x3c, 0x4f, 0xa5, 0xa3, 0x2a, 0xe8, 0x36, 0x3a, 0xa3, 0x83, 0x0c, - 0xf5, 0xe1, 0xf1, 0x58, 0x1a, 0x93, 0x38, 0x2c, 0x4b, 0x47, 0x66, 0x97, 0x86, 0xb9, 0x3c, 0xa5, - 0xef, 0x8a, 0xed, 0x79, 0x6d, 0x0c, 0xe2, 0xb1, 0xc3, 0xd2, 0xbc, 0xd2, 0xa2, 0x61, 0x96, 0x6d, - 0x50, 0x1b, 0x6a, 0xb9, 0x2a, 0x77, 0x08, 0x9f, 0xd3, 0x98, 0xc2, 0xc6, 0xa6, 0xed, 0x52, 0x86, - 0xf5, 0x3d, 0x81, 0x5f, 0xcd, 0x2a, 0xdb, 0x3c, 0x6c, 0x9b, 0xb6, 0x62, 0xd3, 0xa7, 0xb1, 0x65, - 0x5c, 0x93, 0x3a, 0xd8, 0xa7, 0x9e, 0xe9, 0x60, 0x9b, 0x78, 0x96, 0xcb, 0xf4, 0x57, 0xa7, 0xd7, - 0xa4, 0x87, 0xb1, 0xc7, 0xa1, 0x72, 0x48, 0x6a, 0x52, 0x27, 0x3f, 0x18, 0xd7, 0x48, 0xf7, 0x6c, - 0xea, 0x3b, 0xa2, 0x3a, 0xb3, 0x5c, 0x73, 0x5c, 0x81, 0xca, 0xf4, 0xf2, 0xf4, 0x2c, 0xfd, 0x34, - 0x03, 0x19, 0x53, 0xac, 0x1a, 0x15, 0x7b, 0xe2, 0xbc, 0xa0, 0x88, 0xef, 0x41, 0x52, 0xad, 0x60, - 0x6c, 0x7a, 0x91, 0xcb, 0x49, 0xe0, 0x12, 0x1c, 0x32, 0xbd, 0x32, 0xfd, 0x1e, 0xa8, 0x1a, 0x04, - 0xe3, 0x77, 0x53, 0x3f, 0x63, 0xc3, 0x1b, 0x1d, 0x64, 0xe8, 0x97, 0xb0, 0x9e, 0xae, 0xcb, 0x64, - 0xf8, 0xa3, 0x08, 0x8b, 0xd2, 0x73, 0x5f, 0x70, 0x3c, 0x2c, 0xe2, 0x48, 0xb5, 0x9e, 0x2b, 0x2f, - 0x03, 0xd1, 0xe1, 0x21, 0x86, 0x3e, 0x04, 0x94, 0x2b, 0x6f, 0xe5, 0xab, 0x96, 0xe9, 0xf7, 0xa6, - 0xbf, 0x62, 0x9f, 0xf4, 0x7a, 0x21, 0xee, 0x59, 0x1c, 0x67, 0x25, 0xae, 0x7c, 0x87, 0xca, 0x40, - 0x31, 0xd6, 0xd8, 0xd0, 0x38, 0x43, 0xa7, 0xb0, 0xaa, 0xb6, 0x2c, 0xe1, 0xa9, 0x4e, 0x0f, 0x4a, - 0xb9, 0x55, 0x0a, 0x7a, 0xc5, 0xcb, 0x3d, 0xb1, 0xea, 0x09, 0xac, 0x8d, 0xac, 0x12, 0xed, 0x40, - 0x29, 0xd9, 0x27, 0xf1, 0xe5, 0x77, 0xd3, 0x48, 0x9f, 0xd1, 0x2e, 0x2c, 0xa5, 0xd7, 0x5c, 0xbf, - 0xb1, 0xaf, 0xd5, 0x96, 0x8c, 0x92, 0xa7, 0x2e, 0x72, 0xf5, 0x13, 0x0d, 0xb6, 0x27, 0x26, 0x2e, - 0xa4, 0xc3, 0xa2, 0x5a, 0x8e, 0x40, 0x5d, 0x32, 0x92, 0x47, 0x74, 0x0c, 0xa5, 0x34, 0x37, 0xde, - 0x10, 0x89, 0xb8, 0x3e, 0x63, 0x6e, 0x4a, 0x92, 0xe2, 0x22, 0x97, 0x29, 0xb0, 0xfa, 0x17, 0x0d, - 0x2a, 0x53, 0x72, 0x17, 0xfa, 0x0e, 0x6c, 0xa9, 0xc4, 0xc8, 0xb8, 0x15, 0xc6, 0x79, 0xd9, 0xc3, - 0x8c, 0x5b, 0x5e, 0x20, 0x74, 0xcd, 0x1b, 0x1b, 0x72, 0xf6, 0x3c, 0x9e, 0x6c, 0x27, 0x73, 0xe8, - 0x0c, 0x56, 0x07, 0x0f, 0x59, 0x7d, 0xcd, 0x16, 0xc6, 0xe3, 0x93, 0x81, 0x73, 0x5d, 0x19, 0x38, - 0xce, 0xea, 0x47, 0xb0, 0x32, 0x30, 0x5f, 0xb0, 0x43, 0x2d, 0x58, 0x48, 0x49, 0xb5, 0xda, 0x52, - 0xb3, 0x1e, 0x47, 0xf6, 0x3f, 0xbf, 0xae, 0xdc, 0xef, 0x11, 0xde, 0x8f, 0x3a, 0x75, 0x9b, 0x7a, - 0x0d, 0x9b, 0x32, 0x8f, 0x32, 0xf5, 0xf3, 0x90, 0x39, 0xcf, 0x1a, 0xfc, 0x32, 0xc0, 0xac, 0x7e, - 0x88, 0x6d, 0x43, 0x79, 0x57, 0x3f, 0xd5, 0xa0, 0x3a, 0x43, 0x06, 0x29, 0x14, 0xa2, 0xb2, 0xdb, - 0x35, 0x85, 0x48, 0xef, 0xea, 0xdf, 0x35, 0x78, 0x30, 0x73, 0xf2, 0x43, 0x3f, 0x84, 0xdd, 0x7c, - 0xf6, 0x1f, 0x7f, 0x6c, 0x7a, 0x98, 0x66, 0xef, 0xa1, 0xa3, 0xc3, 0xd9, 0xd1, 0xa5, 0xe2, 0xff, - 0x1f, 0x15, 0x67, 0x72, 0x9e, 0xf2, 0xb1, 0xfa, 0x07, 0x0d, 0x56, 0x06, 0x9a, 0x02, 0x83, 0xd1, - 0xa2, 0x0d, 0x46, 0x0b, 0xda, 0x83, 0x25, 0xc2, 0x9a, 0xd1, 0xe5, 0x39, 0x71, 0xe4, 0xb1, 0x96, - 0x8c, 0x6c, 0x00, 0x35, 0x61, 0x41, 0xbc, 0x6c, 0x92, 0x1e, 0xc7, 0xb7, 0xa6, 0xb5, 0x22, 0x4e, - 0x88, 0x47, 0x24, 0xb5, 0xa1, 0x3c, 0xdf, 0x2e, 0x7d, 0xf6, 0x45, 0x65, 0xee, 0xdf, 0x5f, 0x54, - 0xe6, 0xaa, 0x7f, 0xd2, 0x60, 0x7d, 0xcc, 0x4b, 0xfa, 0x7f, 0x11, 0xf8, 0xd3, 0x21, 0x81, 0xaf, - 0xcf, 0xf6, 0x45, 0x57, 0x28, 0xf3, 0x6f, 0xf3, 0x50, 0x2e, 0x4e, 0x2b, 0xc5, 0x8a, 0x3f, 0x80, - 0x3b, 0x6e, 0x8c, 0x6f, 0x76, 0xa2, 0x4b, 0x53, 0xa9, 0xbb, 0x71, 0x4d, 0x75, 0xab, 0x02, 0xa9, - 0x19, 0x5d, 0x8a, 0x47, 0x86, 0x7e, 0x01, 0x6b, 0x8a, 0x38, 0x07, 0x2e, 0x97, 0xfe, 0xe8, 0x2a, - 0x1f, 0xb3, 0x12, 0xfd, 0xb6, 0xc4, 0xca, 0xe0, 0x7f, 0x0e, 0x6b, 0x52, 0x3a, 0xc3, 0xae, 0x9b, - 0xc0, 0xdf, 0xbc, 0xa6, 0xf6, 0xdb, 0x02, 0xea, 0x1c, 0xbb, 0xae, 0x42, 0x37, 0x01, 0xa5, 0xdf, - 0xe4, 0x19, 0xfc, 0x2b, 0xd7, 0x55, 0x7f, 0xc7, 0x53, 0x5f, 0xdc, 0x09, 0x41, 0xee, 0x0c, 0x3f, - 0xd7, 0x60, 0x51, 0xb5, 0x97, 0xd0, 0x01, 0xac, 0xe4, 0x72, 0x63, 0x7a, 0x60, 0xb7, 0xb2, 0xc1, - 0x63, 0x07, 0x6d, 0xc0, 0x2b, 0xa2, 0x42, 0x51, 0xe9, 0x44, 0x3e, 0xa0, 0x1f, 0x43, 0xc9, 0xc1, - 0xa2, 0x89, 0x14, 0xef, 0xb2, 0x36, 0xad, 0xa1, 0x75, 0x28, 0x6d, 0x8d, 0xd4, 0x29, 0xa7, 0xe8, - 0x8f, 0x1a, 0xa0, 0xd1, 0x46, 0xd5, 0x6c, 0xe2, 0x8a, 0xf2, 0x1d, 0x7a, 0x07, 0x4a, 0x49, 0x9b, - 0x4b, 0x69, 0xfc, 0x46, 0x61, 0x8f, 0x45, 0xd9, 0x1a, 0xa9, 0x57, 0x4e, 0xe4, 0x5f, 0x35, 0xb8, - 0x3d, 0xd4, 0xeb, 0x9a, 0x4d, 0xa1, 0x0b, 0x5b, 0xe3, 0xdb, 0x6b, 0x2a, 0x95, 0xbe, 0x3e, 0x5b, - 0x77, 0x2d, 0x6b, 0xa3, 0xa9, 0xb2, 0x71, 0x63, 0x5c, 0x8b, 0x2d, 0x27, 0xf8, 0xb7, 0x1a, 0xec, - 0x15, 0xf5, 0xc9, 0x8a, 0x23, 0xb5, 0x0d, 0xcb, 0xf9, 0xb6, 0x98, 0x94, 0xfa, 0xc6, 0x35, 0x7a, - 0x72, 0x06, 0x78, 0xe9, 0xff, 0xea, 0x67, 0x1a, 0xec, 0x16, 0x74, 0xb2, 0x8a, 0x25, 0x9d, 0xc0, - 0xa2, 0x6a, 0x9b, 0x29, 0x39, 0x8f, 0xaf, 0xde, 0x30, 0x33, 0x12, 0x88, 0x66, 0xff, 0xcb, 0x17, - 0x65, 0xed, 0xab, 0x17, 0x65, 0xed, 0x5f, 0x2f, 0xca, 0xda, 0x6f, 0x5e, 0x96, 0xe7, 0xbe, 0x7a, - 0x59, 0x9e, 0xfb, 0xc7, 0xcb, 0xf2, 0xdc, 0x07, 0xef, 0xe5, 0x52, 0xe5, 0x71, 0x42, 0x70, 0x62, - 0x75, 0x58, 0x23, 0xa5, 0x7b, 0x68, 0xd3, 0x10, 0xe7, 0x1f, 0xfb, 0x16, 0xf1, 0x1b, 0x1e, 0x8d, - 0xbf, 0x12, 0x58, 0xd6, 0xd8, 0x17, 0x69, 0xb5, 0xb3, 0x20, 0xda, 0xf7, 0x6f, 0xfc, 0x37, 0x00, - 0x00, 0xff, 0xff, 0xa6, 0x40, 0x0d, 0xb7, 0x6c, 0x18, 0x00, 0x00, + // 2044 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x59, 0xcb, 0x6f, 0x24, 0x47, + 0x19, 0x77, 0xdb, 0x5e, 0x7b, 0xfc, 0xf9, 0xb5, 0x2e, 0x3f, 0xb6, 0xfd, 0xf6, 0x8e, 0xc3, 0x32, + 0x0b, 0xd9, 0x71, 0x76, 0x97, 0x28, 0x90, 0xf0, 0x88, 0xc7, 0x8f, 0x60, 0x70, 0x62, 0xab, 0x3d, + 0xca, 0x21, 0x3c, 0x5a, 0x3d, 0xdd, 0x35, 0x33, 0x15, 0x77, 0x77, 0x0d, 0x5d, 0xd5, 0xde, 0x35, + 0x5c, 0x22, 0x0e, 0x28, 0x88, 0x43, 0x00, 0x09, 0x89, 0x63, 0x84, 0x38, 0x80, 0x90, 0xf8, 0x1f, + 0xb8, 0xe5, 0x18, 0x6e, 0x88, 0x43, 0x84, 0x76, 0x2f, 0xfc, 0x19, 0xa8, 0xaa, 0xab, 0x1f, 0xf3, + 0xea, 0x19, 0x9b, 0xdc, 0xa6, 0xaa, 0xbe, 0xef, 0xf7, 0xfb, 0xd5, 0xf3, 0xfb, 0xfa, 0x1b, 0x28, + 0x11, 0xff, 0x43, 0x6c, 0x73, 0x72, 0x85, 0xf7, 0xf0, 0x73, 0xbb, 0x69, 0xf9, 0x0d, 0xbc, 0x77, + 0xf5, 0xb8, 0x86, 0xb9, 0xf5, 0x78, 0xaf, 0x81, 0x7d, 0xcc, 0x08, 0x2b, 0xb7, 0x02, 0xca, 0x29, + 0x5a, 0x4b, 0x2c, 0xcb, 0xb1, 0x65, 0x59, 0x59, 0xae, 0x3d, 0xcc, 0x41, 0x49, 0x8c, 0x25, 0xcc, + 0xda, 0x6e, 0x8e, 0x29, 0x7f, 0xae, 0x8c, 0x96, 0x1a, 0xb4, 0x41, 0xe5, 0xcf, 0x3d, 0xf1, 0x2b, + 0xea, 0x2d, 0xfe, 0x6d, 0x13, 0x66, 0xde, 0x89, 0x34, 0x5d, 0x70, 0x8b, 0x63, 0xf4, 0x36, 0x4c, + 0xb4, 0xac, 0xc0, 0xf2, 0x98, 0xae, 0xed, 0x68, 0xa5, 0xe9, 0x27, 0xc5, 0x72, 0x7f, 0x8d, 0xe5, + 0x73, 0x69, 0x59, 0x19, 0xff, 0xec, 0x8b, 0xed, 0x11, 0x43, 0xf9, 0xa1, 0x13, 0x98, 0x61, 0x2d, + 0xca, 0x4d, 0xcf, 0x0a, 0x2e, 0x31, 0x67, 0xfa, 0xe8, 0xce, 0x58, 0x69, 0xfa, 0xc9, 0x83, 0x3c, + 0x9c, 0x8b, 0x16, 0xe5, 0xef, 0x4a, 0x73, 0x63, 0x9a, 0x25, 0xbf, 0x19, 0xfa, 0x11, 0x20, 0x07, + 0x07, 0xe4, 0xca, 0x12, 0x6e, 0x09, 0xe0, 0x98, 0x04, 0x7c, 0x35, 0x0f, 0xf0, 0x30, 0xf1, 0x52, + 0xb0, 0x0b, 0x4e, 0x47, 0x0f, 0x43, 0xef, 0xc3, 0x9c, 0xd4, 0x49, 0x03, 0x07, 0x07, 0x35, 0x4a, + 0x2f, 0xf5, 0x71, 0x09, 0xfc, 0x70, 0x90, 0xd2, 0x33, 0xe1, 0x50, 0xa1, 0xf4, 0x52, 0x4d, 0x7c, + 0x96, 0xc5, 0x9d, 0x02, 0x05, 0x35, 0x61, 0x29, 0x23, 0x3a, 0x45, 0xbf, 0x23, 0xd1, 0xf7, 0x86, + 0x93, 0xdd, 0xc9, 0xb1, 0xe8, 0xb4, 0x0f, 0x49, 0xa6, 0x23, 0x28, 0xd4, 0x2c, 0xd7, 0xf2, 0x6d, + 0xcc, 0xf4, 0x09, 0x89, 0xbe, 0x9b, 0x87, 0x5e, 0x89, 0x6c, 0x15, 0x62, 0xe2, 0x8a, 0x0c, 0x98, + 0x6a, 0x51, 0x46, 0x38, 0xa1, 0x3e, 0xd3, 0x27, 0x25, 0x4e, 0x79, 0x38, 0x95, 0xe7, 0xca, 0x4d, + 0x41, 0xa6, 0x30, 0x88, 0xc0, 0x3d, 0x16, 0xd6, 0x2c, 0xdb, 0xa6, 0xa1, 0xcf, 0x4d, 0x1e, 0x58, + 0x0e, 0x36, 0x7d, 0x2a, 0x95, 0x16, 0x24, 0xc3, 0xd7, 0x73, 0x57, 0x39, 0x71, 0x7d, 0x8f, 0xa6, + 0x8a, 0x97, 0x53, 0xc4, 0xaa, 0x00, 0x94, 0x63, 0x0c, 0xfd, 0x4a, 0x83, 0x1d, 0xfc, 0xbc, 0x45, + 0x82, 0x6b, 0xb3, 0x1e, 0xf2, 0x30, 0xc0, 0x4c, 0x9d, 0x14, 0x93, 0xf8, 0x75, 0x6a, 0x32, 0x71, + 0xac, 0xf5, 0x29, 0x49, 0xfa, 0xcd, 0x3c, 0xd2, 0x23, 0x89, 0x71, 0x1c, 0x41, 0x44, 0x87, 0xe4, + 0xc4, 0xaf, 0x53, 0x79, 0x2d, 0x94, 0x82, 0x0d, 0x9c, 0x63, 0x83, 0x08, 0x2c, 0xb7, 0x70, 0xd0, + 0xc2, 0x3c, 0xb4, 0xdc, 0xac, 0x04, 0x1d, 0x06, 0xef, 0xfc, 0x79, 0xec, 0x98, 0x82, 0xc6, 0x3b, + 0xdf, 0xea, 0x1e, 0x42, 0xbf, 0xd4, 0x60, 0xab, 0x8b, 0xab, 0x1e, 0xfa, 0x0e, 0xf1, 0x1b, 0x6a, + 0xc6, 0xd3, 0x92, 0xf4, 0x8d, 0x1b, 0x90, 0x1e, 0x47, 0xfe, 0xd9, 0x09, 0xaf, 0xb7, 0xfa, 0x9b, + 0xa0, 0x3f, 0x68, 0xf0, 0xa0, 0xeb, 0x7a, 0x9a, 0x0c, 0x73, 0xee, 0x62, 0x0f, 0xfb, 0xdc, 0x64, + 0x76, 0x13, 0x3b, 0xa1, 0x8b, 0x1d, 0x7d, 0x46, 0x8a, 0x79, 0xf3, 0x26, 0x57, 0xf6, 0x22, 0xc1, + 0xc9, 0x2c, 0xc6, 0xae, 0xd3, 0xd7, 0xea, 0x22, 0x26, 0x43, 0x6f, 0x80, 0x4e, 0x98, 0x29, 0xef, + 0x76, 0xcc, 0x62, 0x62, 0xdf, 0xaa, 0x09, 0x21, 0xb3, 0x3b, 0x5a, 0xa9, 0x60, 0x2c, 0x13, 0x26, + 0x2e, 0xf2, 0x91, 0x1a, 0x3d, 0x8a, 0x06, 0xd1, 0x11, 0x6c, 0x13, 0x66, 0xa6, 0x14, 0xac, 0xdb, + 0x7f, 0x4e, 0xfa, 0x6f, 0x10, 0x96, 0xca, 0x65, 0x9d, 0x30, 0x57, 0xb0, 0x21, 0x0e, 0xbc, 0xd8, + 0x8a, 0x00, 0x3f, 0xb3, 0x02, 0xc7, 0xb4, 0x2d, 0xaf, 0x65, 0x91, 0x86, 0x1f, 0x1d, 0x87, 0x79, + 0xf9, 0xb0, 0xbe, 0x9e, 0xb7, 0x18, 0xd5, 0xc8, 0xdf, 0x90, 0xee, 0x07, 0xca, 0x5b, 0xac, 0x83, + 0xb1, 0xca, 0xfb, 0x0d, 0xa1, 0x8f, 0x34, 0xf8, 0x4a, 0x07, 0x71, 0x8b, 0x52, 0x37, 0x65, 0x8f, + 0xf7, 0x43, 0xbf, 0x3b, 0xf8, 0x92, 0xc7, 0xc8, 0x11, 0xcf, 0x39, 0xa5, 0xae, 0x71, 0xbf, 0x8d, + 0x5a, 0x74, 0xc5, 0x46, 0xf1, 0xda, 0xa3, 0xdf, 0x6b, 0xf0, 0xa0, 0xdf, 0xdc, 0xe3, 0xc7, 0xa0, + 0x45, 0x89, 0xcf, 0x99, 0xbe, 0x20, 0x35, 0x7c, 0xf7, 0xc6, 0xab, 0xb0, 0x1f, 0xc1, 0x9c, 0x4b, + 0x14, 0xa3, 0xc8, 0x07, 0xda, 0x20, 0x1b, 0x96, 0xeb, 0x18, 0x9b, 0x0e, 0x61, 0x91, 0x80, 0x64, + 0x19, 0x90, 0xdc, 0x88, 0xdc, 0x7b, 0x79, 0x8c, 0xf1, 0xa1, 0xf2, 0x8b, 0x27, 0x69, 0x2c, 0xd6, + 0xbb, 0x3b, 0xd1, 0x33, 0xd8, 0x6c, 0x23, 0x49, 0x9e, 0x3e, 0x82, 0x03, 0x93, 0x73, 0x57, 0x5f, + 0x94, 0xf3, 0x7d, 0x7d, 0x48, 0x32, 0x35, 0x83, 0x2a, 0xc1, 0x41, 0xb5, 0x7a, 0x6a, 0xac, 0xd6, + 0x7b, 0x0f, 0x71, 0x17, 0xfd, 0x5a, 0x83, 0xdd, 0x36, 0xe6, 0x5a, 0x68, 0x8b, 0x7b, 0x78, 0x45, + 0xdd, 0xd0, 0xc3, 0xb1, 0x0e, 0xa6, 0x2f, 0x49, 0xfe, 0xb7, 0x86, 0xe4, 0xaf, 0x48, 0x90, 0xf7, + 0x25, 0x86, 0x22, 0x64, 0xc6, 0x76, 0x3d, 0xdf, 0x00, 0x7d, 0x1b, 0xd6, 0x09, 0x33, 0xeb, 0x24, + 0x60, 0xdc, 0x14, 0x9a, 0xec, 0x6b, 0xdb, 0xc5, 0x66, 0x9d, 0xf8, 0x84, 0x35, 0xb1, 0xa3, 0x2f, + 0xcb, 0xcb, 0x73, 0x8f, 0xb0, 0x63, 0x61, 0x71, 0x8c, 0xf1, 0x81, 0x18, 0x3f, 0x56, 0xc3, 0xe8, + 0x13, 0x0d, 0x1e, 0xb5, 0x70, 0xf4, 0x86, 0x0d, 0x77, 0x8e, 0x57, 0x6e, 0x75, 0x8e, 0x4b, 0x8a, + 0xa4, 0x3a, 0xf0, 0x38, 0xff, 0x45, 0x83, 0x72, 0x1f, 0x45, 0xfd, 0x8e, 0xf5, 0x3d, 0x29, 0xe9, + 0xe8, 0xd6, 0xc7, 0x3a, 0x62, 0x53, 0xa7, 0xfb, 0x61, 0x2f, 0xa5, 0xbd, 0x0f, 0xf9, 0xb7, 0x60, + 0x35, 0x52, 0xc6, 0x4c, 0xda, 0xe2, 0x26, 0x0d, 0xb9, 0x69, 0x39, 0x4e, 0x80, 0x19, 0xc3, 0x4c, + 0xd7, 0x77, 0xc6, 0x4a, 0x53, 0xc6, 0x8a, 0x32, 0x38, 0x6b, 0xf1, 0xb3, 0x90, 0xef, 0xc7, 0xa3, + 0xa8, 0x06, 0x7a, 0x93, 0x30, 0x4e, 0x03, 0x62, 0x5b, 0xae, 0x8a, 0xd5, 0x01, 0xb6, 0x69, 0xe0, + 0x30, 0x7d, 0x55, 0x4e, 0xa7, 0x34, 0x68, 0x3a, 0xd8, 0x88, 0xec, 0x8d, 0x95, 0x14, 0x29, 0xdb, + 0x8f, 0x30, 0xac, 0xd4, 0x88, 0x6f, 0x05, 0xd7, 0x42, 0x9d, 0xc8, 0x10, 0x92, 0x6c, 0x6e, 0x6d, + 0x70, 0x70, 0xac, 0x48, 0xcf, 0xb3, 0xc8, 0x51, 0x25, 0x74, 0x4b, 0xb5, 0xee, 0x4e, 0x86, 0x9a, + 0xf0, 0xa4, 0x27, 0x8d, 0x49, 0x1c, 0x96, 0x86, 0x23, 0xb3, 0x4e, 0x83, 0x4c, 0x9c, 0xd2, 0xd7, + 0xe5, 0xf2, 0xbc, 0xda, 0x03, 0xf1, 0xc4, 0x61, 0x49, 0x5c, 0x39, 0xa6, 0x41, 0x1a, 0x6d, 0x50, + 0x15, 0x4a, 0x99, 0x2c, 0xb7, 0x03, 0x9f, 0x53, 0x41, 0x61, 0x63, 0xd3, 0x76, 0x29, 0xc3, 0xfa, + 0x86, 0xc4, 0x2f, 0xa6, 0x99, 0x6d, 0x16, 0xb6, 0x4a, 0x8f, 0x85, 0xe9, 0x81, 0xb0, 0x14, 0x39, + 0xa9, 0x83, 0x7d, 0xea, 0x99, 0x0e, 0xb6, 0x89, 0x67, 0xb9, 0x4c, 0xdf, 0x1c, 0x9c, 0x93, 0x1e, + 0x0a, 0x8f, 0x43, 0xe5, 0x10, 0xe7, 0xa4, 0x4e, 0xb6, 0x53, 0xe4, 0x48, 0xf7, 0x6d, 0xea, 0x3b, + 0x32, 0x3b, 0xb3, 0x5c, 0xb3, 0x57, 0x82, 0xca, 0xf4, 0xad, 0xc1, 0x51, 0xfa, 0x20, 0x05, 0xe9, + 0x91, 0xac, 0x1a, 0xdb, 0x76, 0xdf, 0x71, 0x49, 0x21, 0xce, 0x41, 0x9c, 0xad, 0x60, 0x6c, 0x7a, + 0xa1, 0xcb, 0x49, 0xcb, 0x25, 0x38, 0x60, 0xfa, 0xf6, 0xe0, 0x73, 0xa0, 0x72, 0x10, 0x8c, 0xdf, + 0x4d, 0xfc, 0x8c, 0x25, 0xaf, 0xbb, 0x93, 0xa1, 0x9f, 0xc2, 0x62, 0x32, 0x2f, 0x93, 0xe1, 0x9f, + 0x85, 0x58, 0xa6, 0x9e, 0x3b, 0x92, 0xe3, 0x51, 0x1e, 0x47, 0xa2, 0xf5, 0x42, 0x79, 0x19, 0x88, + 0x76, 0x76, 0x31, 0xf4, 0x21, 0xa0, 0x4c, 0x7a, 0x1b, 0x3d, 0xb5, 0x4c, 0xbf, 0x3f, 0xf8, 0x89, + 0xdd, 0x6f, 0x34, 0x02, 0xdc, 0xb0, 0x38, 0x4e, 0x53, 0xdc, 0xe8, 0x0d, 0x8d, 0x2e, 0x8a, 0xb1, + 0xc0, 0x3a, 0xfa, 0x19, 0x3a, 0x83, 0x39, 0xb5, 0x64, 0x31, 0x4f, 0x71, 0xf0, 0xa5, 0x8c, 0x96, + 0x4a, 0x41, 0xcf, 0x7a, 0x99, 0x16, 0x43, 0x75, 0x58, 0x6a, 0x04, 0x96, 0x88, 0x51, 0x21, 0x6f, + 0xd2, 0x80, 0xfc, 0xdc, 0x8a, 0x52, 0xff, 0x5d, 0x09, 0xfb, 0x34, 0x37, 0x42, 0x84, 0xae, 0xfb, + 0x8e, 0xf0, 0xdd, 0x6f, 0x73, 0x35, 0x16, 0x1b, 0xdd, 0x9d, 0xe8, 0x1c, 0x66, 0x2d, 0x89, 0x63, + 0xca, 0x51, 0xa6, 0xbf, 0x32, 0x38, 0xf3, 0x17, 0x04, 0xfb, 0x72, 0x4c, 0xd2, 0x18, 0x33, 0x56, + 0xda, 0x60, 0xc5, 0x53, 0x58, 0xe8, 0xda, 0x1f, 0xb4, 0x06, 0x85, 0x78, 0x87, 0xe5, 0x37, 0xeb, + 0xb8, 0x91, 0xb4, 0xd1, 0x3a, 0x4c, 0x25, 0x17, 0x54, 0x1f, 0xdd, 0xd1, 0x4a, 0x53, 0x46, 0xc1, + 0x53, 0x57, 0xb0, 0xf8, 0x91, 0x06, 0xab, 0x7d, 0x43, 0x2e, 0xd2, 0x61, 0x52, 0x6d, 0x84, 0x44, + 0x9d, 0x32, 0xe2, 0x26, 0x3a, 0x81, 0x42, 0x12, 0xd5, 0x47, 0x65, 0x0a, 0x51, 0x1e, 0x32, 0xaa, + 0xc6, 0xe1, 0x7c, 0x92, 0x47, 0xc1, 0xbb, 0xf8, 0x57, 0x0d, 0xb6, 0x07, 0x44, 0x5d, 0xf4, 0x0d, + 0x58, 0x51, 0x21, 0x9d, 0x71, 0x2b, 0x10, 0x19, 0x85, 0x87, 0x19, 0xb7, 0xbc, 0x96, 0xd4, 0x35, + 0x66, 0x2c, 0x45, 0xa3, 0x17, 0x62, 0xb0, 0x1a, 0x8f, 0xa1, 0x73, 0x98, 0x6b, 0x3f, 0x9e, 0xea, + 0x3b, 0x3c, 0xf7, 0x25, 0xd9, 0x6f, 0x3b, 0x91, 0xb3, 0x6d, 0x07, 0xb1, 0x58, 0x87, 0xd9, 0xb6, + 0xf1, 0x9c, 0x15, 0x7a, 0x0b, 0x26, 0x12, 0x52, 0xad, 0x34, 0x55, 0xd9, 0x15, 0x6f, 0xd2, 0xbf, + 0xbf, 0xd8, 0x5e, 0xb7, 0x29, 0xf3, 0x28, 0x63, 0xce, 0x65, 0x99, 0xd0, 0x3d, 0xcf, 0xe2, 0xcd, + 0xf2, 0x29, 0x6e, 0x58, 0xf6, 0xf5, 0x21, 0xb6, 0x0d, 0xe5, 0x52, 0xfc, 0x05, 0x14, 0x87, 0x88, + 0x77, 0xb9, 0xe4, 0x2a, 0x16, 0xdf, 0x84, 0x3c, 0x72, 0x29, 0xfe, 0x53, 0x83, 0x87, 0x43, 0xc7, + 0x67, 0xf4, 0x1d, 0x58, 0xcf, 0x26, 0x28, 0xbd, 0xf7, 0x47, 0x0f, 0x92, 0x04, 0xa3, 0x63, 0x8f, + 0x70, 0xba, 0x47, 0x89, 0xe2, 0x2f, 0x23, 0x29, 0x8e, 0x37, 0x2e, 0x6a, 0x16, 0xff, 0xa8, 0xc1, + 0x6c, 0x5b, 0xdd, 0xa2, 0xfd, 0x5a, 0x68, 0xed, 0xd7, 0x02, 0x6d, 0xc0, 0x14, 0x61, 0x95, 0xf0, + 0xfa, 0x82, 0x38, 0xd1, 0xfe, 0x15, 0x8c, 0xb4, 0x03, 0x55, 0x60, 0x42, 0xbe, 0x87, 0x71, 0x19, + 0xe6, 0x6b, 0x83, 0xaa, 0x25, 0xa7, 0xc4, 0x23, 0x11, 0xb5, 0xa1, 0x3c, 0xdf, 0x2c, 0x7c, 0xfc, + 0xe9, 0xf6, 0xc8, 0x7f, 0x3f, 0xdd, 0x1e, 0x29, 0xfe, 0x59, 0x83, 0xc5, 0x1e, 0x71, 0xe4, 0xff, + 0x11, 0xf8, 0xfd, 0x0e, 0x81, 0xaf, 0x0d, 0xf7, 0xd1, 0x99, 0x2b, 0xf3, 0x1f, 0x63, 0xb0, 0x95, + 0x1f, 0xf9, 0xf2, 0x15, 0x7f, 0x00, 0x77, 0x5d, 0x81, 0x6f, 0xd6, 0xc2, 0x6b, 0x53, 0xa9, 0x1b, + 0xbd, 0xa5, 0xba, 0x39, 0x89, 0x54, 0x09, 0xaf, 0x65, 0x93, 0xa1, 0x9f, 0xc0, 0x82, 0x22, 0xce, + 0x80, 0x47, 0x53, 0x7f, 0x7c, 0x93, 0xef, 0xed, 0x08, 0x7d, 0x3e, 0xc2, 0x4a, 0xe1, 0x7f, 0x0c, + 0x0b, 0x91, 0x74, 0x86, 0x5d, 0x37, 0x86, 0x1f, 0xbf, 0xa5, 0xf6, 0x79, 0x09, 0x75, 0x81, 0x5d, + 0x57, 0xa1, 0x9b, 0x80, 0x92, 0xb2, 0x41, 0x0a, 0x7f, 0xe7, 0xb6, 0xea, 0xef, 0x7a, 0xaa, 0x28, + 0x10, 0x13, 0x64, 0xf6, 0xf0, 0x13, 0x0d, 0x26, 0x55, 0x05, 0x0c, 0xed, 0xc2, 0x6c, 0x26, 0x7c, + 0x27, 0x1b, 0x36, 0x93, 0x76, 0x9e, 0x38, 0x68, 0x09, 0xee, 0xc8, 0x24, 0x4a, 0xc5, 0x8d, 0xa8, + 0x81, 0xbe, 0x07, 0x05, 0x07, 0xcb, 0x3a, 0x97, 0x58, 0x65, 0x6d, 0x50, 0xcd, 0xed, 0x30, 0xb2, + 0x35, 0x12, 0xa7, 0x8c, 0xa2, 0x3f, 0x69, 0x80, 0xba, 0x6b, 0x69, 0xc3, 0x89, 0xcb, 0x0b, 0x6c, + 0xe8, 0x6d, 0x28, 0xc4, 0x95, 0x38, 0xa5, 0xf1, 0x95, 0xdc, 0x32, 0x90, 0xb2, 0x35, 0x12, 0xaf, + 0x8c, 0xc8, 0xbf, 0x6b, 0x30, 0xdf, 0x51, 0x8e, 0x1b, 0x4e, 0xa1, 0x0b, 0x2b, 0xbd, 0x2b, 0x80, + 0x2a, 0x66, 0xbe, 0x36, 0x5c, 0x01, 0x30, 0xad, 0xf4, 0xa9, 0xcc, 0x76, 0xa9, 0x57, 0x15, 0x30, + 0x23, 0xf8, 0x77, 0x1a, 0x6c, 0xe4, 0x95, 0xf2, 0xf2, 0x6f, 0x6a, 0x15, 0xa6, 0xb3, 0x95, 0xbb, + 0x48, 0xea, 0xd3, 0x5b, 0x94, 0x0d, 0x0d, 0xf0, 0x92, 0xdf, 0xc5, 0x8f, 0x35, 0x58, 0xcf, 0x29, + 0xb6, 0xe5, 0x4b, 0x3a, 0x85, 0x49, 0x55, 0xd9, 0x53, 0x72, 0x9e, 0xdc, 0xbc, 0xa6, 0x67, 0xc4, + 0x10, 0xc5, 0xdf, 0x8c, 0xc2, 0xbd, 0x3e, 0x59, 0x9c, 0x88, 0xa9, 0x32, 0x53, 0xc3, 0x41, 0x1c, + 0x53, 0x55, 0x13, 0xfd, 0x10, 0x10, 0xa7, 0xdc, 0x72, 0x4d, 0x95, 0x38, 0x7a, 0x32, 0xf0, 0x46, + 0xf1, 0x75, 0x53, 0xc5, 0xd7, 0xe5, 0xee, 0xf8, 0x7a, 0xe2, 0x73, 0xe3, 0xae, 0x74, 0x8c, 0xe8, + 0xa4, 0x1b, 0xda, 0x87, 0x4d, 0xd7, 0x62, 0xdc, 0x74, 0xb0, 0x2b, 0x52, 0x61, 0xf9, 0x99, 0x66, + 0x37, 0xb1, 0x7d, 0x29, 0xbe, 0x9c, 0x88, 0x87, 0xe5, 0x99, 0x1d, 0x33, 0xd6, 0x84, 0xd1, 0x61, + 0x6a, 0x73, 0x10, 0x99, 0x88, 0xf0, 0x89, 0x8e, 0x61, 0x42, 0xe5, 0x94, 0xe3, 0x83, 0x4b, 0x00, + 0xdd, 0x53, 0x35, 0x94, 0x77, 0xf1, 0x19, 0xcc, 0x77, 0x64, 0x9c, 0xe9, 0x22, 0xe0, 0xf6, 0x45, + 0xc0, 0xe8, 0x07, 0x30, 0x93, 0xcd, 0x67, 0xd5, 0x6e, 0x7c, 0x35, 0x3f, 0xa1, 0x4a, 0x53, 0xd9, + 0xe9, 0x4c, 0x2a, 0x5b, 0x69, 0x7e, 0xf6, 0x62, 0x4b, 0xfb, 0xfc, 0xc5, 0x96, 0xf6, 0x9f, 0x17, + 0x5b, 0xda, 0x6f, 0x5f, 0x6e, 0x8d, 0x7c, 0xfe, 0x72, 0x6b, 0xe4, 0x5f, 0x2f, 0xb7, 0x46, 0x3e, + 0x78, 0xaf, 0x41, 0x78, 0x33, 0xac, 0x95, 0x6d, 0xea, 0xed, 0x9d, 0xc4, 0xc8, 0xa7, 0x56, 0x8d, + 0xed, 0x25, 0x3c, 0x8f, 0x6c, 0x1a, 0xe0, 0x6c, 0xb3, 0x69, 0x11, 0x7f, 0xcf, 0xa3, 0xe2, 0x7b, + 0x92, 0xa5, 0x7f, 0x01, 0xf1, 0xeb, 0x16, 0x66, 0xb5, 0x09, 0xf9, 0x47, 0xcf, 0xd3, 0xff, 0x05, + 0x00, 0x00, 0xff, 0xff, 0xc7, 0x69, 0x9a, 0x25, 0x96, 0x1a, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -1180,6 +1323,38 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ActiveGrants) > 0 { + for iNdEx := len(m.ActiveGrants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ActiveGrants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0xa2 + } + } + if len(m.GrantAuthorizations) > 0 { + for iNdEx := len(m.GrantAuthorizations) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.GrantAuthorizations[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2 + i-- + dAtA[i] = 0x9a + } + } if len(m.MarketVolumes) > 0 { for iNdEx := len(m.MarketVolumes) - 1; iNdEx >= 0; iNdEx-- { { @@ -2319,6 +2494,107 @@ func (m *PerpetualMarketFundingState) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } +func (m *FullGrantAuthorizations) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FullGrantAuthorizations) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FullGrantAuthorizations) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grants) > 0 { + for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.LastDelegationsCheckedTime != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.LastDelegationsCheckedTime)) + i-- + dAtA[i] = 0x18 + } + { + size := m.TotalGrantAmount.Size() + i -= size + if _, err := m.TotalGrantAmount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *FullActiveGrant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FullActiveGrant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FullActiveGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ActiveGrant != nil { + { + size, err := m.ActiveGrant.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int { offset -= sovGenesis(v) base := offset @@ -2523,6 +2799,18 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.GrantAuthorizations) > 0 { + for _, e := range m.GrantAuthorizations { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.ActiveGrants) > 0 { + for _, e := range m.ActiveGrants { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -2797,6 +3085,47 @@ func (m *PerpetualMarketFundingState) Size() (n int) { return n } +func (m *FullGrantAuthorizations) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + l = m.TotalGrantAmount.Size() + n += 1 + l + sovGenesis(uint64(l)) + if m.LastDelegationsCheckedTime != 0 { + n += 1 + sovGenesis(uint64(m.LastDelegationsCheckedTime)) + } + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + return n +} + +func (m *FullActiveGrant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + if m.ActiveGrant != nil { + l = m.ActiveGrant.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + return n +} + func sovGenesis(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -3943,27 +4272,95 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenesis(dAtA[iNdEx:]) - if err != nil { - return err + case 35: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GrantAuthorizations", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + 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 } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} + m.GrantAuthorizations = append(m.GrantAuthorizations, &FullGrantAuthorizations{}) + if err := m.GrantAuthorizations[len(m.GrantAuthorizations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 36: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveGrants", 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.ActiveGrants = append(m.ActiveGrants, &FullActiveGrant{}) + if err := m.ActiveGrants[len(m.ActiveGrants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *OrderbookSequence) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -5762,6 +6159,293 @@ func (m *PerpetualMarketFundingState) Unmarshal(dAtA []byte) error { } return nil } +func (m *FullGrantAuthorizations) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FullGrantAuthorizations: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FullGrantAuthorizations: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field LastDelegationsCheckedTime", wireType) + } + m.LastDelegationsCheckedTime = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.LastDelegationsCheckedTime |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grants", 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.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FullActiveGrant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FullActiveGrant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FullActiveGrant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Grantee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveGrant", 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 + } + if m.ActiveGrant == nil { + m.ActiveGrant = &ActiveGrant{} + } + if err := m.ActiveGrant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipGenesis(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/key.go b/chain/exchange/types/key.go index 93af05d1..c4023835 100644 --- a/chain/exchange/types/key.go +++ b/chain/exchange/types/key.go @@ -6,6 +6,7 @@ import ( "math/big" "strings" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" "github.com/shopspring/decimal" @@ -110,6 +111,11 @@ var ( ConditionalOrderInvalidationFlagPrefix = []byte{0x78} // prefix for a key to save flags to invalidate conditional orders AtomicMarketOrderTakerFeeMultiplierKey = []byte{0x79} // key to store individual market atomic take fee multiplier + + GrantAuthorizationsPrefix = []byte{0x80} // prefix to store individual stake grants by (granter, grantee) + TotalGrantAmountPrefix = []byte{0x81} // prefix to store the total granted amount by granter + LastGranterDelegationCheckTimePrefix = []byte{0x82} // prefix to store the last timestamp that the granter's delegations were checked + ActiveGrantPrefix = []byte{0x83} // prefix to store the grantee's active grant ) func GetSubaccountCidKey(subaccountID common.Hash, cid string) []byte { @@ -271,12 +277,12 @@ func GetSubaccountOrderSuffix(marketID, subaccountID common.Hash, isBuy bool) [] return append(MarketSubaccountInfix(marketID, subaccountID), getBoolPrefix(isBuy)...) } -func GetSubaccountOrderKey(marketID, subaccountID common.Hash, isBuy bool, price sdk.Dec, orderHash common.Hash) []byte { +func GetSubaccountOrderKey(marketID, subaccountID common.Hash, isBuy bool, price math.LegacyDec, orderHash common.Hash) []byte { // TODO use copy for greater efficiency return append(append(GetSubaccountOrderPrefixByMarketSubaccountDirection(marketID, subaccountID, isBuy), []byte(GetPaddedPrice(price))...), orderHash.Bytes()...) } -func GetSubaccountOrderIterationKey(price sdk.Dec, orderHash common.Hash) []byte { +func GetSubaccountOrderIterationKey(price math.LegacyDec, orderHash common.Hash) []byte { return append([]byte(GetPaddedPrice(price)), orderHash.Bytes()...) } @@ -308,7 +314,7 @@ func GetDerivativeMarketTransientMarketsKey(marketID common.Hash, isBuy bool) [] return append(DerivativeMarketOrderIndicatorPrefix, MarketDirectionPrefix(marketID, isBuy)...) } -func GetPaddedPrice(price sdk.Dec) string { +func GetPaddedPrice(price math.LegacyDec) string { dec := decimal.NewFromBigInt(price.BigInt(), -18).StringFixed(PriceDecimalPlaces) return getPaddedPriceFromString(dec) } @@ -319,7 +325,7 @@ func getPaddedPriceFromString(price string) string { return fmt.Sprintf("%032s.%s", naturalPart, decimalPart) } -func GetPriceFromPaddedPrice(paddedPrice string) sdk.Dec { +func GetPriceFromPaddedPrice(paddedPrice string) math.LegacyDec { priceString := strings.Trim(paddedPrice, "0") // remove the "." if there's no decimal component priceString = strings.TrimSuffix(priceString, ".") @@ -327,10 +333,10 @@ func GetPriceFromPaddedPrice(paddedPrice string) sdk.Dec { if strings.HasPrefix(priceString, ".") { priceString = "0" + priceString } - return sdk.MustNewDecFromStr(priceString) + return math.LegacyMustNewDecFromStr(priceString) } -func GetLimitOrderByPriceKeyPrefix(marketID common.Hash, isBuy bool, price sdk.Dec, orderHash common.Hash) []byte { +func GetLimitOrderByPriceKeyPrefix(marketID common.Hash, isBuy bool, price math.LegacyDec, orderHash common.Hash) []byte { return GetOrderByPriceKeyPrefix(marketID, isBuy, price, orderHash) } @@ -368,7 +374,7 @@ func GetLimitOrderIndexAccountAddressPrefix(marketID common.Hash, isBuy bool, ac return append(MarketDirectionPrefix(marketID, isBuy), account.Bytes()...) } -func GetOrderByPriceKeyPrefix(marketID common.Hash, isBuy bool, price sdk.Dec, orderHash common.Hash) []byte { +func GetOrderByPriceKeyPrefix(marketID common.Hash, isBuy bool, price math.LegacyDec, orderHash common.Hash) []byte { return append(append(MarketDirectionPrefix(marketID, isBuy), []byte(GetPaddedPrice(price))...), orderHash.Bytes()...) } @@ -376,12 +382,12 @@ func GetOrderByStringPriceKeyPrefix(marketID common.Hash, isBuy bool, price stri return append(append(MarketDirectionPrefix(marketID, isBuy), []byte(getPaddedPriceFromString(price))...), orderHash.Bytes()...) } -func GetConditionalOrderByTriggerPriceKeyPrefix(marketID common.Hash, isHigher bool, triggerPrice sdk.Dec, orderHash common.Hash) []byte { +func GetConditionalOrderByTriggerPriceKeyPrefix(marketID common.Hash, isHigher bool, triggerPrice math.LegacyDec, orderHash common.Hash) []byte { return append(append(MarketDirectionPrefix(marketID, isHigher), []byte(GetPaddedPrice(triggerPrice))...), orderHash.Bytes()...) } // SpotMarketDirectionPriceHashPrefix turns a marketID + direction + price + order hash to prefix used to get a spot order from the store. -func SpotMarketDirectionPriceHashPrefix(marketID common.Hash, isBuy bool, price sdk.Dec, orderHash common.Hash) []byte { +func SpotMarketDirectionPriceHashPrefix(marketID common.Hash, isBuy bool, price math.LegacyDec, orderHash common.Hash) []byte { return append(append(MarketDirectionPrefix(marketID, isBuy), []byte(GetPaddedPrice(price))...), orderHash.Bytes()...) } @@ -517,12 +523,32 @@ func GetDenomDecimalsKey(denom string) []byte { func GetSpotOrderbookLevelsKey(marketID common.Hash, isBuy bool) []byte { return append(SpotOrderbookLevelsPrefix, MarketDirectionPrefix(marketID, isBuy)...) } -func GetSpotOrderbookLevelsForPriceKey(marketID common.Hash, isBuy bool, price sdk.Dec) []byte { +func GetSpotOrderbookLevelsForPriceKey(marketID common.Hash, isBuy bool, price math.LegacyDec) []byte { return append(GetSpotOrderbookLevelsKey(marketID, isBuy), GetPaddedPrice(price)...) } func GetDerivativeOrderbookLevelsKey(marketID common.Hash, isBuy bool) []byte { return append(DerivativeOrderbookLevelsPrefix, MarketDirectionPrefix(marketID, isBuy)...) } -func GetDerivativeOrderbookLevelsForPriceKey(marketID common.Hash, isBuy bool, price sdk.Dec) []byte { +func GetDerivativeOrderbookLevelsForPriceKey(marketID common.Hash, isBuy bool, price math.LegacyDec) []byte { return append(GetDerivativeOrderbookLevelsKey(marketID, isBuy), GetPaddedPrice(price)...) } + +func GetGrantAuthorizationKey(granter, grantee sdk.AccAddress) []byte { + return append(GrantAuthorizationsPrefix, append(granter.Bytes(), grantee.Bytes()...)...) +} + +func GetGrantAuthorizationIteratorPrefix(granter sdk.AccAddress) []byte { + return append(GrantAuthorizationsPrefix, granter.Bytes()...) +} + +func GetTotalGrantAmountKey(granter sdk.AccAddress) []byte { + return append(TotalGrantAmountPrefix, granter.Bytes()...) +} + +func GetActiveGrantKey(grantee sdk.AccAddress) []byte { + return append(ActiveGrantPrefix, grantee.Bytes()...) +} + +func GetLastValidGrantDelegationCheckTimeKey(granter sdk.AccAddress) []byte { + return append(LastGranterDelegationCheckTimePrefix, granter.Bytes()...) +} diff --git a/chain/exchange/types/market.go b/chain/exchange/types/market.go index e84d685f..bff7bb51 100644 --- a/chain/exchange/types/market.go +++ b/chain/exchange/types/market.go @@ -3,7 +3,7 @@ package types import ( "strconv" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" @@ -11,11 +11,11 @@ import ( peggytypes "github.com/InjectiveLabs/sdk-go/chain/peggy/types" ) -var BinaryOptionsMarketRefundFlagPrice = sdk.NewDec(-1) +var BinaryOptionsMarketRefundFlagPrice = math.LegacyNewDec(-1) type DerivativeMarketInfo struct { Market *DerivativeMarket - MarkPrice sdk.Dec + MarkPrice math.LegacyDec Funding *PerpetualMarketFunding } @@ -90,26 +90,30 @@ func (m *SpotMarket) GetMarketType() MarketType { return MarketType_Spot } -func (m *SpotMarket) GetMakerFeeRate() sdk.Dec { +func (m *SpotMarket) GetMakerFeeRate() math.LegacyDec { return m.MakerFeeRate } -func (m *SpotMarket) GetTakerFeeRate() sdk.Dec { +func (m *SpotMarket) GetTakerFeeRate() math.LegacyDec { return m.TakerFeeRate } -func (m *SpotMarket) GetRelayerFeeShareRate() sdk.Dec { +func (m *SpotMarket) GetRelayerFeeShareRate() math.LegacyDec { return m.RelayerFeeShareRate } -func (m *SpotMarket) GetMinPriceTickSize() sdk.Dec { +func (m *SpotMarket) GetMinPriceTickSize() math.LegacyDec { return m.MinPriceTickSize } -func (m *SpotMarket) GetMinQuantityTickSize() sdk.Dec { +func (m *SpotMarket) GetMinQuantityTickSize() math.LegacyDec { return m.MinQuantityTickSize } +func (m *SpotMarket) GetMinNotional() math.LegacyDec { + return m.MinNotional +} + func (m *SpotMarket) GetMarketStatus() MarketStatus { return m.Status } @@ -149,10 +153,14 @@ func (m *DerivativeMarket) IsInactive() bool { return !m.IsActive() } -func (m *DerivativeMarket) GetMinQuantityTickSize() sdk.Dec { +func (m *DerivativeMarket) GetMinQuantityTickSize() math.LegacyDec { return m.MinQuantityTickSize } +func (m *DerivativeMarket) GetMinNotional() math.LegacyDec { + return m.MinNotional +} + type MarketType byte // nolint:all @@ -163,6 +171,21 @@ const ( MarketType_BinaryOption ) +func (m MarketType) String() string { + switch m { + case MarketType_Spot: + return "spot" + case MarketType_Perpetual: + return "perpetual" + case MarketType_BinaryOption: + return "binary_option" + case MarketType_Expiry: + return "expiry" + default: + return "" + } +} + func (m MarketType) IsSpot() bool { return m == MarketType_Spot } @@ -187,23 +210,23 @@ func (m *DerivativeMarket) GetMarketType() MarketType { } } -func (m *DerivativeMarket) GetMakerFeeRate() sdk.Dec { +func (m *DerivativeMarket) GetMakerFeeRate() math.LegacyDec { return m.MakerFeeRate } -func (m *DerivativeMarket) GetTakerFeeRate() sdk.Dec { +func (m *DerivativeMarket) GetTakerFeeRate() math.LegacyDec { return m.TakerFeeRate } -func (m *DerivativeMarket) GetRelayerFeeShareRate() sdk.Dec { +func (m *DerivativeMarket) GetRelayerFeeShareRate() math.LegacyDec { return m.RelayerFeeShareRate } -func (m *DerivativeMarket) GetInitialMarginRatio() sdk.Dec { +func (m *DerivativeMarket) GetInitialMarginRatio() math.LegacyDec { return m.InitialMarginRatio } -func (m *DerivativeMarket) GetMinPriceTickSize() sdk.Dec { +func (m *DerivativeMarket) GetMinPriceTickSize() math.LegacyDec { return m.MinPriceTickSize } @@ -234,8 +257,8 @@ func (m *BinaryOptionsMarket) GetMarketType() MarketType { return MarketType_BinaryOption } -func (m *BinaryOptionsMarket) GetInitialMarginRatio() sdk.Dec { - return sdk.OneDec() +func (m *BinaryOptionsMarket) GetInitialMarginRatio() math.LegacyDec { + return math.LegacyOneDec() } func (m *BinaryOptionsMarket) IsInactive() bool { return !m.IsActive() @@ -249,14 +272,18 @@ func (m *BinaryOptionsMarket) MarketID() common.Hash { return common.HexToHash(m.MarketId) } -func (m *BinaryOptionsMarket) GetMinPriceTickSize() sdk.Dec { +func (m *BinaryOptionsMarket) GetMinPriceTickSize() math.LegacyDec { return m.MinPriceTickSize } -func (m *BinaryOptionsMarket) GetMinQuantityTickSize() sdk.Dec { +func (m *BinaryOptionsMarket) GetMinQuantityTickSize() math.LegacyDec { return m.MinQuantityTickSize } +func (m *BinaryOptionsMarket) GetMinNotional() math.LegacyDec { + return m.MinNotional +} + func (m *BinaryOptionsMarket) GetTicker() string { return m.Ticker } @@ -265,15 +292,15 @@ func (m *BinaryOptionsMarket) GetQuoteDenom() string { return m.QuoteDenom } -func (m *BinaryOptionsMarket) GetMakerFeeRate() sdk.Dec { +func (m *BinaryOptionsMarket) GetMakerFeeRate() math.LegacyDec { return m.MakerFeeRate } -func (m *BinaryOptionsMarket) GetTakerFeeRate() sdk.Dec { +func (m *BinaryOptionsMarket) GetTakerFeeRate() math.LegacyDec { return m.TakerFeeRate } -func (m *BinaryOptionsMarket) GetRelayerFeeShareRate() sdk.Dec { +func (m *BinaryOptionsMarket) GetRelayerFeeShareRate() math.LegacyDec { return m.RelayerFeeShareRate } diff --git a/chain/exchange/types/market_admin.go b/chain/exchange/types/market_admin.go new file mode 100644 index 00000000..8b3068d3 --- /dev/null +++ b/chain/exchange/types/market_admin.go @@ -0,0 +1,75 @@ +package types + +import "cosmossdk.io/errors" + +const ( + TickerPerm = 1 << iota + MinPriceTickSizePerm = 1 << iota + MinQuantityTickSizePerm = 1 << iota + MinNotionalPerm = 1 << iota + InitialMarginRationPerm = 1 << iota + MaintenanceMarginRationPerm = 1 << iota +) + +const MaxPerm = TickerPerm | MinPriceTickSizePerm | MinQuantityTickSizePerm | MinNotionalPerm | InitialMarginRationPerm | MaintenanceMarginRationPerm + +type MarketAdminPermissions int + +func (p MarketAdminPermissions) HasPerm(pp MarketAdminPermissions) bool { + return p&pp != 0 +} + +func (p MarketAdminPermissions) CheckSpotMarketPermissions(msg *MsgUpdateSpotMarket) error { + if msg.HasTickerUpdate() && !p.HasPerm(TickerPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update market ticker") + } + + if msg.HasMinPriceTickSizeUpdate() && !p.HasPerm(MinPriceTickSizePerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update min_price_tick_size") + } + + if msg.HasMinQuantityTickSizeUpdate() && !p.HasPerm(MinQuantityTickSizePerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update market min_quantity_tick_size") + } + + if msg.HasMinNotionalUpdate() && !p.HasPerm(MinNotionalPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update market min_notional") + } + + return nil +} + +func (p MarketAdminPermissions) CheckDerivativeMarketPermissions(msg *MsgUpdateDerivativeMarket) error { + if msg.HasTickerUpdate() && !p.HasPerm(TickerPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update ticker") + } + + if msg.HasMinPriceTickSizeUpdate() && !p.HasPerm(MinPriceTickSizePerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update min_price_tick_size") + } + + if msg.HasMinQuantityTickSizeUpdate() && !p.HasPerm(MinQuantityTickSizePerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update min_quantity_tick_size") + } + + if msg.HasMinNotionalUpdate() && !p.HasPerm(MinNotionalPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update market min_notional") + } + + if msg.HasInitialMarginRatioUpdate() && !p.HasPerm(InitialMarginRationPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update initial_margin_ratio") + } + + if msg.HasMaintenanceMarginRatioUpdate() && !p.HasPerm(MaintenanceMarginRationPerm) { + return errors.Wrap(ErrInvalidAccessLevel, "admin does not have permission to update maintenance_margin_ratio") + } + + return nil +} + +func EmptyAdminInfo() AdminInfo { + return AdminInfo{ + Admin: "", + AdminPermissions: 0, + } +} \ No newline at end of file diff --git a/chain/exchange/types/msgs.go b/chain/exchange/types/msgs.go index 84ae39e5..c1fdf2c0 100644 --- a/chain/exchange/types/msgs.go +++ b/chain/exchange/types/msgs.go @@ -5,15 +5,11 @@ import ( "encoding/json" "cosmossdk.io/errors" - sdksecp256k1 "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" - "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" - "github.com/cosmos/cosmos-sdk/x/auth/signing" "github.com/ethereum/go-ethereum/common" - "github.com/InjectiveLabs/sdk-go/chain/crypto/ethsecp256k1" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" wasmxtypes "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" ) @@ -36,6 +32,7 @@ var ( _ sdk.Msg = &MsgSubaccountTransfer{} _ sdk.Msg = &MsgExternalTransfer{} _ sdk.Msg = &MsgIncreasePositionMargin{} + _ sdk.Msg = &MsgDecreasePositionMargin{} _ sdk.Msg = &MsgLiquidatePosition{} _ sdk.Msg = &MsgEmergencySettleMarket{} _ sdk.Msg = &MsgInstantSpotMarketLaunch{} @@ -50,8 +47,9 @@ var ( _ sdk.Msg = &MsgCancelBinaryOptionsOrder{} _ sdk.Msg = &MsgAdminUpdateBinaryOptionsMarket{} _ sdk.Msg = &MsgBatchCancelBinaryOptionsOrders{} - _ sdk.Msg = &MsgReclaimLockedFunds{} _ sdk.Msg = &MsgUpdateParams{} + _ sdk.Msg = &MsgUpdateSpotMarket{} + _ sdk.Msg = &MsgUpdateDerivativeMarket{} ) // exchange message types @@ -71,6 +69,7 @@ const ( TypeMsgSubaccountTransfer = "subaccountTransfer" TypeMsgExternalTransfer = "externalTransfer" TypeMsgIncreasePositionMargin = "increasePositionMargin" + TypeMsgDecreasePositionMargin = "decreasePositionMargin" TypeMsgLiquidatePosition = "liquidatePosition" TypeMsgEmergencySettleMarket = "emergencySettleMarket" TypeMsgInstantSpotMarketLaunch = "instantSpotMarketLaunch" @@ -85,8 +84,11 @@ const ( TypeMsgCancelBinaryOptionsOrder = "cancelBinaryOptionsOrder" TypeMsgAdminUpdateBinaryOptionsMarket = "adminUpdateBinaryOptionsMarket" TypeMsgBatchCancelBinaryOptionsOrders = "batchCancelBinaryOptionsOrders" - TypeMsgReclaimLockedFunds = "reclaimLockedFunds" TypeMsgUpdateParams = "updateParams" + TypeMsgUpdateSpotMarket = "updateSpotMarket" + TypeMsgUpdateDerivativeMarket = "updateDerivativeMarket" + TypeMsgAuthorizeStakeGrants = "authorizeStakeGrant" + TypeMsgActivateStakeGrant = "acceptStakeGrant" ) func (msg MsgUpdateParams) Route() string { return RouterKey } @@ -114,6 +116,184 @@ func (msg MsgUpdateParams) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{addr} } +func (msg *MsgUpdateSpotMarket) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Admin) + } + + if !IsHexHash(msg.MarketId) { + return errors.Wrap(ErrMarketInvalid, msg.MarketId) + } + + hasNoUpdate := !msg.HasTickerUpdate() && + !msg.HasMinPriceTickSizeUpdate() && + !msg.HasMinQuantityTickSizeUpdate() && + !msg.HasMinNotionalUpdate() + + if hasNoUpdate { + return errors.Wrap(ErrBadField, "no update value present") + } + + if len(msg.NewTicker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not exceed %d characters", MaxTickerLength) + } + + if msg.HasMinPriceTickSizeUpdate() { + if err := ValidateTickSize(msg.NewMinPriceTickSize); err != nil { + return errors.Wrap(ErrInvalidPriceTickSize, err.Error()) + } + } + + if msg.HasMinQuantityTickSizeUpdate() { + if err := ValidateTickSize(msg.NewMinQuantityTickSize); err != nil { + return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) + } + } + + if msg.HasMinNotionalUpdate() { + if err := ValidateMinNotional(msg.NewMinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + } + + return nil +} + +func (msg *MsgUpdateSpotMarket) GetSigners() []sdk.AccAddress { + return []sdk.AccAddress{sdk.MustAccAddressFromBech32(msg.Admin)} +} + +func (msg *MsgUpdateSpotMarket) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +func (msg *MsgUpdateSpotMarket) Route() string { + return RouterKey +} + +func (msg *MsgUpdateSpotMarket) Type() string { + return TypeMsgUpdateSpotMarket +} + +func (msg *MsgUpdateSpotMarket) HasTickerUpdate() bool { + return msg.NewTicker != "" +} + +func (msg *MsgUpdateSpotMarket) HasMinPriceTickSizeUpdate() bool { + return !msg.NewMinPriceTickSize.IsNil() && !msg.NewMinPriceTickSize.IsZero() +} + +func (msg *MsgUpdateSpotMarket) HasMinQuantityTickSizeUpdate() bool { + return !msg.NewMinQuantityTickSize.IsNil() && !msg.NewMinQuantityTickSize.IsZero() +} + +func (msg *MsgUpdateSpotMarket) HasMinNotionalUpdate() bool { + return !msg.NewMinNotional.IsNil() && !msg.NewMinNotional.IsZero() +} + +func (msg *MsgUpdateDerivativeMarket) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Admin); err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Admin) + } + + if !IsHexHash(msg.MarketId) { + return errors.Wrap(ErrMarketInvalid, msg.MarketId) + } + + hasNoUpdate := !msg.HasTickerUpdate() && + !msg.HasMinPriceTickSizeUpdate() && + !msg.HasMinNotionalUpdate() && + !msg.HasMinQuantityTickSizeUpdate() && + !msg.HasInitialMarginRatioUpdate() && + !msg.HasMaintenanceMarginRatioUpdate() + + if hasNoUpdate { + return errors.Wrap(ErrBadField, "no update value present") + } + + if len(msg.NewTicker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not exceed %d characters", MaxTickerLength) + } + + if msg.HasMinPriceTickSizeUpdate() { + if err := ValidateTickSize(msg.NewMinPriceTickSize); err != nil { + return errors.Wrap(ErrInvalidPriceTickSize, err.Error()) + } + } + + if msg.HasMinQuantityTickSizeUpdate() { + if err := ValidateTickSize(msg.NewMinQuantityTickSize); err != nil { + return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) + } + } + + if msg.HasMinNotionalUpdate() { + if err := ValidateMinNotional(msg.NewMinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + } + + if msg.HasInitialMarginRatioUpdate() { + if err := ValidateMarginRatio(msg.NewInitialMarginRatio); err != nil { + return err + } + } + + if msg.HasMaintenanceMarginRatioUpdate() { + if err := ValidateMarginRatio(msg.NewMaintenanceMarginRatio); err != nil { + return err + } + } + + if msg.HasInitialMarginRatioUpdate() && msg.HasMaintenanceMarginRatioUpdate() { + if msg.NewInitialMarginRatio.LT(msg.NewMaintenanceMarginRatio) { + return ErrMarginsRelation + } + } + + return nil +} + +func (msg *MsgUpdateDerivativeMarket) GetSigners() []sdk.AccAddress { + return []sdk.AccAddress{sdk.MustAccAddressFromBech32(msg.Admin)} +} + +func (msg *MsgUpdateDerivativeMarket) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +func (msg *MsgUpdateDerivativeMarket) Route() string { + return RouterKey +} + +func (msg *MsgUpdateDerivativeMarket) Type() string { + return TypeMsgUpdateDerivativeMarket +} + +func (msg *MsgUpdateDerivativeMarket) HasTickerUpdate() bool { + return msg.NewTicker != "" +} + +func (msg *MsgUpdateDerivativeMarket) HasMinPriceTickSizeUpdate() bool { + return !msg.NewMinPriceTickSize.IsNil() && !msg.NewMinPriceTickSize.IsZero() +} + +func (msg *MsgUpdateDerivativeMarket) HasMinQuantityTickSizeUpdate() bool { + return !msg.NewMinQuantityTickSize.IsNil() && !msg.NewMinQuantityTickSize.IsZero() +} + +func (msg *MsgUpdateDerivativeMarket) HasInitialMarginRatioUpdate() bool { + return !msg.NewInitialMarginRatio.IsNil() && !msg.NewInitialMarginRatio.IsZero() +} + +func (msg *MsgUpdateDerivativeMarket) HasMaintenanceMarginRatioUpdate() bool { + return !msg.NewMaintenanceMarginRatio.IsNil() && !msg.NewMaintenanceMarginRatio.IsZero() +} + +func (msg *MsgUpdateDerivativeMarket) HasMinNotionalUpdate() bool { + return !msg.NewMinNotional.IsNil() && !msg.NewMinNotional.IsZero() +} + func (o *SpotOrder) ValidateBasic(senderAddr sdk.AccAddress) error { if !IsHexHash(o.MarketId) { return errors.Wrap(ErrMarketInvalid, o.MarketId) @@ -148,19 +328,19 @@ func (o *OrderInfo) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPriceBand, return errors.Wrap(ErrInvalidCid, o.Cid) } - if o.Quantity.IsNil() || o.Quantity.LTE(sdk.ZeroDec()) || o.Quantity.GT(MaxOrderQuantity) { + if o.Quantity.IsNil() || o.Quantity.LTE(math.LegacyZeroDec()) || o.Quantity.GT(MaxOrderQuantity) { return errors.Wrap(ErrInvalidQuantity, o.Quantity.String()) } if hasBinaryPriceBand { - // o.Price.GT(MaxOrderPrice) is correct (as opposed to o.Price.GT(sdk.OneDec())), because the price here is scaled + // o.Price.GT(MaxOrderPrice) is correct (as opposed to o.Price.GT(math.LegacyOneDec())), because the price here is scaled // and we have no idea what the scale factor of the market is here when we execute ValidateBasic(), and thus we allow // very high ceiling price to cover all cases - if o.Price.IsNil() || o.Price.LT(sdk.ZeroDec()) || o.Price.GT(MaxOrderPrice) { + if o.Price.IsNil() || o.Price.LT(math.LegacyZeroDec()) || o.Price.GT(MaxOrderPrice) { return errors.Wrap(ErrInvalidPrice, o.Price.String()) } } else { - if o.Price.IsNil() || o.Price.LTE(sdk.ZeroDec()) || o.Price.GT(MaxOrderPrice) { + if o.Price.IsNil() || o.Price.LTE(math.LegacyZeroDec()) || o.Price.GT(MaxOrderPrice) { return errors.Wrap(ErrInvalidPrice, o.Price.String()) } } @@ -184,8 +364,8 @@ func (o *DerivativeOrder) ValidateBasic(senderAddr sdk.AccAddress, hasBinaryPric return errors.Wrap(ErrUnrecognizedOrderType, string(o.OrderType)) } - if o.Margin.IsNil() || o.Margin.LT(sdk.ZeroDec()) { - return errors.Wrap(ErrInsufficientOrderMargin, o.Margin.String()) + if o.Margin.IsNil() || o.Margin.LT(math.LegacyZeroDec()) { + return errors.Wrap(ErrInsufficientMargin, o.Margin.String()) } if o.Margin.GT(MaxOrderMargin) { @@ -360,7 +540,7 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if msg.BaseDenom == "" { return errors.Wrap(ErrInvalidBaseDenom, "base denom should not be empty") @@ -378,6 +558,9 @@ func (msg MsgInstantSpotMarketLaunch) ValidateBasic() error { if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return nil } @@ -409,7 +592,7 @@ func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") @@ -442,6 +625,9 @@ func (msg MsgInstantPerpetualMarketLaunch) ValidateBasic() error { if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return nil } @@ -475,7 +661,7 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + 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") @@ -516,6 +702,9 @@ func (msg MsgInstantBinaryOptionsMarketLaunch) ValidateBasic() error { if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return nil } @@ -549,7 +738,7 @@ func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } if msg.Ticker == "" || len(msg.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") @@ -586,6 +775,9 @@ func (msg MsgInstantExpiryFuturesMarketLaunch) ValidateBasic() error { if err := ValidateTickSize(msg.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(msg.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return nil } @@ -831,7 +1023,7 @@ func NewMsgCreateBinaryOptionsLimitOrder( market *BinaryOptionsMarket, subaccountID string, feeRecipient string, - price, quantity sdk.Dec, + price, quantity math.LegacyDec, orderType OrderType, isReduceOnly bool, ) *MsgCreateBinaryOptionsLimitOrder { @@ -976,7 +1168,7 @@ func NewMsgCreateBinaryOptionsMarketOrder( market *BinaryOptionsMarket, subaccountID string, feeRecipient string, - price, quantity sdk.Dec, + price, quantity math.LegacyDec, orderType OrderType, isReduceOnly bool, ) *MsgCreateBinaryOptionsMarketOrder { @@ -1309,8 +1501,7 @@ func (msg *MsgExternalTransfer) ValidateBasic() error { return errors.Wrap(ErrBadSubaccountID, msg.SourceSubaccountId) } - _, ok := IsValidSubaccountID(msg.DestinationSubaccountId) - if !ok || IsDefaultSubaccountID(common.HexToHash(msg.DestinationSubaccountId)) { + if _, ok := IsValidSubaccountID(msg.DestinationSubaccountId); !ok { return errors.Wrap(ErrBadSubaccountID, msg.DestinationSubaccountId) } @@ -1382,6 +1573,54 @@ func (msg *MsgIncreasePositionMargin) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } +func (msg *MsgDecreasePositionMargin) Route() string { + return RouterKey +} + +func (msg *MsgDecreasePositionMargin) Type() string { + return TypeMsgDecreasePositionMargin +} + +func (msg *MsgDecreasePositionMargin) ValidateBasic() error { + senderAddr, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) + } + + if !IsHexHash(msg.MarketId) { + return errors.Wrap(ErrMarketInvalid, msg.MarketId) + } + + if !msg.Amount.IsPositive() { + return errors.Wrap(sdkerrors.ErrInvalidCoins, msg.Amount.String()) + } + + if msg.Amount.GT(MaxOrderMargin) { + return errors.Wrap(ErrTooMuchOrderMargin, msg.Amount.String()) + } + + if err := CheckValidSubaccountIDOrNonce(senderAddr, msg.SourceSubaccountId); err != nil { + return err + } + if err := CheckValidSubaccountIDOrNonce(senderAddr, msg.DestinationSubaccountId); err != nil { + return err + } + + return nil +} + +func (msg *MsgDecreasePositionMargin) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +func (msg *MsgDecreasePositionMargin) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + func (msg *MsgPrivilegedExecuteContract) Route() string { return RouterKey } @@ -1588,17 +1827,17 @@ func (msg MsgBatchUpdateOrders) ValidateBasic() error { return err } - hasDuplicateSpotMarketIds := HasDuplicatesHexHash(msg.SpotMarketIdsToCancelAll) - if hasDuplicateSpotMarketIds { + hasDuplicateSpotMarketIDs := HasDuplicatesHexHash(msg.SpotMarketIdsToCancelAll) + if hasDuplicateSpotMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all spot market ids") } - hasDuplicateDerivativesMarketIds := HasDuplicatesHexHash(msg.DerivativeMarketIdsToCancelAll) - if hasDuplicateDerivativesMarketIds { + hasDuplicateDerivativesMarketIDs := HasDuplicatesHexHash(msg.DerivativeMarketIdsToCancelAll) + if hasDuplicateDerivativesMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all derivative market ids") } - hasDuplicateBinaryOptionsMarketIds := HasDuplicatesHexHash(msg.BinaryOptionsMarketIdsToCancelAll) - if hasDuplicateBinaryOptionsMarketIds { + hasDuplicateBinaryOptionsMarketIDs := HasDuplicatesHexHash(msg.BinaryOptionsMarketIdsToCancelAll) + if hasDuplicateBinaryOptionsMarketIDs { return errors.Wrap(ErrInvalidBatchMsgUpdate, "msg contains duplicate cancel all binary options market ids") } } @@ -1769,7 +2008,7 @@ func (msg *MsgAdminUpdateBinaryOptionsMarket) ValidateBasic() error { msg.SettlementPrice.IsNil(): // ok case msg.SettlementPrice.Equal(BinaryOptionsMarketRefundFlagPrice), - msg.SettlementPrice.GTE(sdk.ZeroDec()) && msg.SettlementPrice.LTE(MaxBinaryOptionsOrderPrice): + msg.SettlementPrice.GTE(math.LegacyZeroDec()) && msg.SettlementPrice.LTE(MaxBinaryOptionsOrderPrice): if msg.Status != MarketStatus_Demolished { return errors.Wrapf(ErrInvalidMarketStatus, "status should be set to demolished when the settlement price is set, status: %s", msg.Status.String()) } @@ -1801,97 +2040,31 @@ func (msg *MsgAdminUpdateBinaryOptionsMarket) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } -func (msg *MsgReclaimLockedFunds) Route() string { - return RouterKey -} +func (msg *MsgAuthorizeStakeGrants) Route() string { return RouterKey } -func (msg *MsgReclaimLockedFunds) Type() string { - return TypeMsgReclaimLockedFunds -} +func (msg *MsgAuthorizeStakeGrants) Type() string { return TypeMsgAuthorizeStakeGrants } -func (msg *MsgReclaimLockedFunds) ValidateBasic() error { - _, err := sdk.AccAddressFromBech32(msg.Sender) - if err != nil { +func (msg *MsgAuthorizeStakeGrants) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } - // TODO: restrict the msg.Sender to be a specific EOA? - // Placeholder for now obviously, if we decide so, change this check to the actual address - // if !senderAddr.Equals(senderAddr) { - // return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - // } - - lockedPubKey := sdksecp256k1.PubKey{ - Key: msg.LockedAccountPubKey, - } - correctPubKey := ethsecp256k1.PubKey{ - Key: msg.LockedAccountPubKey, - } - lockedAddress := sdk.AccAddress(lockedPubKey.Address()) - recipientAddress := sdk.AccAddress(correctPubKey.Address()) - - data := ConstructFundsReclaimMessage( - recipientAddress, - lockedAddress, - ) - - msgSignData := MsgSignData{ - Signer: lockedAddress.Bytes(), - Data: data, - } - - if err := msgSignData.ValidateBasic(); err != nil { - return nil - } - - tx := legacytx.NewStdTx( - []sdk.Msg{&MsgSignDoc{ - SignType: "sign/MsgSignData", - Value: msgSignData, - }}, - legacytx.StdFee{ - Amount: sdk.Coins{}, - Gas: 0, - }, - //nolint:staticcheck // we know it's deprecated and we think it's okay - []legacytx.StdSignature{ - { - PubKey: &lockedPubKey, - Signature: msg.Signature, - }, - }, - "", - ) - - if err := tx.ValidateBasic(); err != nil { - return err - } - - aminoJSONHandler := legacytx.NewStdTxSignModeHandler() + for idx := range msg.Grants { + grant := msg.Grants[idx] - signingData := signing.SignerData{ - ChainID: "", - AccountNumber: 0, - Sequence: 0, - } + if _, err := sdk.AccAddressFromBech32(grant.Grantee); err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, grant.Grantee) + } - signBz, err := aminoJSONHandler.GetSignBytes(signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, signingData, tx) - if err != nil { - return err - } + if grant.Amount.IsNegative() || grant.Amount.GT(MaxTokenInt) { + return errors.Wrap(ErrInvalidStakeGrant, grant.Amount.String()) - if !lockedPubKey.VerifySignature(signBz, tx.GetSignatures()[0]) { - return errors.Wrapf(ErrBadField, "signature verification failed with signature %s on signBz %s, msg.Signature is %s", common.Bytes2Hex(tx.GetSignatures()[0]), string(signBz), common.Bytes2Hex(msg.Signature)) + } } - return nil } -func (msg *MsgReclaimLockedFunds) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) -} - -func (msg *MsgReclaimLockedFunds) GetSigners() []sdk.AccAddress { +func (msg *MsgAuthorizeStakeGrants) GetSigners() []sdk.AccAddress { sender, err := sdk.AccAddressFromBech32(msg.Sender) if err != nil { panic(err) @@ -1899,54 +2072,34 @@ func (msg *MsgReclaimLockedFunds) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{sender} } -// / Skeleton sdk.Msg interface implementation -var _ sdk.Msg = &MsgSignData{} -var _ legacytx.LegacyMsg = &MsgSignData{} - -func (msg *MsgSignData) ValidateBasic() error { - if msg.Signer.Empty() { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Signer.String()) - } - - return nil +// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing +func (msg *MsgAuthorizeStakeGrants) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) } -func (msg *MsgSignData) GetSigners() []sdk.AccAddress { - return []sdk.AccAddress{msg.Signer} -} +func (msg *MsgActivateStakeGrant) Route() string { return RouterKey } -func (m *MsgSignData) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} +func (msg *MsgActivateStakeGrant) Type() string { return TypeMsgActivateStakeGrant } -func (m *MsgSignData) Route() string { - return RouterKey -} - -func (m *MsgSignData) Type() string { - return "signData" -} - -// / Skeleton sdk.Msg interface implementation -var _ sdk.Msg = &MsgSignDoc{} -var _ legacytx.LegacyMsg = &MsgSignDoc{} +func (msg *MsgActivateStakeGrant) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) + } -func (msg *MsgSignDoc) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Granter); err != nil { + return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Granter) + } return nil } -func (msg *MsgSignDoc) GetSigners() []sdk.AccAddress { - return msg.Value.GetSigners() -} - -func (m *MsgSignDoc) GetSignBytes() []byte { - return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(m)) -} - -func (m *MsgSignDoc) Route() string { - return RouterKey +func (msg *MsgActivateStakeGrant) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} } -func (m *MsgSignDoc) Type() string { - return "signDoc" +func (msg *MsgActivateStakeGrant) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) } diff --git a/chain/exchange/types/orderbook.go b/chain/exchange/types/orderbook.go index 00daf561..62b59125 100644 --- a/chain/exchange/types/orderbook.go +++ b/chain/exchange/types/orderbook.go @@ -5,7 +5,7 @@ import ( "sort" "strings" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" "github.com/olekukonko/tablewriter" ) @@ -45,7 +45,7 @@ func (o *Orderbook) IsCrossed() bool { return false } - lowestSellPrice := sdk.ZeroDec() + lowestSellPrice := math.LegacyZeroDec() isQuantityAllZero := true @@ -126,7 +126,7 @@ func (o *Orderbook) Equals(other *Orderbook) bool { } // getReadableDec is a test utility function to return a readable representation of decimal strings -func getReadableDec(d sdk.Dec) string { +func getReadableDec(d math.LegacyDec) string { if d.IsNil() { return d.String() } @@ -141,17 +141,17 @@ func getReadableDec(d sdk.Dec) string { return dec } -func NewLevel(price, quantity sdk.Dec) *Level { +func NewLevel(price, quantity math.LegacyDec) *Level { return &Level{ P: price, Q: quantity, } } -func (l *Level) GetPrice() sdk.Dec { +func (l *Level) GetPrice() math.LegacyDec { return l.P } -func (l *Level) GetQuantity() sdk.Dec { +func (l *Level) GetQuantity() math.LegacyDec { return l.Q } diff --git a/chain/exchange/types/params.go b/chain/exchange/types/params.go index f5a45be8..fbec3e19 100644 --- a/chain/exchange/types/params.go +++ b/chain/exchange/types/params.go @@ -3,7 +3,7 @@ package types import ( "fmt" - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -21,11 +21,11 @@ const ( // funding is consistently applied on the hour for all perpetual markets. DefaultFundingMultipleSeconds int64 = 3600 - // SpotMarketInstantListingFee is 1000 INJ - SpotMarketInstantListingFee int64 = 1000 + // SpotMarketInstantListingFee is 20 INJ + SpotMarketInstantListingFee int64 = 20 - // DerivativeMarketInstantListingFee is 1000 INJ - DerivativeMarketInstantListingFee int64 = 1000 + // DerivativeMarketInstantListingFee is 20 INJ + DerivativeMarketInstantListingFee int64 = 20 // BinaryOptionsMarketInstantListingFee is 100 INJ BinaryOptionsMarketInstantListingFee int64 = 100 @@ -42,23 +42,29 @@ const ( // MaxSubaccountNonceLength restricts the size of a subaccount number from 0 to 999 MaxSubaccountNonceLength = 3 + + // MaxGranterDelegations is the maximum number of delegations that are checked for stake granter + MaxGranterDelegations = 25 ) -var MaxBinaryOptionsOrderPrice = sdk.OneDec() +var MaxBinaryOptionsOrderPrice = math.LegacyOneDec() // would be $0.000001 for USDT -var MinDerivativeOrderPrice = sdk.OneDec() +var MinDerivativeOrderPrice = math.LegacyOneDec() // MaxOrderPrice equals 10^32 -var MaxOrderPrice = sdk.MustNewDecFromStr("100000000000000000000000000000000") +var MaxOrderPrice = math.LegacyMustNewDecFromStr("100000000000000000000000000000000") // MaxOrderMargin equals 10^32 -var MaxOrderMargin = sdk.MustNewDecFromStr("100000000000000000000000000000000") +var MaxOrderMargin = math.LegacyMustNewDecFromStr("100000000000000000000000000000000") + +// MaxTokenInt equals 100,000,000 * 10^18 +var MaxTokenInt, _ = math.NewIntFromString("100000000000000000000000000") -var MaxOrderQuantity = sdk.MustNewDecFromStr("100000000000000000000000000000000") -var MaxFeeMultiplier = sdk.MustNewDecFromStr("100") +var MaxOrderQuantity = math.LegacyMustNewDecFromStr("100000000000000000000000000000000") +var MaxFeeMultiplier = math.LegacyMustNewDecFromStr("100") -var minMarginRatio = sdk.NewDecWithPrec(5, 3) +var minMarginRatio = math.LegacyNewDecWithPrec(5, 3) // Parameter keys var ( @@ -98,27 +104,27 @@ func ParamKeyTable() paramtypes.KeyTable { func NewParams( spotMarketInstantListingFee sdk.Coin, derivativeMarketInstantListingFee sdk.Coin, - defaultSpotMakerFee sdk.Dec, - defaultSpotTakerFee sdk.Dec, - defaultDerivativeMakerFee sdk.Dec, - defaultDerivativeTakerFee sdk.Dec, - defaultInitialMarginRatio sdk.Dec, - defaultMaintenanceMarginRatio sdk.Dec, + defaultSpotMakerFee math.LegacyDec, + defaultSpotTakerFee math.LegacyDec, + defaultDerivativeMakerFee math.LegacyDec, + defaultDerivativeTakerFee math.LegacyDec, + defaultInitialMarginRatio math.LegacyDec, + defaultMaintenanceMarginRatio math.LegacyDec, defaultFundingInterval int64, fundingMultiple int64, - relayerFeeShare sdk.Dec, - defaultHourlyFundingRateCap sdk.Dec, - defaultHourlyInterestRate sdk.Dec, + relayerFeeShare math.LegacyDec, + defaultHourlyFundingRateCap math.LegacyDec, + defaultHourlyInterestRate math.LegacyDec, maxDerivativeSideOrderCount uint32, - injRewardStakedRequirementThreshold sdkmath.Int, + injRewardStakedRequirementThreshold math.Int, tradingRewardsVestingDuration int64, - liquidatorRewardShareRate sdk.Dec, + liquidatorRewardShareRate math.LegacyDec, binaryOptionsMarketInstantListingFee sdk.Coin, atomicMarketOrderAccessLevel AtomicMarketOrderAccessLevel, - spotAtomicMarketOrderFeeMultiplier sdk.Dec, - derivativeAtomicMarketOrderFeeMultiplier sdk.Dec, - binaryOptionsAtomicMarketOrderFeeMultiplier sdk.Dec, - minimalProtocolFeeRate sdk.Dec, + spotAtomicMarketOrderFeeMultiplier math.LegacyDec, + derivativeAtomicMarketOrderFeeMultiplier math.LegacyDec, + binaryOptionsAtomicMarketOrderFeeMultiplier math.LegacyDec, + minimalProtocolFeeRate math.LegacyDec, postOnlyModeHeightThreshold int64, ) Params { return Params{ @@ -184,29 +190,29 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { // DefaultParams returns a default set of parameters. func DefaultParams() Params { return Params{ - SpotMarketInstantListingFee: sdk.NewCoin("inj", sdkmath.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), - DerivativeMarketInstantListingFee: sdk.NewCoin("inj", sdkmath.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), - DefaultSpotMakerFeeRate: sdk.NewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultSpotTakerFeeRate: sdk.NewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultDerivativeMakerFeeRate: sdk.NewDecWithPrec(-1, 4), // default -0.01% maker fees - DefaultDerivativeTakerFeeRate: sdk.NewDecWithPrec(1, 3), // default 0.1% taker fees - DefaultInitialMarginRatio: sdk.NewDecWithPrec(5, 2), // default 5% initial margin ratio - DefaultMaintenanceMarginRatio: sdk.NewDecWithPrec(2, 2), // default 2% maintenance margin ratio + SpotMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(SpotMarketInstantListingFee, 18)), + DerivativeMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(DerivativeMarketInstantListingFee, 18)), + DefaultSpotMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultSpotTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultDerivativeMakerFeeRate: math.LegacyNewDecWithPrec(-1, 4), // default -0.01% maker fees + DefaultDerivativeTakerFeeRate: math.LegacyNewDecWithPrec(1, 3), // default 0.1% taker fees + DefaultInitialMarginRatio: math.LegacyNewDecWithPrec(5, 2), // default 5% initial margin ratio + DefaultMaintenanceMarginRatio: math.LegacyNewDecWithPrec(2, 2), // default 2% maintenance margin ratio DefaultFundingInterval: DefaultFundingIntervalSeconds, FundingMultiple: DefaultFundingMultipleSeconds, - RelayerFeeShareRate: sdk.NewDecWithPrec(40, 2), // default 40% relayer fee share - DefaultHourlyFundingRateCap: sdk.NewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate - DefaultHourlyInterestRate: sdk.NewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 + RelayerFeeShareRate: math.LegacyNewDecWithPrec(40, 2), // default 40% relayer fee share + DefaultHourlyFundingRateCap: math.LegacyNewDecWithPrec(625, 6), // default 0.0625% max hourly funding rate + DefaultHourlyInterestRate: math.LegacyNewDecWithPrec(416666, 11), // 0.01% daily interest rate = 0.0001 / 24 = 0.00000416666 MaxDerivativeOrderSideCount: MaxDerivativeOrderSideCount, - InjRewardStakedRequirementThreshold: sdkmath.NewIntWithDecimal(100, 18), // 100 INJ - TradingRewardsVestingDuration: 604800, // 7 days - LiquidatorRewardShareRate: sdk.NewDecWithPrec(5, 2), // 5% liquidator reward - BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", sdkmath.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), + InjRewardStakedRequirementThreshold: math.NewIntWithDecimal(100, 18), // 100 INJ + TradingRewardsVestingDuration: 604800, // 7 days + LiquidatorRewardShareRate: math.LegacyNewDecWithPrec(5, 2), // 5% liquidator reward + BinaryOptionsMarketInstantListingFee: sdk.NewCoin("inj", math.NewIntWithDecimal(BinaryOptionsMarketInstantListingFee, 18)), AtomicMarketOrderAccessLevel: AtomicMarketOrderAccessLevel_SmartContractsOnly, - SpotAtomicMarketOrderFeeMultiplier: sdk.NewDecWithPrec(25, 1), // default 2.5 multiplier - DerivativeAtomicMarketOrderFeeMultiplier: sdk.NewDecWithPrec(25, 1), // default 2.5 multiplier - BinaryOptionsAtomicMarketOrderFeeMultiplier: sdk.NewDecWithPrec(25, 1), // default 2.5 multiplier - MinimalProtocolFeeRate: sdk.MustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate + SpotAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + DerivativeAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + BinaryOptionsAtomicMarketOrderFeeMultiplier: math.LegacyNewDecWithPrec(25, 1), // default 2.5 multiplier + MinimalProtocolFeeRate: math.LegacyMustNewDecFromStr("0.00005"), // default 0.005% minimal fee rate IsInstantDerivativeMarketLaunchEnabled: false, PostOnlyModeHeightThreshold: 0, } @@ -283,6 +289,9 @@ func (p Params) Validate() error { if err := validatePostOnlyModeHeightThreshold(p.PostOnlyModeHeightThreshold); err != nil { return fmt.Errorf("post_only_mode_height_threshold is incorrect: %w", err) } + if err := validateAdmins(p.ExchangeAdmins); err != nil { + return fmt.Errorf("ExchangeAdmins is incorrect: %w", err) + } return nil } @@ -326,7 +335,7 @@ func validateBinaryOptionsMarketInstantListingFee(i interface{}) error { } func ValidateFee(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -338,7 +347,7 @@ func ValidateFee(i interface{}) error { if v.IsNegative() { return fmt.Errorf("exchange fee cannot be negative: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(math.LegacyOneDec()) { return fmt.Errorf("exchange fee cannot be greater than 1: %s", v) } @@ -346,7 +355,7 @@ func ValidateFee(i interface{}) error { } func ValidateMakerFee(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -355,11 +364,11 @@ func ValidateMakerFee(i interface{}) error { return fmt.Errorf("exchange fee cannot be nil: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(math.LegacyOneDec()) { return fmt.Errorf("exchange fee cannot be greater than 1: %s", v) } - if v.LT(sdk.OneDec().Neg()) { + if v.LT(math.LegacyOneDec().Neg()) { return fmt.Errorf("exchange fee cannot be less than -1: %s", v) } @@ -367,7 +376,7 @@ func ValidateMakerFee(i interface{}) error { } func ValidateHourlyFundingRateCap(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -385,7 +394,7 @@ func ValidateHourlyFundingRateCap(i interface{}) error { return fmt.Errorf("hourly funding rate cap cannot be zero: %s", v) } - if v.GT(sdk.NewDecWithPrec(3, 2)) { + if v.GT(math.LegacyNewDecWithPrec(3, 2)) { return fmt.Errorf("hourly funding rate cap cannot be larger than 3 percent: %s", v) } @@ -393,7 +402,7 @@ func ValidateHourlyFundingRateCap(i interface{}) error { } func ValidateHourlyInterestRate(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) @@ -407,7 +416,7 @@ func ValidateHourlyInterestRate(i interface{}) error { return fmt.Errorf("hourly interest rate cannot be negative: %s", v) } - if v.GT(sdk.NewDecWithPrec(1, 2)) { + if v.GT(math.LegacyNewDecWithPrec(1, 2)) { return fmt.Errorf("hourly interest rate cannot be larger than 1 percent: %s", v) } @@ -415,7 +424,7 @@ func ValidateHourlyInterestRate(i interface{}) error { } func ValidateTickSize(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -437,12 +446,12 @@ func ValidateTickSize(i interface{}) error { } // 1e18 scaleFactor - scaleFactor := sdk.NewDec(1000000000000000000) + scaleFactor := math.LegacyNewDec(1000000000000000000) // v can be a decimal (e.g. 1e-18) so we scale by 1e18 scaledValue := v.Mul(scaleFactor) - power := sdk.NewDec(1) - ten := sdk.NewDec(10) + power := math.LegacyNewDec(1) + ten := math.LegacyNewDec(10) // determine whether scaledValue is a power of 10 for power.LT(scaledValue) { @@ -456,8 +465,25 @@ func ValidateTickSize(i interface{}) error { return nil } +func ValidateMinNotional(i interface{}) error { + v, ok := i.(math.LegacyDec) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if v.IsNil() { + return fmt.Errorf("min notional cannot be nil") + } + + if v.IsNegative() { + return fmt.Errorf("min notional cannot be negative: %s", v) + } + + return nil +} + func ValidateMarginRatio(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -468,7 +494,7 @@ func ValidateMarginRatio(i interface{}) error { if v.LT(minMarginRatio) { return fmt.Errorf("margin ratio cannot be less than minimum: %s", v) } - if v.GTE(sdk.OneDec()) { + if v.GTE(math.LegacyOneDec()) { return fmt.Errorf("margin ratio cannot be greater than or equal to 1: %s", v) } @@ -501,6 +527,29 @@ func validatePostOnlyModeHeightThreshold(i interface{}) error { return nil } +func validateAdmins(i interface{}) error { + v, ok := i.([]string) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + admins := make(map[string]struct{}) + + for _, admin := range v { + adminAddr, err := sdk.AccAddressFromBech32(admin) + if err != nil { + return fmt.Errorf("invalid admin address: %s", admin) + } + + if _, found := admins[adminAddr.String()]; found { + return fmt.Errorf("duplicate admin: %s", admin) + } + admins[adminAddr.String()] = struct{}{} + } + + return nil +} + func validateFundingMultiple(i interface{}) error { v, ok := i.(int64) if !ok { @@ -528,7 +577,7 @@ func validateDerivativeOrderSideCount(i interface{}) error { } func validateInjRewardStakedRequirementThreshold(i interface{}) error { - v, ok := i.(sdkmath.Int) + v, ok := i.(math.Int) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -558,7 +607,7 @@ func validateTradingRewardsVestingDuration(i interface{}) error { } func validateLiquidatorRewardShareRate(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -569,7 +618,7 @@ func validateLiquidatorRewardShareRate(i interface{}) error { if v.IsNegative() { return fmt.Errorf("reward ratio cannot be negative: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(math.LegacyOneDec()) { return fmt.Errorf("reward ratio cannot be greater than 1: %s", v) } @@ -588,7 +637,7 @@ func validateAtomicMarketOrderAccessLevel(i interface{}) error { } func validateAtomicMarketOrderFeeMultiplier(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(math.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -596,7 +645,7 @@ func validateAtomicMarketOrderFeeMultiplier(i interface{}) error { if v.IsNil() { return fmt.Errorf("atomicMarketOrderFeeMultiplier cannot be nil: %s", v) } - if v.LT(sdk.OneDec()) { + if v.LT(math.LegacyOneDec()) { return fmt.Errorf("atomicMarketOrderFeeMultiplier cannot be less than one: %s", v) } if v.GT(MaxFeeMultiplier) { diff --git a/chain/exchange/types/positions.go b/chain/exchange/types/positions.go index 10899a5c..3928f708 100644 --- a/chain/exchange/types/positions.go +++ b/chain/exchange/types/positions.go @@ -1,12 +1,12 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) type positionPayout struct { - Payout sdk.Dec - PnlNotional sdk.Dec + Payout math.LegacyDec + PnlNotional math.LegacyDec IsProfitable bool } @@ -33,12 +33,12 @@ func (p *DerivativePosition) Copy() *DerivativePosition { func (m *PositionDelta) IsShort() bool { return !m.IsLong } // NewPosition initializes a new position with a given cumulativeFundingEntry (should be nil for non-perpetual markets) -func NewPosition(isLong bool, cumulativeFundingEntry sdk.Dec) *Position { +func NewPosition(isLong bool, cumulativeFundingEntry math.LegacyDec) *Position { position := &Position{ IsLong: isLong, - Quantity: sdk.ZeroDec(), - EntryPrice: sdk.ZeroDec(), - Margin: sdk.ZeroDec(), + Quantity: math.LegacyZeroDec(), + EntryPrice: math.LegacyZeroDec(), + Margin: math.LegacyZeroDec(), } if !cumulativeFundingEntry.IsNil() { position.CumulativeFundingEntry = cumulativeFundingEntry @@ -48,7 +48,7 @@ func NewPosition(isLong bool, cumulativeFundingEntry sdk.Dec) *Position { // GetEffectiveMarginRatio returns the effective margin ratio of the position, based on the input closing price. // CONTRACT: position must already be funding-adjusted (if perpetual) and have positive quantity. -func (p *Position) GetEffectiveMarginRatio(closingPrice, closingFee sdk.Dec) (marginRatio sdk.Dec) { +func (p *Position) GetEffectiveMarginRatio(closingPrice, closingFee math.LegacyDec) (marginRatio math.LegacyDec) { // nolint:all // marginRatio = (margin + quantity * PnlPerContract) / (closingPrice * quantity) effectiveMargin := p.Margin.Add(p.GetPayoutFromPnl(closingPrice, p.Quantity)).Sub(closingFee) @@ -64,7 +64,7 @@ func (p *Position) GetEffectiveMarginRatio(closingPrice, closingFee sdk.Dec) (ma // => Entry price adjustment for sells // (settlementPrice - newEntryPrice) * quantity = (settlementPrice - entryPrice) * quantity * (1 - missingFundsRate) // newEntryPrice = entryPrice - entryPrice * haircutPercentage + settlementPrice * haircutPercentage -func (p *Position) ApplyProfitHaircutForDerivatives(deficitAmount, totalProfits, settlementPrice sdk.Dec) { +func (p *Position) ApplyProfitHaircutForDerivatives(deficitAmount, totalProfits, settlementPrice math.LegacyDec) { // haircutPercentage = deficitAmount / totalProfits // To preserve precision, the division by totalProfits is done last. // newEntryPrice = haircutPercentage * (settlementPrice - entryPrice) + entryPrice @@ -73,20 +73,20 @@ func (p *Position) ApplyProfitHaircutForDerivatives(deficitAmount, totalProfits, // profitable position but with negative margin, we didn't account for negative margin previously, // so we can safely add it if payout becomes negative from haircut - newPositionPayout := p.GetPayoutIfFullyClosing(settlementPrice, sdk.ZeroDec()).Payout + newPositionPayout := p.GetPayoutIfFullyClosing(settlementPrice, math.LegacyZeroDec()).Payout if newPositionPayout.IsNegative() { p.Margin = p.Margin.Add(newPositionPayout.Abs()) } } -func (p *Position) ApplyTotalPositionPayoutHaircut(deficitAmount, totalPayouts, settlementPrice sdk.Dec) { +func (p *Position) ApplyTotalPositionPayoutHaircut(deficitAmount, totalPayouts, settlementPrice math.LegacyDec) { p.ApplyProfitHaircutForDerivatives(deficitAmount, totalPayouts, settlementPrice) removedMargin := p.Margin.Mul(deficitAmount).Quo(totalPayouts) p.Margin = p.Margin.Sub(removedMargin) } -func (p *Position) ApplyProfitHaircutForBinaryOptions(deficitAmount, totalAssets sdk.Dec, oracleScaleFactor uint32) { +func (p *Position) ApplyProfitHaircutForBinaryOptions(deficitAmount, totalAssets math.LegacyDec, oracleScaleFactor uint32) { // haircutPercentage = deficitAmount / totalAssets // To preserve precision, the division by totalAssets is done last. // newMargin = p.Margin - p.Margin * haircutPercentage @@ -97,12 +97,12 @@ func (p *Position) ApplyProfitHaircutForBinaryOptions(deficitAmount, totalAssets if p.IsLong { p.EntryPrice = p.Margin.Quo(p.Quantity) } else { - scaledOne := GetScaledPrice(sdk.OneDec(), oracleScaleFactor) + scaledOne := GetScaledPrice(math.LegacyOneDec(), oracleScaleFactor) p.EntryPrice = scaledOne.Sub(p.Margin.Quo(p.Quantity)) } } -func (p *Position) ClosePositionWithSettlePrice(settlementPrice, closingFeeRate sdk.Dec) (payout, closeTradingFee sdk.Dec, positionDelta *PositionDelta) { +func (p *Position) ClosePositionWithSettlePrice(settlementPrice, closingFeeRate math.LegacyDec) (payout, closeTradingFee math.LegacyDec, positionDelta *PositionDelta, pnl math.LegacyDec) { closingDirection := !p.IsLong fullyClosingQuantity := p.Quantity @@ -110,29 +110,29 @@ func (p *Position) ClosePositionWithSettlePrice(settlementPrice, closingFeeRate positionDelta = &PositionDelta{ IsLong: closingDirection, ExecutionQuantity: fullyClosingQuantity, - ExecutionMargin: sdk.ZeroDec(), + ExecutionMargin: math.LegacyZeroDec(), ExecutionPrice: settlementPrice, } // there should not be positions with 0 quantity if fullyClosingQuantity.IsZero() { - return sdk.ZeroDec(), closeTradingFee, positionDelta + return math.LegacyZeroDec(), closeTradingFee, positionDelta, math.LegacyZeroDec() } - payout, _, _ = p.ApplyPositionDelta(positionDelta, closeTradingFee) + payout, _, _, pnl = p.ApplyPositionDelta(positionDelta, closeTradingFee) - return payout, closeTradingFee, positionDelta + return payout, closeTradingFee, positionDelta, pnl } func (p *Position) ClosePositionWithoutPayouts() { p.IsLong = false - p.EntryPrice = sdk.ZeroDec() - p.Quantity = sdk.ZeroDec() - p.Margin = sdk.ZeroDec() - p.CumulativeFundingEntry = sdk.ZeroDec() + p.EntryPrice = math.LegacyZeroDec() + p.Quantity = math.LegacyZeroDec() + p.Margin = math.LegacyZeroDec() + p.CumulativeFundingEntry = math.LegacyZeroDec() } -func (p *Position) ClosePositionByRefunding(closingFeeRate sdk.Dec) (payout, closeTradingFee sdk.Dec, positionDelta *PositionDelta) { +func (p *Position) ClosePositionByRefunding(closingFeeRate math.LegacyDec) (payout, closeTradingFee math.LegacyDec, positionDelta *PositionDelta, pnl math.LegacyDec) { return p.ClosePositionWithSettlePrice(p.EntryPrice, closingFeeRate) } @@ -146,11 +146,11 @@ func (p *Position) GetDirectionString() string { func (p *Position) CheckValidPositionToReduce( marketType MarketType, - reducePrice sdk.Dec, + reducePrice math.LegacyDec, isBuyOrder bool, - tradeFeeRate sdk.Dec, + tradeFeeRate math.LegacyDec, funding *PerpetualMarketFunding, - orderMargin sdk.Dec, + orderMargin math.LegacyDec, ) error { if isBuyOrder == p.IsLong { return ErrInvalidReduceOnlyPositionDirection @@ -167,19 +167,19 @@ func (p *Position) CheckValidPositionToReduce( return nil } -func (p *Position) checkValidClosingPrice(closingPrice, tradeFeeRate sdk.Dec, funding *PerpetualMarketFunding, orderMargin sdk.Dec) error { +func (p *Position) checkValidClosingPrice(closingPrice, tradeFeeRate math.LegacyDec, funding *PerpetualMarketFunding, orderMargin math.LegacyDec) error { bankruptcyPrice := p.GetBankruptcyPriceWithAddedMargin(funding, orderMargin) if p.IsLong { // For long positions, Price ≥ BankruptcyPrice / (1 - TradeFeeRate) must hold - feeAdjustedBankruptcyPrice := bankruptcyPrice.Quo(sdk.OneDec().Sub(tradeFeeRate)) + feeAdjustedBankruptcyPrice := bankruptcyPrice.Quo(math.LegacyOneDec().Sub(tradeFeeRate)) if closingPrice.LT(feeAdjustedBankruptcyPrice) { return ErrPriceSurpassesBankruptcyPrice } } else { // For short positions, Price ≤ BankruptcyPrice / (1 + TradeFeeRate) must hold - feeAdjustedBankruptcyPrice := bankruptcyPrice.Quo(sdk.OneDec().Add(tradeFeeRate)) + feeAdjustedBankruptcyPrice := bankruptcyPrice.Quo(math.LegacyOneDec().Add(tradeFeeRate)) if closingPrice.GT(feeAdjustedBankruptcyPrice) { return ErrPriceSurpassesBankruptcyPrice @@ -188,7 +188,7 @@ func (p *Position) checkValidClosingPrice(closingPrice, tradeFeeRate sdk.Dec, fu return nil } -func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice sdk.Dec, funding *PerpetualMarketFunding) sdk.Dec { +func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice math.LegacyDec, funding *PerpetualMarketFunding) math.LegacyDec { bankruptcyPrice := p.GetBankruptcyPrice(funding) hasNegativeEquity := (p.IsLong && markPrice.LT(bankruptcyPrice)) || (p.IsShort() && markPrice.GT(bankruptcyPrice)) @@ -199,40 +199,40 @@ func (p *Position) GetLiquidationMarketOrderWorstPrice(markPrice sdk.Dec, fundin return bankruptcyPrice } -func (p *Position) GetBankruptcyPrice(funding *PerpetualMarketFunding) (bankruptcyPrice sdk.Dec) { - return p.GetLiquidationPrice(sdk.ZeroDec(), funding) +func (p *Position) GetBankruptcyPrice(funding *PerpetualMarketFunding) (bankruptcyPrice math.LegacyDec) { + return p.GetLiquidationPrice(math.LegacyZeroDec(), funding) } -func (p *Position) GetBankruptcyPriceWithAddedMargin(funding *PerpetualMarketFunding, addedMargin sdk.Dec) (bankruptcyPrice sdk.Dec) { - return p.getLiquidationPriceWithAddedMargin(sdk.ZeroDec(), funding, addedMargin) +func (p *Position) GetBankruptcyPriceWithAddedMargin(funding *PerpetualMarketFunding, addedMargin math.LegacyDec) (bankruptcyPrice math.LegacyDec) { + return p.getLiquidationPriceWithAddedMargin(math.LegacyZeroDec(), funding, addedMargin) } -func (p *Position) GetLiquidationPrice(maintenanceMarginRatio sdk.Dec, funding *PerpetualMarketFunding) sdk.Dec { - return p.getLiquidationPriceWithAddedMargin(maintenanceMarginRatio, funding, sdk.ZeroDec()) +func (p *Position) GetLiquidationPrice(maintenanceMarginRatio math.LegacyDec, funding *PerpetualMarketFunding) math.LegacyDec { + return p.getLiquidationPriceWithAddedMargin(maintenanceMarginRatio, funding, math.LegacyZeroDec()) } -func (p *Position) getLiquidationPriceWithAddedMargin(maintenanceMarginRatio sdk.Dec, funding *PerpetualMarketFunding, addedMargin sdk.Dec) sdk.Dec { +func (p *Position) getLiquidationPriceWithAddedMargin(maintenanceMarginRatio math.LegacyDec, funding *PerpetualMarketFunding, addedMargin math.LegacyDec) math.LegacyDec { adjustedUnitMargin := p.getFundingAdjustedUnitMarginWithAddedMargin(funding, addedMargin) // TODO include closing fee for reduce only ? - var liquidationPrice sdk.Dec + var liquidationPrice math.LegacyDec if p.IsLong { // liquidation price = (entry price - unit margin) / (1 - maintenanceMarginRatio) - liquidationPrice = p.EntryPrice.Sub(adjustedUnitMargin).Quo(sdk.OneDec().Sub(maintenanceMarginRatio)) + liquidationPrice = p.EntryPrice.Sub(adjustedUnitMargin).Quo(math.LegacyOneDec().Sub(maintenanceMarginRatio)) } else { // liquidation price = (entry price + unit margin) / (1 + maintenanceMarginRatio) - liquidationPrice = p.EntryPrice.Add(adjustedUnitMargin).Quo(sdk.OneDec().Add(maintenanceMarginRatio)) + liquidationPrice = p.EntryPrice.Add(adjustedUnitMargin).Quo(math.LegacyOneDec().Add(maintenanceMarginRatio)) } return liquidationPrice } -func (p *Position) GetEffectiveMargin(funding *PerpetualMarketFunding, closingPrice sdk.Dec) sdk.Dec { +func (p *Position) GetEffectiveMargin(funding *PerpetualMarketFunding, closingPrice math.LegacyDec) math.LegacyDec { fundingAdjustedMargin := p.Margin if funding != nil { fundingAdjustedMargin = p.getFundingAdjustedMargin(funding) } - pnlNotional := sdk.ZeroDec() + pnlNotional := math.LegacyZeroDec() if !closingPrice.IsNil() { pnlNotional = p.GetPayoutFromPnl(closingPrice, p.Quantity) } @@ -250,11 +250,11 @@ func (p *Position) ApplyFunding(funding *PerpetualMarketFunding) { } } -func (p *Position) getFundingAdjustedMargin(funding *PerpetualMarketFunding) sdk.Dec { - return p.getFundingAdjustedMarginWithAddedMargin(funding, sdk.ZeroDec()) +func (p *Position) getFundingAdjustedMargin(funding *PerpetualMarketFunding) math.LegacyDec { + return p.getFundingAdjustedMarginWithAddedMargin(funding, math.LegacyZeroDec()) } -func (p *Position) getFundingAdjustedMarginWithAddedMargin(funding *PerpetualMarketFunding, addedMargin sdk.Dec) sdk.Dec { +func (p *Position) getFundingAdjustedMarginWithAddedMargin(funding *PerpetualMarketFunding, addedMargin math.LegacyDec) math.LegacyDec { adjustedMargin := p.Margin.Add(addedMargin) // Compute the adjusted position margin for positions in perpetual markets @@ -273,7 +273,7 @@ func (p *Position) getFundingAdjustedMarginWithAddedMargin(funding *PerpetualMar return adjustedMargin } -func (p *Position) getFundingAdjustedUnitMarginWithAddedMargin(funding *PerpetualMarketFunding, addedMargin sdk.Dec) sdk.Dec { +func (p *Position) getFundingAdjustedUnitMarginWithAddedMargin(funding *PerpetualMarketFunding, addedMargin math.LegacyDec) math.LegacyDec { adjustedMargin := p.getFundingAdjustedMarginWithAddedMargin(funding, addedMargin) // Unit Margin = PositionMargin / PositionQuantity @@ -281,14 +281,14 @@ func (p *Position) getFundingAdjustedUnitMarginWithAddedMargin(funding *Perpetua return fundingAdjustedUnitMargin } -func (p *Position) GetAverageWeightedEntryPrice(executionQuantity, executionPrice sdk.Dec) sdk.Dec { +func (p *Position) GetAverageWeightedEntryPrice(executionQuantity, executionPrice math.LegacyDec) math.LegacyDec { num := p.Quantity.Mul(p.EntryPrice).Add(executionQuantity.Mul(executionPrice)) denom := p.Quantity.Add(executionQuantity) return num.Quo(denom) } -func (p *Position) GetPayoutIfFullyClosing(closingPrice, closingFeeRate sdk.Dec) *positionPayout { +func (p *Position) GetPayoutIfFullyClosing(closingPrice, closingFeeRate math.LegacyDec) *positionPayout { isProfitable := (p.IsLong && p.EntryPrice.LT(closingPrice)) || (!p.IsLong && p.EntryPrice.GT(closingPrice)) fullyClosingQuantity := p.Quantity @@ -306,8 +306,8 @@ func (p *Position) GetPayoutIfFullyClosing(closingPrice, closingFeeRate sdk.Dec) } } -func (p *Position) GetPayoutFromPnl(closingPrice, closingQuantity sdk.Dec) sdk.Dec { - var pnlNotional sdk.Dec +func (p *Position) GetPayoutFromPnl(closingPrice, closingQuantity math.LegacyDec) math.LegacyDec { + var pnlNotional math.LegacyDec if p.IsLong { // nolint:all @@ -322,19 +322,19 @@ func (p *Position) GetPayoutFromPnl(closingPrice, closingQuantity sdk.Dec) sdk.D return pnlNotional } -func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceOnly sdk.Dec) ( - payout, closeExecutionMargin, collateralizationMargin sdk.Dec, +func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceOnly math.LegacyDec) ( + payout, closeExecutionMargin, collateralizationMargin, pnl math.LegacyDec, ) { // No payouts or margin changes if the position delta is nil if delta == nil || p == nil { - return sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec() + return math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec() } if p.Quantity.IsZero() { p.IsLong = delta.IsLong } - payout, closeExecutionMargin, collateralizationMargin = sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec() + payout, closeExecutionMargin, collateralizationMargin = math.LegacyZeroDec(), math.LegacyZeroDec(), math.LegacyZeroDec() isNettingInSameDirection := (p.IsLong && delta.IsLong) || (p.IsShort() && delta.IsShort()) if isNettingInSameDirection { @@ -343,11 +343,11 @@ func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceO p.Margin = p.Margin.Add(delta.ExecutionMargin) collateralizationMargin = delta.ExecutionMargin - return payout, closeExecutionMargin, collateralizationMargin + return payout, closeExecutionMargin, collateralizationMargin, math.LegacyZeroDec() } // netting in opposing direction - closingQuantity := sdk.MinDec(p.Quantity, delta.ExecutionQuantity) + closingQuantity := math.LegacyMinDec(p.Quantity, delta.ExecutionQuantity) // closeExecutionMargin = execution margin * closing quantity / execution quantity closeExecutionMargin = delta.ExecutionMargin.Mul(closingQuantity).Quo(delta.ExecutionQuantity) @@ -383,8 +383,8 @@ func (p *Position) ApplyPositionDelta(delta *PositionDelta, tradingFeeForReduceO } // recurse - _, _, collateralizationMargin = p.ApplyPositionDelta(newPositionDelta, tradingFeeForReduceOnly) + _, _, collateralizationMargin, _ = p.ApplyPositionDelta(newPositionDelta, tradingFeeForReduceOnly) } - return payout, closeExecutionMargin, collateralizationMargin + return payout, closeExecutionMargin, collateralizationMargin, pnlNotional } diff --git a/chain/exchange/types/proposal.go b/chain/exchange/types/proposal.go index ccba95ed..333507e2 100644 --- a/chain/exchange/types/proposal.go +++ b/chain/exchange/types/proposal.go @@ -4,15 +4,15 @@ import ( "fmt" "cosmossdk.io/errors" - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" - sdk "github.com/cosmos/cosmos-sdk/types" gov "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/ethereum/go-ethereum/common" + + oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" ) // constants @@ -56,7 +56,7 @@ func init() { govtypes.RegisterProposalType(ProposalAtomicMarketOrderFeeMultiplierSchedule) } -func SafeIsPositiveInt(v sdkmath.Int) bool { +func SafeIsPositiveInt(v math.Int) bool { if v.IsNil() { return false } @@ -64,7 +64,7 @@ func SafeIsPositiveInt(v sdkmath.Int) bool { return v.IsPositive() } -func SafeIsPositiveDec(v sdk.Dec) bool { +func SafeIsPositiveDec(v math.LegacyDec) bool { if v.IsNil() { return false } @@ -72,7 +72,7 @@ func SafeIsPositiveDec(v sdk.Dec) bool { return v.IsPositive() } -func SafeIsNonNegativeDec(v sdk.Dec) bool { +func SafeIsNonNegativeDec(v math.LegacyDec) bool { if v.IsNil() { return false } @@ -80,11 +80,11 @@ func SafeIsNonNegativeDec(v sdk.Dec) bool { return !v.IsNegative() } -func IsZeroOrNilInt(v sdkmath.Int) bool { +func IsZeroOrNilInt(v math.Int) bool { return v.IsNil() || v.IsZero() } -func IsZeroOrNilDec(v sdk.Dec) bool { +func IsZeroOrNilDec(v math.LegacyDec) bool { return v.IsNil() || v.IsZero() } @@ -213,8 +213,7 @@ func (p *BatchExchangeModificationProposal) ValidateBasic() error { } // NewSpotMarketParamUpdateProposal returns new instance of SpotMarketParamUpdateProposal -func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize *sdk.Dec, status MarketStatus) *SpotMarketParamUpdateProposal { - +func NewSpotMarketParamUpdateProposal(title, description string, marketID common.Hash, makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, status MarketStatus, ticker string) *SpotMarketParamUpdateProposal { return &SpotMarketParamUpdateProposal{ title, description, @@ -225,6 +224,9 @@ func NewSpotMarketParamUpdateProposal(title, description string, marketID common minPriceTickSize, minQuantityTickSize, status, + ticker, + minNotional, + nil, } } @@ -254,7 +256,14 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error { if !IsHexHash(p.MarketId) { return errors.Wrap(ErrMarketInvalid, p.MarketId) } - if p.MakerFeeRate == nil && p.TakerFeeRate == nil && p.RelayerFeeShareRate == nil && p.MinPriceTickSize == nil && p.MinQuantityTickSize == nil && p.Status == MarketStatus_Unspecified { + if p.MakerFeeRate == nil && + p.TakerFeeRate == nil && + p.RelayerFeeShareRate == nil && + p.MinPriceTickSize == nil && + p.MinQuantityTickSize == nil && + p.MinNotional == nil && + p.AdminInfo == nil && + p.Status == MarketStatus_Unspecified { return errors.Wrap(gov.ErrInvalidProposalContent, "At least one field should not be nil") } @@ -284,6 +293,26 @@ func (p *SpotMarketParamUpdateProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } } + if p.MinNotional != nil { + if err := ValidateMinNotional(*p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + } + + if p.AdminInfo != nil { + if p.AdminInfo.Admin != "" { + if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil { + return errors.Wrap(ErrInvalidAddress, err.Error()) + } + } + if p.AdminInfo.AdminPermissions > MaxPerm { + return ErrInvalidPermissions + } + } + + if len(p.Ticker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not exceed %d characters", MaxTickerLength) + } switch p.Status { case @@ -307,10 +336,11 @@ func NewSpotMarketLaunchProposal( ticker string, baseDenom string, quoteDenom string, - minPriceTickSize sdk.Dec, - minQuantityTickSize sdk.Dec, - makerFeeRate *sdk.Dec, - takerFeeRate *sdk.Dec, + minPriceTickSize math.LegacyDec, + minQuantityTickSize math.LegacyDec, + minNotional math.LegacyDec, + makerFeeRate *math.LegacyDec, + takerFeeRate *math.LegacyDec, ) *SpotMarketLaunchProposal { return &SpotMarketLaunchProposal{ Title: title, @@ -320,6 +350,7 @@ func NewSpotMarketLaunchProposal( QuoteDenom: quoteDenom, MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + MinNotional: minNotional, MakerFeeRate: makerFeeRate, TakerFeeRate: takerFeeRate, } @@ -349,7 +380,7 @@ func (p *SpotMarketLaunchProposal) ProposalType() string { // ValidateBasic returns ValidateBasic result of this proposal. func (p *SpotMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if p.BaseDenom == "" { return errors.Wrap(ErrInvalidBaseDenom, "base denom should not be empty") @@ -367,6 +398,9 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { if err := ValidateTickSize(p.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } if p.MakerFeeRate != nil { if err := ValidateMakerFee(*p.MakerFeeRate); err != nil { @@ -395,11 +429,23 @@ func (p *SpotMarketLaunchProposal) ValidateBasic() error { // NewDerivativeMarketParamUpdateProposal returns new instance of DerivativeMarketParamUpdateProposal func NewDerivativeMarketParamUpdateProposal( - title, description string, marketID string, - initialMarginRatio, maintenanceMarginRatio, - makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize *sdk.Dec, - hourlyInterestRate, hourlyFundingRateCap *sdk.Dec, - status MarketStatus, oracleParams *OracleParams, + title string, + description string, + marketID string, + initialMarginRatio *math.LegacyDec, + maintenanceMarginRatio *math.LegacyDec, + makerFeeRate *math.LegacyDec, + takerFeeRate *math.LegacyDec, + relayerFeeShareRate *math.LegacyDec, + minPriceTickSize *math.LegacyDec, + minQuantityTickSize *math.LegacyDec, + minNotional *math.LegacyDec, + hourlyInterestRate *math.LegacyDec, + hourlyFundingRateCap *math.LegacyDec, + status MarketStatus, + oracleParams *OracleParams, + ticker string, + adminInfo *AdminInfo, ) *DerivativeMarketParamUpdateProposal { return &DerivativeMarketParamUpdateProposal{ Title: title, @@ -416,6 +462,9 @@ func NewDerivativeMarketParamUpdateProposal( HourlyFundingRateCap: hourlyFundingRateCap, Status: status, OracleParams: oracleParams, + Ticker: ticker, + MinNotional: minNotional, + AdminInfo: adminInfo, } } @@ -450,11 +499,13 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { p.RelayerFeeShareRate == nil && p.MinPriceTickSize == nil && p.MinQuantityTickSize == nil && + p.MinNotional == nil && p.InitialMarginRatio == nil && p.MaintenanceMarginRatio == nil && p.HourlyInterestRate == nil && p.HourlyFundingRateCap == nil && p.Status == MarketStatus_Unspecified && + p.AdminInfo == nil && p.OracleParams == nil { return errors.Wrap(gov.ErrInvalidProposalContent, "At least one field should not be nil") } @@ -497,6 +548,11 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } } + if p.MinNotional != nil { + if err := ValidateMinNotional(*p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + } if p.HourlyInterestRate != nil { if err := ValidateHourlyInterestRate(*p.HourlyInterestRate); err != nil { @@ -510,6 +566,21 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { } } + if p.AdminInfo != nil { + if p.AdminInfo.Admin != "" { + if _, err := sdk.AccAddressFromBech32(p.AdminInfo.Admin); err != nil { + return errors.Wrap(ErrInvalidAddress, err.Error()) + } + } + if p.AdminInfo.AdminPermissions > MaxPerm { + return ErrInvalidPermissions + } + } + + if len(p.Ticker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not exceed %d characters", MaxTickerLength) + } + switch p.Status { case MarketStatus_Unspecified, @@ -534,7 +605,7 @@ func (p *DerivativeMarketParamUpdateProposal) ValidateBasic() error { // NewMarketForcedSettlementProposal returns new instance of MarketForcedSettlementProposal func NewMarketForcedSettlementProposal( title, description string, marketID string, - settlementPrice *sdk.Dec, + settlementPrice *math.LegacyDec, ) *MarketForcedSettlementProposal { return &MarketForcedSettlementProposal{ Title: title, @@ -658,7 +729,8 @@ func (p *OracleParams) ValidateBasic() error { } switch p.OracleType { case oracletypes.OracleType_Band, 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_BandIBC, oracletypes.OracleType_Provider: + oracletypes.OracleType_Dia, oracletypes.OracleType_API3, oracletypes.OracleType_Uma, oracletypes.OracleType_Pyth, oracletypes.OracleType_BandIBC, oracletypes.OracleType_Provider, + oracletypes.OracleType_Stork: default: return errors.Wrap(ErrInvalidOracleType, p.OracleType.String()) @@ -708,7 +780,7 @@ func (p *ProviderOracleParams) ValidateBasic() error { func NewPerpetualMarketLaunchProposal( title, description, ticker, quoteDenom, oracleBase, oracleQuote string, oracleScaleFactor uint32, oracleType oracletypes.OracleType, - initialMarginRatio, maintenanceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize sdk.Dec, + initialMarginRatio, maintenanceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize, minNotional math.LegacyDec, ) *PerpetualMarketLaunchProposal { return &PerpetualMarketLaunchProposal{ Title: title, @@ -725,6 +797,7 @@ func NewPerpetualMarketLaunchProposal( TakerFeeRate: takerFeeRate, MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + MinNotional: minNotional, } } @@ -752,7 +825,7 @@ func (p *PerpetualMarketLaunchProposal) ProposalType() string { // ValidateBasic returns ValidateBasic result of a perpetual market launch proposal. func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") @@ -787,6 +860,9 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { if err := ValidateTickSize(p.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return govtypes.ValidateAbstract(p) } @@ -795,7 +871,7 @@ func (p *PerpetualMarketLaunchProposal) ValidateBasic() error { func NewExpiryFuturesMarketLaunchProposal( title, description, ticker, quoteDenom, oracleBase, oracleQuote string, oracleScaleFactor uint32, oracleType oracletypes.OracleType, expiry int64, - initialMarginRatio, maintenanceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize sdk.Dec, + initialMarginRatio, maintenanceMarginRatio, makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize, minNotional math.LegacyDec, ) *ExpiryFuturesMarketLaunchProposal { return &ExpiryFuturesMarketLaunchProposal{ Title: title, @@ -813,6 +889,7 @@ func NewExpiryFuturesMarketLaunchProposal( TakerFeeRate: takerFeeRate, MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + MinNotional: minNotional, } } @@ -840,7 +917,7 @@ func (p *ExpiryFuturesMarketLaunchProposal) ProposalType() string { // ValidateBasic returns ValidateBasic result of a perpetual market launch proposal. func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed %d characters", MaxTickerLength) } if p.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") @@ -878,6 +955,9 @@ func (p *ExpiryFuturesMarketLaunchProposal) ValidateBasic() error { if err := ValidateTickSize(p.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return govtypes.ValidateAbstract(p) } @@ -1308,11 +1388,11 @@ func (p *FeeDiscountProposal) ValidateBasic() error { } func (t *FeeDiscountTierInfo) ValidateBasic() error { - if !SafeIsNonNegativeDec(t.MakerDiscountRate) || t.MakerDiscountRate.GT(sdk.OneDec()) { + if !SafeIsNonNegativeDec(t.MakerDiscountRate) || t.MakerDiscountRate.GT(math.LegacyOneDec()) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "MakerDiscountRate must be between 0 and 1") } - if !SafeIsNonNegativeDec(t.TakerDiscountRate) || t.TakerDiscountRate.GT(sdk.OneDec()) { + if !SafeIsNonNegativeDec(t.TakerDiscountRate) || t.TakerDiscountRate.GT(math.LegacyOneDec()) { return errors.Wrap(ErrInvalidFeeDiscountSchedule, "TakerDiscountRate must be between 0 and 1") } @@ -1363,7 +1443,7 @@ func NewBinaryOptionsMarketLaunchProposal( oracleType oracletypes.OracleType, oracleScaleFactor uint32, expirationTimestamp, settlementTimestamp int64, admin, quoteDenom string, - makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize sdk.Dec, + makerFeeRate, takerFeeRate, minPriceTickSize, minQuantityTickSize, minNotional math.LegacyDec, ) *BinaryOptionsMarketLaunchProposal { return &BinaryOptionsMarketLaunchProposal{ @@ -1382,6 +1462,7 @@ func NewBinaryOptionsMarketLaunchProposal( TakerFeeRate: takerFeeRate, MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + MinNotional: minNotional, } } @@ -1409,7 +1490,7 @@ func (p *BinaryOptionsMarketLaunchProposal) ProposalType() string { // ValidateBasic returns ValidateBasic result of a perpetual market launch proposal. func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if p.Ticker == "" || len(p.Ticker) > MaxTickerLength { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + 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") @@ -1454,17 +1535,24 @@ func (p *BinaryOptionsMarketLaunchProposal) ValidateBasic() error { if err := ValidateTickSize(p.MinQuantityTickSize); err != nil { return errors.Wrap(ErrInvalidQuantityTickSize, err.Error()) } + if err := ValidateMinNotional(p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } return govtypes.ValidateAbstract(p) } // NewBinaryOptionsMarketParamUpdateProposal returns new instance of BinaryOptionsMarketParamUpdateProposal func NewBinaryOptionsMarketParamUpdateProposal( - title, description string, marketID string, - makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize *sdk.Dec, + title string, + description string, + marketID string, + makerFeeRate, takerFeeRate, relayerFeeShareRate, minPriceTickSize, minQuantityTickSize, minNotional *math.LegacyDec, expirationTimestamp, settlementTimestamp int64, admin string, - status MarketStatus, oracleParams *ProviderOracleParams, + status MarketStatus, + oracleParams *ProviderOracleParams, + ticker string, ) *BinaryOptionsMarketParamUpdateProposal { return &BinaryOptionsMarketParamUpdateProposal{ Title: title, @@ -1475,11 +1563,13 @@ func NewBinaryOptionsMarketParamUpdateProposal( RelayerFeeShareRate: relayerFeeShareRate, MinPriceTickSize: minPriceTickSize, MinQuantityTickSize: minQuantityTickSize, + MinNotional: minNotional, ExpirationTimestamp: expirationTimestamp, SettlementTimestamp: settlementTimestamp, Admin: admin, Status: status, OracleParams: oracleParams, + Ticker: ticker, } } @@ -1514,6 +1604,7 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error { p.RelayerFeeShareRate == nil && p.MinPriceTickSize == nil && p.MinQuantityTickSize == nil && + p.MinNotional == nil && p.Status == MarketStatus_Unspecified && p.ExpirationTimestamp == 0 && p.SettlementTimestamp == 0 && @@ -1552,6 +1643,12 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error { } } + if p.MinNotional != nil { + if err := ValidateMinNotional(*p.MinNotional); err != nil { + return errors.Wrap(ErrInvalidNotional, err.Error()) + } + } + if p.ExpirationTimestamp != 0 && p.SettlementTimestamp != 0 { if p.ExpirationTimestamp >= p.SettlementTimestamp || p.ExpirationTimestamp < 0 || p.SettlementTimestamp < 0 { return ErrInvalidExpiry @@ -1568,13 +1665,17 @@ func (p *BinaryOptionsMarketParamUpdateProposal) ValidateBasic() error { } } + if len(p.Ticker) > MaxTickerLength { + return errors.Wrapf(ErrInvalidTicker, "ticker should not exceed %d characters", MaxTickerLength) + } + // price is either nil (not set), -1 (demolish with refund) or [0..1] (demolish with settle) switch { case p.SettlementPrice == nil, p.SettlementPrice.IsNil(): // ok case p.SettlementPrice.Equal(BinaryOptionsMarketRefundFlagPrice), - p.SettlementPrice.GTE(sdk.ZeroDec()) && p.SettlementPrice.LTE(MaxBinaryOptionsOrderPrice): + p.SettlementPrice.GTE(math.LegacyZeroDec()) && p.SettlementPrice.LTE(MaxBinaryOptionsOrderPrice): if p.Status != MarketStatus_Demolished { return errors.Wrapf(ErrInvalidMarketStatus, "status should be set to demolished when the settlement price is set, status: %s", p.Status.String()) } @@ -1634,7 +1735,7 @@ func (p *AtomicMarketOrderFeeMultiplierScheduleProposal) ValidateBasic() error { return fmt.Errorf("atomic taker fee multiplier cannot be nil: %v", multiplier) } - if multiplier.LT(sdk.OneDec()) { + if multiplier.LT(math.LegacyOneDec()) { return fmt.Errorf("atomic taker fee multiplier cannot be less than 1: %v", multiplier) } diff --git a/chain/exchange/types/proposal.pb.go b/chain/exchange/types/proposal.pb.go index 6f3eee76..1a20dfa1 100644 --- a/chain/exchange/types/proposal.pb.go +++ b/chain/exchange/types/proposal.pb.go @@ -4,12 +4,13 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types "github.com/InjectiveLabs/sdk-go/chain/oracle/types" _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" types1 "github.com/cosmos/cosmos-sdk/x/distribution/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -62,19 +63,24 @@ type SpotMarketParamUpdateProposal struct { Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // maker_fee_rate defines the trade fee rate for makers on the spot market - MakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate,omitempty"` + MakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate,omitempty"` // taker_fee_rate defines the trade fee rate for takers on the spot market - TakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate,omitempty"` + TakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate,omitempty"` // relayer_fee_share_rate defines the relayer fee share rate for the spot // market - RelayerFeeShareRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate,omitempty"` + RelayerFeeShareRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate,omitempty"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size,omitempty"` + MinPriceTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size,omitempty"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size,omitempty"` - Status MarketStatus `protobuf:"varint,9,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` + MinQuantityTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size,omitempty"` + Status MarketStatus `protobuf:"varint,9,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` + Ticker string `protobuf:"bytes,10,opt,name=ticker,proto3" json:"ticker,omitempty"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` + AdminInfo *AdminInfo `protobuf:"bytes,12,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` } func (m *SpotMarketParamUpdateProposal) Reset() { *m = SpotMarketParamUpdateProposal{} } @@ -210,14 +216,17 @@ type SpotMarketLaunchProposal struct { // type of coin to use as the quote currency QuoteDenom string `protobuf:"bytes,5,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` // min_price_tick_size defines the minimum tick size of the order's price - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` // maker_fee_rate defines the fee percentage makers pay when trading - MakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate,omitempty"` + MakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate,omitempty"` // taker_fee_rate defines the fee percentage takers pay when trading - TakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate,omitempty"` + TakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate,omitempty"` + // min_notional defines the minimum notional for orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + AdminInfo *AdminInfo `protobuf:"bytes,11,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` } func (m *SpotMarketLaunchProposal) Reset() { *m = SpotMarketLaunchProposal{} } @@ -272,22 +281,26 @@ type PerpetualMarketLaunchProposal struct { OracleType types.OracleType `protobuf:"varint,8,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` // initial_margin_ratio defines the initial margin ratio for the derivative // market - InitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio"` + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market - MaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio"` + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` // maker_fee_rate defines the exchange trade fee for makers for the derivative // market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the exchange trade fee for takers for the derivative // market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + AdminInfo *AdminInfo `protobuf:"bytes,16,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` } func (m *PerpetualMarketLaunchProposal) Reset() { *m = PerpetualMarketLaunchProposal{} } @@ -345,15 +358,19 @@ type BinaryOptionsMarketLaunchProposal struct { // Address of the quote currency denomination for the binary options contract QuoteDenom string `protobuf:"bytes,11,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` // maker_fee_rate defines the maker fee rate of a binary options market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the taker fee rate of a derivative market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,15,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + AdminPermissions uint32 `protobuf:"varint,17,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` } func (m *BinaryOptionsMarketLaunchProposal) Reset() { *m = BinaryOptionsMarketLaunchProposal{} } @@ -410,22 +427,26 @@ type ExpiryFuturesMarketLaunchProposal struct { Expiry int64 `protobuf:"varint,9,opt,name=expiry,proto3" json:"expiry,omitempty"` // initial_margin_ratio defines the initial margin ratio for the derivative // market - InitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio"` + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market - MaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio"` + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` // maker_fee_rate defines the exchange trade fee for makers for the derivative // market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the exchange trade fee for takers for the derivative // market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,15,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` + AdminInfo *AdminInfo `protobuf:"bytes,17,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` } func (m *ExpiryFuturesMarketLaunchProposal) Reset() { *m = ExpiryFuturesMarketLaunchProposal{} } @@ -467,32 +488,37 @@ type DerivativeMarketParamUpdateProposal struct { MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // initial_margin_ratio defines the initial margin ratio for the derivative // market - InitialMarginRatio *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio,omitempty"` + InitialMarginRatio *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio,omitempty"` // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market - MaintenanceMarginRatio *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio,omitempty"` + MaintenanceMarginRatio *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio,omitempty"` // maker_fee_rate defines the exchange trade fee for makers for the derivative // market - MakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate,omitempty"` + MakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate,omitempty"` // taker_fee_rate defines the exchange trade fee for takers for the derivative // market - TakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate,omitempty"` + TakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate,omitempty"` // relayer_fee_share_rate defines the relayer fee share rate for the // derivative market - RelayerFeeShareRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate,omitempty"` + RelayerFeeShareRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate,omitempty"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size,omitempty"` + MinPriceTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size,omitempty"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size,omitempty"` + MinQuantityTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size,omitempty"` // hourly_interest_rate defines the hourly interest rate - HourlyInterestRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=HourlyInterestRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"HourlyInterestRate,omitempty"` + HourlyInterestRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=HourlyInterestRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"HourlyInterestRate,omitempty"` // hourly_funding_rate_cap defines the maximum absolute value of the hourly // funding rate - HourlyFundingRateCap *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=HourlyFundingRateCap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"HourlyFundingRateCap,omitempty"` - Status MarketStatus `protobuf:"varint,13,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` - OracleParams *OracleParams `protobuf:"bytes,14,opt,name=oracle_params,json=oracleParams,proto3" json:"oracle_params,omitempty"` + HourlyFundingRateCap *cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=HourlyFundingRateCap,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"HourlyFundingRateCap,omitempty"` + Status MarketStatus `protobuf:"varint,13,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` + OracleParams *OracleParams `protobuf:"bytes,14,opt,name=oracle_params,json=oracleParams,proto3" json:"oracle_params,omitempty"` + Ticker string `protobuf:"bytes,15,opt,name=ticker,proto3" json:"ticker,omitempty"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` + AdminInfo *AdminInfo `protobuf:"bytes,17,opt,name=admin_info,json=adminInfo,proto3" json:"admin_info,omitempty"` } func (m *DerivativeMarketParamUpdateProposal) Reset() { *m = DerivativeMarketParamUpdateProposal{} } @@ -528,18 +554,70 @@ func (m *DerivativeMarketParamUpdateProposal) XXX_DiscardUnknown() { var xxx_messageInfo_DerivativeMarketParamUpdateProposal proto.InternalMessageInfo +type AdminInfo struct { + Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"` + AdminPermissions uint32 `protobuf:"varint,2,opt,name=admin_permissions,json=adminPermissions,proto3" json:"admin_permissions,omitempty"` +} + +func (m *AdminInfo) Reset() { *m = AdminInfo{} } +func (m *AdminInfo) String() string { return proto.CompactTextString(m) } +func (*AdminInfo) ProtoMessage() {} +func (*AdminInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_32e9ec9b6b22477c, []int{8} +} +func (m *AdminInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AdminInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AdminInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AdminInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdminInfo.Merge(m, src) +} +func (m *AdminInfo) XXX_Size() int { + return m.Size() +} +func (m *AdminInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AdminInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AdminInfo proto.InternalMessageInfo + +func (m *AdminInfo) GetAdmin() string { + if m != nil { + return m.Admin + } + return "" +} + +func (m *AdminInfo) GetAdminPermissions() uint32 { + if m != nil { + return m.AdminPermissions + } + return 0 +} + type MarketForcedSettlementProposal struct { - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - SettlementPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + SettlementPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price,omitempty"` } func (m *MarketForcedSettlementProposal) Reset() { *m = MarketForcedSettlementProposal{} } func (m *MarketForcedSettlementProposal) String() string { return proto.CompactTextString(m) } func (*MarketForcedSettlementProposal) ProtoMessage() {} func (*MarketForcedSettlementProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{8} + return fileDescriptor_32e9ec9b6b22477c, []int{9} } func (m *MarketForcedSettlementProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -578,7 +656,7 @@ func (m *UpdateDenomDecimalsProposal) Reset() { *m = UpdateDenomDecimals func (m *UpdateDenomDecimalsProposal) String() string { return proto.CompactTextString(m) } func (*UpdateDenomDecimalsProposal) ProtoMessage() {} func (*UpdateDenomDecimalsProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{9} + return fileDescriptor_32e9ec9b6b22477c, []int{10} } func (m *UpdateDenomDecimalsProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -613,29 +691,33 @@ type BinaryOptionsMarketParamUpdateProposal struct { MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // maker_fee_rate defines the exchange trade fee for makers for the derivative // market - MakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate,omitempty"` + MakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate,omitempty"` // taker_fee_rate defines the exchange trade fee for takers for the derivative // market - TakerFeeRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate,omitempty"` + TakerFeeRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate,omitempty"` // relayer_fee_share_rate defines the relayer fee share rate for the // derivative market - RelayerFeeShareRate *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"relayer_fee_share_rate,omitempty"` + RelayerFeeShareRate *cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=relayer_fee_share_rate,json=relayerFeeShareRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"relayer_fee_share_rate,omitempty"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size,omitempty"` + MinPriceTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size,omitempty"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size,omitempty"` + MinQuantityTickSize *cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size,omitempty"` // expiration timestamp ExpirationTimestamp int64 `protobuf:"varint,9,opt,name=expiration_timestamp,json=expirationTimestamp,proto3" json:"expiration_timestamp,omitempty"` // expiration timestamp SettlementTimestamp int64 `protobuf:"varint,10,opt,name=settlement_timestamp,json=settlementTimestamp,proto3" json:"settlement_timestamp,omitempty"` // new price at which market will be settled - SettlementPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price,omitempty"` + SettlementPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price,omitempty"` // admin of the market Admin string `protobuf:"bytes,12,opt,name=admin,proto3" json:"admin,omitempty"` Status MarketStatus `protobuf:"varint,13,opt,name=status,proto3,enum=injective.exchange.v1beta1.MarketStatus" json:"status,omitempty"` OracleParams *ProviderOracleParams `protobuf:"bytes,14,opt,name=oracle_params,json=oracleParams,proto3" json:"oracle_params,omitempty"` + Ticker string `protobuf:"bytes,15,opt,name=ticker,proto3" json:"ticker,omitempty"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional,omitempty"` } func (m *BinaryOptionsMarketParamUpdateProposal) Reset() { @@ -644,7 +726,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Reset() { func (m *BinaryOptionsMarketParamUpdateProposal) String() string { return proto.CompactTextString(m) } func (*BinaryOptionsMarketParamUpdateProposal) ProtoMessage() {} func (*BinaryOptionsMarketParamUpdateProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{10} + return fileDescriptor_32e9ec9b6b22477c, []int{11} } func (m *BinaryOptionsMarketParamUpdateProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -688,7 +770,7 @@ func (m *ProviderOracleParams) Reset() { *m = ProviderOracleParams{} } func (m *ProviderOracleParams) String() string { return proto.CompactTextString(m) } func (*ProviderOracleParams) ProtoMessage() {} func (*ProviderOracleParams) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{11} + return fileDescriptor_32e9ec9b6b22477c, []int{12} } func (m *ProviderOracleParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -760,7 +842,7 @@ func (m *OracleParams) Reset() { *m = OracleParams{} } func (m *OracleParams) String() string { return proto.CompactTextString(m) } func (*OracleParams) ProtoMessage() {} func (*OracleParams) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{12} + return fileDescriptor_32e9ec9b6b22477c, []int{13} } func (m *OracleParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -828,7 +910,7 @@ func (m *TradingRewardCampaignLaunchProposal) Reset() { *m = TradingRewa func (m *TradingRewardCampaignLaunchProposal) String() string { return proto.CompactTextString(m) } func (*TradingRewardCampaignLaunchProposal) ProtoMessage() {} func (*TradingRewardCampaignLaunchProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{13} + return fileDescriptor_32e9ec9b6b22477c, []int{14} } func (m *TradingRewardCampaignLaunchProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -869,7 +951,7 @@ func (m *TradingRewardCampaignUpdateProposal) Reset() { *m = TradingRewa func (m *TradingRewardCampaignUpdateProposal) String() string { return proto.CompactTextString(m) } func (*TradingRewardCampaignUpdateProposal) ProtoMessage() {} func (*TradingRewardCampaignUpdateProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{14} + return fileDescriptor_32e9ec9b6b22477c, []int{15} } func (m *TradingRewardCampaignUpdateProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -901,14 +983,14 @@ var xxx_messageInfo_TradingRewardCampaignUpdateProposal proto.InternalMessageInf type RewardPointUpdate struct { AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // new_points overwrites the current trading reward points for the account - NewPoints github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=new_points,json=newPoints,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"new_points"` + NewPoints cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=new_points,json=newPoints,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_points"` } func (m *RewardPointUpdate) Reset() { *m = RewardPointUpdate{} } func (m *RewardPointUpdate) String() string { return proto.CompactTextString(m) } func (*RewardPointUpdate) ProtoMessage() {} func (*RewardPointUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{15} + return fileDescriptor_32e9ec9b6b22477c, []int{16} } func (m *RewardPointUpdate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -957,7 +1039,7 @@ func (m *TradingRewardPendingPointsUpdateProposal) Reset() { func (m *TradingRewardPendingPointsUpdateProposal) String() string { return proto.CompactTextString(m) } func (*TradingRewardPendingPointsUpdateProposal) ProtoMessage() {} func (*TradingRewardPendingPointsUpdateProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{16} + return fileDescriptor_32e9ec9b6b22477c, []int{17} } func (m *TradingRewardPendingPointsUpdateProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -996,7 +1078,7 @@ func (m *FeeDiscountProposal) Reset() { *m = FeeDiscountProposal{} } func (m *FeeDiscountProposal) String() string { return proto.CompactTextString(m) } func (*FeeDiscountProposal) ProtoMessage() {} func (*FeeDiscountProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{17} + return fileDescriptor_32e9ec9b6b22477c, []int{18} } func (m *FeeDiscountProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1035,7 +1117,7 @@ func (m *BatchCommunityPoolSpendProposal) Reset() { *m = BatchCommunityP func (m *BatchCommunityPoolSpendProposal) String() string { return proto.CompactTextString(m) } func (*BatchCommunityPoolSpendProposal) ProtoMessage() {} func (*BatchCommunityPoolSpendProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{18} + return fileDescriptor_32e9ec9b6b22477c, []int{19} } func (m *BatchCommunityPoolSpendProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1080,7 +1162,7 @@ func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) String() string { } func (*AtomicMarketOrderFeeMultiplierScheduleProposal) ProtoMessage() {} func (*AtomicMarketOrderFeeMultiplierScheduleProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_32e9ec9b6b22477c, []int{19} + return fileDescriptor_32e9ec9b6b22477c, []int{20} } func (m *AtomicMarketOrderFeeMultiplierScheduleProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1119,6 +1201,7 @@ func init() { proto.RegisterType((*BinaryOptionsMarketLaunchProposal)(nil), "injective.exchange.v1beta1.BinaryOptionsMarketLaunchProposal") proto.RegisterType((*ExpiryFuturesMarketLaunchProposal)(nil), "injective.exchange.v1beta1.ExpiryFuturesMarketLaunchProposal") proto.RegisterType((*DerivativeMarketParamUpdateProposal)(nil), "injective.exchange.v1beta1.DerivativeMarketParamUpdateProposal") + proto.RegisterType((*AdminInfo)(nil), "injective.exchange.v1beta1.AdminInfo") proto.RegisterType((*MarketForcedSettlementProposal)(nil), "injective.exchange.v1beta1.MarketForcedSettlementProposal") proto.RegisterType((*UpdateDenomDecimalsProposal)(nil), "injective.exchange.v1beta1.UpdateDenomDecimalsProposal") proto.RegisterType((*BinaryOptionsMarketParamUpdateProposal)(nil), "injective.exchange.v1beta1.BinaryOptionsMarketParamUpdateProposal") @@ -1138,142 +1221,160 @@ func init() { } var fileDescriptor_32e9ec9b6b22477c = []byte{ - // 2150 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x24, 0x47, - 0x15, 0x77, 0xaf, 0x3f, 0xe7, 0xcd, 0xf8, 0x23, 0xed, 0x89, 0x99, 0x78, 0xb3, 0xe3, 0x8f, 0x4d, - 0x76, 0x1d, 0xa4, 0x9d, 0x61, 0x4d, 0x50, 0xc4, 0x4a, 0x08, 0xfc, 0x31, 0x26, 0x16, 0xeb, 0xdd, - 0x49, 0x8f, 0x37, 0x82, 0x48, 0xd0, 0xd4, 0x74, 0x97, 0xed, 0xc2, 0xd3, 0x5d, 0xbd, 0x5d, 0x35, - 0xde, 0x75, 0xc4, 0x11, 0x04, 0x5a, 0x2e, 0x20, 0x81, 0xe0, 0xb2, 0x52, 0xb8, 0x71, 0xe3, 0x00, - 0xff, 0x00, 0x48, 0x48, 0x81, 0x1c, 0xc8, 0x31, 0xe2, 0x10, 0xa1, 0xdd, 0x03, 0x08, 0x89, 0x33, - 0x1c, 0x51, 0x57, 0x55, 0xf7, 0xf4, 0x7c, 0xf7, 0x8c, 0x3d, 0x11, 0x87, 0x3d, 0xcd, 0xd4, 0xab, - 0x57, 0xbf, 0xf7, 0xea, 0xd5, 0x7b, 0xaf, 0x5e, 0x55, 0x35, 0xbc, 0x41, 0xdc, 0xef, 0x61, 0x8b, - 0x93, 0x33, 0x5c, 0xc4, 0x8f, 0xad, 0x13, 0xe4, 0x1e, 0xe3, 0xe2, 0xd9, 0xed, 0x2a, 0xe6, 0xe8, - 0x76, 0xd1, 0xf3, 0xa9, 0x47, 0x19, 0xaa, 0x15, 0x3c, 0x9f, 0x72, 0xaa, 0x2f, 0x47, 0xac, 0x85, - 0x90, 0xb5, 0xa0, 0x58, 0x97, 0xf3, 0x16, 0x65, 0x0e, 0x65, 0xc5, 0x2a, 0x62, 0x8d, 0xf1, 0x16, - 0x25, 0xae, 0x1c, 0xbb, 0x5c, 0x50, 0xfd, 0x36, 0x61, 0xdc, 0x27, 0xd5, 0x3a, 0x27, 0xd4, 0x8d, - 0xf8, 0xe2, 0x44, 0xc5, 0xff, 0x39, 0xc5, 0xef, 0xb0, 0xe3, 0xe2, 0xd9, 0xed, 0xe0, 0x47, 0x75, - 0xbc, 0x22, 0x3b, 0x4c, 0xd1, 0x2a, 0xca, 0x86, 0xea, 0xca, 0x1e, 0xd3, 0x63, 0x2a, 0xe9, 0xc1, - 0x3f, 0x45, 0xed, 0x35, 0xc1, 0x68, 0x1a, 0x92, 0xf5, 0xf5, 0x06, 0x2b, 0xf5, 0x91, 0x55, 0x6b, - 0x30, 0xca, 0xa6, 0x64, 0x5b, 0xff, 0xdd, 0x24, 0x5c, 0xab, 0x78, 0x94, 0x1f, 0x20, 0xff, 0x14, - 0xf3, 0x32, 0xf2, 0x91, 0xf3, 0xc0, 0xb3, 0x11, 0xc7, 0x65, 0x65, 0x2f, 0x3d, 0x0b, 0x93, 0x9c, - 0xf0, 0x1a, 0xce, 0x69, 0xab, 0xda, 0x46, 0xca, 0x90, 0x0d, 0x7d, 0x15, 0xd2, 0x36, 0x66, 0x96, - 0x4f, 0xbc, 0x60, 0xa2, 0xb9, 0x2b, 0xa2, 0x2f, 0x4e, 0xd2, 0xaf, 0x42, 0xca, 0x11, 0xa0, 0x26, - 0xb1, 0x73, 0xe3, 0xa2, 0x7f, 0x46, 0x12, 0xf6, 0x6d, 0xfd, 0x10, 0xe6, 0x1c, 0x74, 0x8a, 0x7d, - 0xf3, 0x08, 0x63, 0xd3, 0x47, 0x1c, 0xe7, 0x26, 0x02, 0x8e, 0xed, 0xc2, 0x87, 0x9f, 0xae, 0x68, - 0x7f, 0xfb, 0x74, 0xe5, 0xc6, 0x31, 0xe1, 0x27, 0xf5, 0x6a, 0xc1, 0xa2, 0x8e, 0xb2, 0x8b, 0xfa, - 0xb9, 0xc5, 0xec, 0xd3, 0x22, 0x3f, 0xf7, 0x30, 0x2b, 0xec, 0x62, 0xcb, 0xc8, 0x08, 0x94, 0x3d, - 0x8c, 0x0d, 0xc4, 0x71, 0x80, 0xca, 0x9b, 0x51, 0x27, 0x87, 0x43, 0xe5, 0x71, 0x54, 0x0b, 0x96, - 0x7c, 0x5c, 0x43, 0xe7, 0x0a, 0x97, 0x9d, 0x20, 0x5f, 0xa1, 0x4f, 0x0d, 0x85, 0xbe, 0xa8, 0xd0, - 0xf6, 0x30, 0xae, 0x04, 0x58, 0x42, 0xc8, 0xb7, 0x61, 0xd1, 0x21, 0xae, 0xe9, 0xf9, 0xc4, 0xc2, - 0x26, 0x27, 0xd6, 0xa9, 0xc9, 0xc8, 0xfb, 0x38, 0x37, 0x3d, 0x94, 0x84, 0x05, 0x87, 0xb8, 0xe5, - 0x00, 0xe9, 0x90, 0x58, 0xa7, 0x15, 0xf2, 0xbe, 0x98, 0x43, 0x00, 0xff, 0xb0, 0x8e, 0x5c, 0x4e, - 0xf8, 0x79, 0x4c, 0xc2, 0xcc, 0x70, 0x73, 0x70, 0x88, 0xfb, 0x8e, 0x02, 0x8b, 0x84, 0x7c, 0x0d, - 0xa6, 0x18, 0x47, 0xbc, 0xce, 0x72, 0xa9, 0x55, 0x6d, 0x63, 0x6e, 0x73, 0xa3, 0xd0, 0x3d, 0xc8, - 0x0a, 0xd2, 0xe1, 0x2a, 0x82, 0xdf, 0x50, 0xe3, 0xee, 0xdc, 0xf8, 0xf1, 0x07, 0x2b, 0x63, 0xff, - 0xfc, 0x60, 0x65, 0xec, 0x2f, 0xbf, 0xbf, 0xb5, 0xac, 0xe2, 0xe1, 0x98, 0x9e, 0x45, 0x83, 0x76, - 0xa8, 0xcb, 0xb1, 0xcb, 0xd7, 0x7f, 0xa3, 0xc1, 0x52, 0x49, 0x21, 0x96, 0x5c, 0x54, 0xad, 0x5d, - 0xdc, 0x5d, 0xef, 0x42, 0x26, 0xd4, 0xf1, 0xf0, 0xdc, 0xc3, 0xc2, 0x63, 0xfb, 0x4c, 0xa1, 0x14, - 0xe3, 0x37, 0x9a, 0x46, 0xdf, 0x99, 0x09, 0x27, 0xb2, 0xfe, 0x8f, 0x0c, 0xac, 0x6d, 0x23, 0x6e, - 0x9d, 0x84, 0xdc, 0x07, 0xd4, 0x26, 0x47, 0xc4, 0x42, 0x81, 0xd4, 0x0b, 0x6b, 0xfd, 0x43, 0x0d, - 0xd6, 0x99, 0x47, 0xb9, 0xa9, 0x42, 0xcd, 0x0b, 0x02, 0xd8, 0xac, 0x8b, 0x08, 0x36, 0xc3, 0x94, - 0xc7, 0x72, 0xe3, 0xab, 0xe3, 0x1b, 0xe9, 0xcd, 0x2f, 0xf7, 0x9a, 0x4c, 0xcf, 0x24, 0x60, 0xe4, - 0x59, 0xaf, 0x6e, 0xa6, 0xff, 0x52, 0x83, 0x0d, 0x1b, 0xfb, 0xe4, 0x0c, 0x05, 0xe8, 0x7d, 0xb4, - 0x99, 0x10, 0xda, 0x7c, 0xb5, 0x97, 0x36, 0xbb, 0x11, 0x56, 0x77, 0x9d, 0x5e, 0xb3, 0xfb, 0x33, - 0x31, 0xbd, 0x0e, 0xaf, 0xc6, 0x0d, 0x54, 0x43, 0x75, 0xd7, 0x3a, 0x89, 0x29, 0x33, 0x29, 0x94, - 0x79, 0x33, 0x99, 0x69, 0xee, 0x8a, 0xd1, 0x91, 0x06, 0xaf, 0xb0, 0x2e, 0x3d, 0x4c, 0xff, 0x81, - 0x06, 0x6b, 0x1e, 0xf6, 0x3d, 0xcc, 0xeb, 0xa8, 0xd6, 0x55, 0xf8, 0x54, 0xff, 0x75, 0x29, 0x87, - 0x20, 0x1d, 0x35, 0xc8, 0x7b, 0xbd, 0xba, 0x99, 0xfe, 0x33, 0x0d, 0x6e, 0xe0, 0xc7, 0x1e, 0xf1, - 0xcf, 0xcd, 0xa3, 0x3a, 0xaf, 0xfb, 0x98, 0x75, 0xd5, 0x65, 0x5a, 0xe8, 0xf2, 0x95, 0xde, 0x0e, - 0x1f, 0x20, 0xed, 0x49, 0xa0, 0x8e, 0xfa, 0xac, 0xe3, 0x7e, 0x2c, 0x4c, 0xff, 0x85, 0x06, 0x37, - 0xb9, 0x8f, 0x6c, 0xe2, 0x1e, 0x9b, 0x3e, 0x7e, 0x84, 0x7c, 0xdb, 0xb4, 0x90, 0xe3, 0x21, 0x72, - 0xec, 0xb6, 0xfa, 0x8a, 0xc8, 0x4e, 0x7d, 0x5c, 0xe5, 0x50, 0x42, 0x19, 0x02, 0x69, 0x47, 0x01, - 0xb5, 0xb8, 0xca, 0x75, 0xde, 0x9f, 0x49, 0xd8, 0xaa, 0x4a, 0x5c, 0xe4, 0x9f, 0x9b, 0x54, 0x44, - 0x57, 0x77, 0x5b, 0xa5, 0xfa, 0xdb, 0x6a, 0x5b, 0x20, 0xdd, 0x97, 0x40, 0x9d, 0x6d, 0x55, 0xed, - 0xc7, 0xc2, 0xf4, 0x9f, 0x6b, 0xf0, 0x7a, 0x8b, 0x4e, 0x5d, 0x82, 0x0a, 0x84, 0x4a, 0xdb, 0x03, - 0xaa, 0xd4, 0x29, 0xae, 0xd6, 0x9a, 0xf4, 0xea, 0x18, 0x54, 0xdf, 0x87, 0xbc, 0x8d, 0x5d, 0xea, - 0x98, 0x36, 0xb6, 0x88, 0x83, 0x6a, 0xac, 0x6d, 0xe1, 0xd2, 0x62, 0xe1, 0xde, 0xea, 0xa5, 0x8e, - 0x04, 0xdd, 0x0d, 0x70, 0x76, 0x15, 0x4c, 0xa4, 0xc3, 0x55, 0x3b, 0x4e, 0x6e, 0x59, 0x28, 0x0b, - 0x5e, 0x0e, 0x36, 0x62, 0x9b, 0x30, 0x8b, 0xd6, 0x5d, 0xde, 0x10, 0x9a, 0x11, 0x42, 0x8b, 0xbd, - 0x84, 0xee, 0x61, 0xbc, 0xab, 0xc6, 0x45, 0xc2, 0x16, 0x8f, 0xda, 0x89, 0xfa, 0x8f, 0x34, 0x58, - 0x57, 0xcb, 0x7f, 0x44, 0x7d, 0x0b, 0xdb, 0x26, 0xc3, 0x9c, 0xd7, 0xb0, 0x83, 0x63, 0x12, 0x59, - 0x6e, 0x56, 0x98, 0xfd, 0x4e, 0xff, 0x9d, 0x6e, 0x4f, 0x80, 0x54, 0x22, 0x8c, 0x48, 0xfa, 0x8a, - 0xd3, 0xb3, 0x3f, 0xf9, 0xa6, 0xf8, 0xc7, 0x09, 0xc8, 0x75, 0x4b, 0x55, 0x43, 0x6f, 0x30, 0x4b, - 0x30, 0x15, 0xd4, 0x0a, 0xd8, 0x57, 0x25, 0x9c, 0x6a, 0xe9, 0xd7, 0x00, 0x82, 0xf2, 0xd8, 0x14, - 0xeb, 0x24, 0x8b, 0x37, 0x23, 0x15, 0x50, 0xc4, 0x7a, 0xea, 0x2b, 0x90, 0x7e, 0x58, 0xa7, 0x3c, - 0xec, 0x17, 0x65, 0x98, 0x01, 0x82, 0x24, 0x19, 0xba, 0xd4, 0x3b, 0x8d, 0x8a, 0x6a, 0x6c, 0x44, - 0xf5, 0xce, 0xf4, 0x50, 0x12, 0x3a, 0xd6, 0x3b, 0xed, 0x45, 0xec, 0xcc, 0x48, 0x8a, 0xd8, 0xd4, - 0xc5, 0x8b, 0xd8, 0xc4, 0x4e, 0xf4, 0xdb, 0x69, 0xb8, 0xd6, 0x73, 0xcb, 0xb9, 0x74, 0x4f, 0x6a, - 0x71, 0x95, 0x89, 0x36, 0x57, 0x59, 0x81, 0xb4, 0x3c, 0xb2, 0x98, 0x81, 0x7f, 0x85, 0xbe, 0x24, - 0x49, 0xdb, 0x88, 0x61, 0x7d, 0x0d, 0x32, 0x8a, 0x41, 0x8c, 0x92, 0x4e, 0x64, 0xa8, 0x41, 0xef, - 0x04, 0x24, 0xbd, 0x00, 0x8b, 0x8a, 0x85, 0x59, 0xa8, 0x86, 0xcd, 0x23, 0x64, 0x71, 0xea, 0x0b, - 0x67, 0x98, 0x35, 0x5e, 0x92, 0x5d, 0x95, 0xa0, 0x67, 0x4f, 0x74, 0xe8, 0xa5, 0x48, 0x66, 0x60, - 0x50, 0xb1, 0xae, 0x73, 0x9b, 0xaf, 0xc5, 0xa2, 0x5c, 0x1d, 0xa2, 0x42, 0xf3, 0xdd, 0x17, 0x4d, - 0x51, 0x08, 0x2a, 0xcd, 0x82, 0xff, 0xfa, 0x77, 0x21, 0x4b, 0x5c, 0xc2, 0x89, 0x2c, 0x01, 0x8e, - 0x89, 0x1b, 0x2c, 0x28, 0xa1, 0xb1, 0x15, 0x1d, 0xc4, 0x09, 0x75, 0x85, 0x75, 0x20, 0xa0, 0x8c, - 0x00, 0x49, 0x3f, 0x81, 0x9c, 0x83, 0x48, 0xb0, 0x76, 0xc8, 0xb5, 0x70, 0xb3, 0x14, 0x18, 0x4a, - 0xca, 0x52, 0x0c, 0x2f, 0x2e, 0xa9, 0xdd, 0xdb, 0xd3, 0x43, 0xe1, 0xf7, 0xf3, 0xf6, 0xcc, 0x70, - 0xa8, 0x4d, 0x47, 0xb6, 0x2e, 0xd9, 0x65, 0x76, 0xe4, 0xd9, 0x65, 0xee, 0xd2, 0xb2, 0x4b, 0xe2, - 0x88, 0xfd, 0xf7, 0x14, 0xac, 0xf5, 0x2d, 0x36, 0x2e, 0x3d, 0x6a, 0xaf, 0xc3, 0x6c, 0x18, 0x50, - 0xe7, 0x4e, 0x95, 0xd6, 0x54, 0xdc, 0xaa, 0x40, 0xac, 0x08, 0x9a, 0x7e, 0x13, 0xe6, 0x15, 0x93, - 0xe7, 0xd3, 0x33, 0x62, 0x63, 0x5f, 0x45, 0xef, 0x9c, 0x24, 0x97, 0x15, 0xb5, 0x35, 0xdc, 0xa6, - 0x86, 0x0c, 0xb7, 0x41, 0xa3, 0xfc, 0x36, 0x64, 0x45, 0xbd, 0x2a, 0xce, 0x62, 0x26, 0x27, 0x0e, - 0x66, 0x1c, 0x39, 0x9e, 0x08, 0xf7, 0x71, 0x63, 0xb1, 0xd1, 0x77, 0x18, 0x76, 0x05, 0x43, 0x62, - 0x75, 0x40, 0x63, 0x48, 0x4a, 0x0e, 0x69, 0xf4, 0x35, 0x86, 0x64, 0x61, 0x12, 0xd9, 0x0e, 0x71, - 0x65, 0x3c, 0x1a, 0xb2, 0xd1, 0x9a, 0xf6, 0xd2, 0x6d, 0x69, 0xaf, 0x3d, 0xde, 0x32, 0x23, 0x89, - 0xb7, 0xd9, 0xd1, 0xc5, 0xdb, 0xdc, 0xc8, 0xe3, 0x6d, 0xfe, 0xb3, 0x8f, 0xb7, 0x8f, 0xa6, 0x61, - 0xad, 0xef, 0x41, 0xe8, 0xc5, 0x2e, 0x39, 0x40, 0xd8, 0x2e, 0xc1, 0x94, 0x3c, 0x36, 0xaa, 0x28, - 0x52, 0xad, 0xae, 0xbb, 0x27, 0x7c, 0x26, 0xbb, 0x67, 0x7a, 0xc4, 0xbb, 0xe7, 0x8b, 0x68, 0xfe, - 0x7f, 0x88, 0xe6, 0x5f, 0xa5, 0xe0, 0x7a, 0x82, 0xcb, 0xa6, 0xd1, 0xdc, 0x82, 0x77, 0x73, 0xf0, - 0xe1, 0xee, 0xc2, 0x07, 0x75, 0xf0, 0xe1, 0xee, 0xc6, 0x93, 0x3b, 0xf8, 0xd4, 0x48, 0x0e, 0x43, - 0xd3, 0x23, 0xbd, 0xd1, 0x9f, 0x19, 0xf9, 0x8d, 0x7e, 0x6a, 0xe4, 0x37, 0xfa, 0x70, 0x79, 0x37, - 0xfa, 0xdf, 0x01, 0xfd, 0x6d, 0x5a, 0xf7, 0x6b, 0xe7, 0xfb, 0x2e, 0xc7, 0x3e, 0x66, 0xdc, 0x68, - 0xae, 0xfb, 0x07, 0x72, 0xcf, 0x76, 0x24, 0xbd, 0x0a, 0x59, 0x49, 0xdd, 0xab, 0xbb, 0xe2, 0x7e, - 0x0e, 0x71, 0xbc, 0x83, 0xbc, 0x58, 0x6e, 0x1c, 0x44, 0x42, 0x47, 0xac, 0xd8, 0xab, 0xc4, 0xec, - 0x70, 0xaf, 0x12, 0xfa, 0x41, 0x54, 0xeb, 0x8a, 0xbb, 0x37, 0x26, 0x32, 0x61, 0xba, 0x37, 0x90, - 0xdc, 0xea, 0x44, 0x26, 0x61, 0x61, 0x55, 0x2c, 0x5b, 0x89, 0x53, 0xd3, 0x7f, 0x35, 0xc8, 0xf7, - 0xbe, 0x3b, 0x1a, 0x4d, 0x56, 0xfa, 0x16, 0x2c, 0x34, 0x5d, 0x75, 0x11, 0x6b, 0xd8, 0xd7, 0xb9, - 0x79, 0x16, 0x53, 0x99, 0x58, 0xc9, 0xb3, 0xf2, 0x5f, 0x35, 0xb8, 0xda, 0xe3, 0x7a, 0x70, 0xe8, - 0x79, 0x97, 0x61, 0xae, 0xf9, 0xde, 0x52, 0xbd, 0x8c, 0xbc, 0xd1, 0xfb, 0x2d, 0x22, 0xa6, 0x82, - 0x31, 0xdb, 0x74, 0x33, 0x99, 0x78, 0x46, 0xff, 0x9a, 0x86, 0x1b, 0xc9, 0xee, 0x5f, 0x5f, 0x3c, - 0xb8, 0xbe, 0x78, 0x70, 0x4d, 0x98, 0x9e, 0xbb, 0x9d, 0x5f, 0x53, 0x83, 0x9f, 0x5f, 0xa1, 0xfb, - 0xf9, 0xb5, 0x53, 0x3e, 0x48, 0x5f, 0x4a, 0x3e, 0x68, 0x1c, 0x8d, 0x33, 0xf1, 0xa3, 0xf1, 0xc5, - 0x33, 0xf6, 0x83, 0xce, 0x19, 0xfb, 0x0b, 0x3d, 0x1f, 0xda, 0xd4, 0x65, 0xc4, 0x25, 0x64, 0xee, - 0x3f, 0x68, 0x90, 0xed, 0x04, 0x17, 0x9c, 0x74, 0xd4, 0x75, 0x89, 0x8c, 0x6d, 0xd5, 0xd2, 0x97, - 0x61, 0x26, 0xba, 0x21, 0x91, 0x91, 0x1d, 0xb5, 0xbb, 0x1d, 0xca, 0xc6, 0x13, 0x1e, 0xca, 0x26, - 0x86, 0x3b, 0x94, 0xad, 0xff, 0x59, 0x83, 0x4c, 0x93, 0xee, 0x2d, 0x07, 0x4c, 0xad, 0xef, 0x01, - 0xf3, 0x4a, 0xe2, 0x03, 0xe6, 0xa8, 0xe7, 0xf2, 0xa7, 0x2b, 0x70, 0xbd, 0xe3, 0x33, 0xe1, 0x25, - 0x1d, 0xda, 0xdf, 0x83, 0xd9, 0xe8, 0x05, 0x93, 0xb8, 0x47, 0x54, 0x4c, 0x28, 0xbd, 0xf9, 0xa5, - 0x81, 0x9f, 0x2d, 0xf7, 0xdd, 0x23, 0x6a, 0x64, 0xac, 0x58, 0x4b, 0xaf, 0xc2, 0xcb, 0x11, 0xb6, - 0x7a, 0x2d, 0xf5, 0x28, 0x8d, 0x5e, 0xd1, 0x0b, 0xbd, 0x64, 0x84, 0xb0, 0x52, 0x48, 0x99, 0xd2, - 0x9a, 0xb1, 0x68, 0xb5, 0xd1, 0x92, 0xfb, 0xf5, 0x47, 0xe3, 0x5d, 0xec, 0x78, 0x49, 0x3b, 0xd8, - 0x28, 0xed, 0x58, 0x87, 0x95, 0x8e, 0x76, 0x34, 0x91, 0x6d, 0x13, 0xb1, 0x23, 0x0f, 0x69, 0xd1, - 0x57, 0x3b, 0x58, 0x74, 0x2b, 0xc4, 0xd4, 0x1f, 0xc2, 0xb5, 0xce, 0x62, 0xe5, 0x83, 0x69, 0xf8, - 0xfd, 0xc1, 0xa0, 0x42, 0x97, 0x3b, 0x08, 0x95, 0x8b, 0x90, 0x7c, 0x35, 0x7f, 0xa2, 0xc1, 0x4b, - 0xe1, 0x70, 0xe2, 0x72, 0x39, 0x5c, 0xbf, 0x09, 0xf3, 0xc8, 0x92, 0xef, 0xaa, 0xc8, 0xb6, 0x7d, - 0xcc, 0x98, 0x5a, 0xc5, 0x39, 0x45, 0xde, 0x92, 0x54, 0xfd, 0x00, 0xc0, 0xc5, 0x8f, 0x4c, 0x2f, - 0x18, 0xcb, 0x86, 0xbc, 0xcd, 0x48, 0xb9, 0xf8, 0x91, 0x10, 0xce, 0xd6, 0x7f, 0x7d, 0x05, 0x36, - 0x9a, 0xd6, 0xb2, 0x8c, 0x45, 0x19, 0x2f, 0xbb, 0x2f, 0xc9, 0xc1, 0xde, 0x84, 0x25, 0x4f, 0xc2, - 0x8a, 0x55, 0x88, 0xed, 0x7f, 0xe3, 0x62, 0xff, 0xcb, 0x7a, 0xa1, 0x50, 0x5a, 0x6b, 0x6c, 0x80, - 0x26, 0x64, 0xa3, 0xa5, 0x23, 0x2e, 0x8f, 0x96, 0x4e, 0xfa, 0xcb, 0xad, 0x5e, 0x4b, 0xd7, 0x66, - 0x5f, 0x43, 0xf7, 0x5b, 0x49, 0x03, 0xbc, 0xf0, 0x6a, 0xb0, 0xd8, 0xe1, 0x01, 0x7b, 0x68, 0x73, - 0x7c, 0x03, 0x66, 0x98, 0x75, 0x82, 0xed, 0x7a, 0x0d, 0xab, 0x50, 0x4b, 0xfa, 0x76, 0x5e, 0x51, - 0xc3, 0x8c, 0x08, 0x20, 0xf1, 0x24, 0x3e, 0xd1, 0x60, 0x45, 0x7c, 0x10, 0xb5, 0x43, 0x1d, 0xa7, - 0xee, 0x12, 0x7e, 0x1e, 0x58, 0xbb, 0x12, 0x58, 0xfe, 0xc2, 0x13, 0x7a, 0x00, 0xa9, 0xd6, 0x8f, - 0x9e, 0xde, 0x52, 0x5f, 0x6b, 0x16, 0x9a, 0x3e, 0xcc, 0x6c, 0x28, 0xd5, 0x4d, 0x07, 0xa3, 0x81, - 0x94, 0x78, 0x6a, 0xff, 0xd1, 0xa0, 0xb0, 0xc5, 0xa9, 0x43, 0x2c, 0x59, 0x95, 0xdc, 0xf7, 0x6d, - 0x51, 0x75, 0x1e, 0xd4, 0x6b, 0x9c, 0x78, 0x35, 0x82, 0xfd, 0xd0, 0x6e, 0x17, 0x9e, 0x29, 0x86, - 0xa5, 0xf0, 0xeb, 0x04, 0x8c, 0x4d, 0x27, 0x12, 0x10, 0x4e, 0xbb, 0x98, 0xe0, 0x8b, 0x84, 0xb8, - 0x62, 0x46, 0xd6, 0x69, 0x27, 0x26, 0x9e, 0xf9, 0xe7, 0x1f, 0x43, 0x26, 0xfe, 0x35, 0x9c, 0xbe, - 0x09, 0xd9, 0xd2, 0x37, 0x77, 0xde, 0xde, 0xba, 0xf7, 0xf5, 0x92, 0xf9, 0xe0, 0x5e, 0xa5, 0x5c, - 0xda, 0xd9, 0xdf, 0xdb, 0x2f, 0xed, 0x2e, 0x8c, 0x2d, 0xe7, 0x9e, 0x3c, 0x5d, 0xed, 0xd8, 0xa7, - 0xeb, 0x30, 0x51, 0x29, 0xdf, 0x3f, 0x5c, 0xd0, 0x96, 0x67, 0x9e, 0x3c, 0x5d, 0x15, 0xff, 0x03, - 0x43, 0xec, 0x96, 0x8c, 0xfd, 0x77, 0xb7, 0x0e, 0xf7, 0xdf, 0x2d, 0x55, 0x16, 0xae, 0x2c, 0xcf, - 0x3f, 0x79, 0xba, 0x1a, 0x27, 0x6d, 0x9f, 0x7c, 0xf8, 0x2c, 0xaf, 0x7d, 0xfc, 0x2c, 0xaf, 0xfd, - 0xfd, 0x59, 0x5e, 0xfb, 0xe9, 0xf3, 0xfc, 0xd8, 0xc7, 0xcf, 0xf3, 0x63, 0x9f, 0x3c, 0xcf, 0x8f, - 0xbd, 0x77, 0x2f, 0x96, 0x84, 0xf6, 0x43, 0x63, 0xdc, 0x45, 0x55, 0x56, 0x8c, 0x4c, 0x73, 0xcb, - 0xa2, 0x3e, 0x8e, 0x37, 0x4f, 0x10, 0x71, 0x8b, 0x0e, 0x0d, 0x96, 0x88, 0x35, 0x3e, 0xb1, 0x15, - 0x09, 0xab, 0x3a, 0x25, 0xbe, 0x98, 0xfd, 0xe2, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x8e, - 0xe4, 0xae, 0x66, 0x2c, 0x00, 0x00, + // 2444 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x8f, 0x1b, 0x49, + 0xfd, 0x9f, 0x9e, 0x99, 0x4c, 0xec, 0xb2, 0xe7, 0xd5, 0xe3, 0x9d, 0x9f, 0x77, 0x92, 0x78, 0x66, + 0x3a, 0xaf, 0xd9, 0xfc, 0x36, 0x36, 0x09, 0x8b, 0x22, 0x2c, 0x21, 0x98, 0xe7, 0xee, 0x88, 0x64, + 0xe2, 0xb4, 0x67, 0x76, 0x57, 0x11, 0xa8, 0x55, 0xee, 0xae, 0x99, 0x29, 0xe2, 0x7e, 0xa4, 0xab, + 0x3c, 0xc9, 0xac, 0x38, 0x70, 0x60, 0x05, 0xca, 0x09, 0x10, 0x0f, 0x71, 0x88, 0xb4, 0x27, 0xce, + 0x48, 0xf0, 0x0f, 0xc0, 0x01, 0x2d, 0x2b, 0x0e, 0x2b, 0x71, 0x00, 0x71, 0x58, 0xa1, 0x44, 0x08, + 0xfe, 0x02, 0xc4, 0x81, 0x03, 0xea, 0xaa, 0xea, 0x76, 0xdb, 0x6e, 0xb7, 0xdb, 0x1e, 0x9b, 0x3d, + 0x90, 0x4b, 0xe2, 0xfe, 0xd6, 0xb7, 0x3e, 0xf5, 0xad, 0xef, 0xab, 0xbe, 0xf5, 0x18, 0xf0, 0x06, + 0xb6, 0xbe, 0x85, 0x74, 0x8a, 0x4f, 0x50, 0x09, 0x3d, 0xd5, 0x8f, 0xa1, 0x75, 0x84, 0x4a, 0x27, + 0xb7, 0x6a, 0x88, 0xc2, 0x5b, 0x25, 0xc7, 0xb5, 0x1d, 0x9b, 0xc0, 0x7a, 0xd1, 0x71, 0x6d, 0x6a, + 0xcb, 0x4b, 0x01, 0x6b, 0xd1, 0x67, 0x2d, 0x0a, 0xd6, 0xa5, 0x82, 0x6e, 0x13, 0xd3, 0x26, 0xa5, + 0x1a, 0x24, 0xcd, 0xfe, 0xba, 0x8d, 0x2d, 0xde, 0x77, 0xa9, 0x28, 0xda, 0x0d, 0x4c, 0xa8, 0x8b, + 0x6b, 0x0d, 0x8a, 0x6d, 0x2b, 0xe0, 0x0b, 0x13, 0x05, 0xff, 0xff, 0x09, 0x7e, 0x93, 0x1c, 0x95, + 0x4e, 0x6e, 0x79, 0xff, 0x89, 0x86, 0xd7, 0x79, 0x83, 0xc6, 0xbe, 0x4a, 0xfc, 0x43, 0x34, 0xe5, + 0x8e, 0xec, 0x23, 0x9b, 0xd3, 0xbd, 0x5f, 0x82, 0x1a, 0x37, 0xc1, 0x60, 0x1a, 0x9c, 0xf5, 0x6a, + 0x93, 0xd5, 0x76, 0xa1, 0x5e, 0x6f, 0x32, 0xf2, 0x4f, 0xc1, 0x36, 0x0f, 0x4d, 0x6c, 0xd9, 0x25, + 0xf6, 0x2f, 0x27, 0x29, 0x7f, 0x9c, 0x02, 0x97, 0xaa, 0x8e, 0x4d, 0xef, 0x41, 0xf7, 0x11, 0xa2, + 0x15, 0xe8, 0x42, 0xf3, 0xc0, 0x31, 0x20, 0x45, 0x15, 0xa1, 0x42, 0x39, 0x07, 0xce, 0x51, 0x4c, + 0xeb, 0x28, 0x2f, 0xad, 0x48, 0x6b, 0x69, 0x95, 0x7f, 0xc8, 0x2b, 0x20, 0x63, 0x20, 0xa2, 0xbb, + 0xd8, 0xf1, 0xe6, 0x9e, 0x1f, 0x67, 0x6d, 0x61, 0x92, 0x7c, 0x01, 0xa4, 0x4d, 0x06, 0xaa, 0x61, + 0x23, 0x3f, 0xc1, 0xda, 0x53, 0x9c, 0xb0, 0x6b, 0xc8, 0xbb, 0x60, 0xc6, 0x84, 0x8f, 0x90, 0xab, + 0x1d, 0x22, 0xa4, 0xb9, 0x90, 0xa2, 0xfc, 0xa4, 0xc7, 0xb1, 0x71, 0xf9, 0xe3, 0xcf, 0x96, 0xa5, + 0xbf, 0x7c, 0xb6, 0x7c, 0x81, 0xeb, 0x87, 0x18, 0x8f, 0x8a, 0xd8, 0x2e, 0x99, 0x90, 0x1e, 0x17, + 0xef, 0xa2, 0x23, 0xa8, 0x9f, 0x6e, 0x21, 0x5d, 0xcd, 0xb2, 0xae, 0x3b, 0x08, 0xa9, 0x90, 0x22, + 0x0f, 0x8a, 0xb6, 0x42, 0x9d, 0xeb, 0x03, 0x8a, 0x86, 0xa1, 0xde, 0x07, 0x8b, 0x2e, 0xaa, 0xc3, + 0x53, 0x01, 0x46, 0x8e, 0xa1, 0x2b, 0x20, 0xa7, 0x92, 0x43, 0x2e, 0x08, 0x88, 0x1d, 0x84, 0xaa, + 0x1e, 0x00, 0x43, 0x56, 0xc1, 0x82, 0x89, 0x2d, 0xcd, 0x71, 0xb1, 0x8e, 0x34, 0x8a, 0xf5, 0x47, + 0x1a, 0xc1, 0x1f, 0xa0, 0xfc, 0xf9, 0xe4, 0xb0, 0x73, 0x26, 0xb6, 0x2a, 0x5e, 0xf7, 0x7d, 0xac, + 0x3f, 0xaa, 0xe2, 0x0f, 0x98, 0xb4, 0x1e, 0xe6, 0xe3, 0x06, 0xb4, 0x28, 0xa6, 0xa7, 0x21, 0xd8, + 0x54, 0x1f, 0xd2, 0x9a, 0xd8, 0x7a, 0x20, 0x10, 0x02, 0xe4, 0xaf, 0x81, 0x29, 0x42, 0x21, 0x6d, + 0x90, 0x7c, 0x7a, 0x45, 0x5a, 0x9b, 0xb9, 0xbd, 0x56, 0xec, 0x1e, 0x40, 0x45, 0xee, 0x39, 0x55, + 0xc6, 0xaf, 0x8a, 0x7e, 0xf2, 0x45, 0x30, 0xe5, 0x89, 0x83, 0xdc, 0x3c, 0x60, 0xb2, 0x4c, 0x7a, + 0xb2, 0xa8, 0x82, 0x26, 0xef, 0x80, 0xac, 0x27, 0xb9, 0x65, 0x7b, 0x8e, 0x02, 0xeb, 0xf9, 0x4c, + 0x72, 0x79, 0x33, 0x26, 0xb6, 0xf6, 0x44, 0x3f, 0x79, 0x0b, 0x00, 0x68, 0x78, 0x48, 0xd8, 0x3a, + 0xb4, 0xf3, 0xd9, 0x15, 0x69, 0x2d, 0x73, 0xfb, 0x6a, 0x9c, 0xac, 0xeb, 0x1e, 0xf7, 0xae, 0x75, + 0x68, 0xab, 0x69, 0xe8, 0xff, 0x2c, 0x3f, 0xf8, 0xfe, 0x47, 0xcb, 0x63, 0xff, 0xf8, 0x68, 0x79, + 0xec, 0x93, 0x5f, 0xdf, 0x5c, 0x12, 0x71, 0x79, 0x64, 0x9f, 0x04, 0x9d, 0x36, 0x6d, 0x8b, 0x22, + 0x8b, 0x3e, 0xfb, 0xfb, 0x2f, 0x6f, 0x5c, 0x0b, 0x02, 0x31, 0x36, 0x66, 0x94, 0x3f, 0x48, 0x60, + 0x71, 0x5b, 0xb0, 0x6e, 0x5b, 0xb0, 0x56, 0x3f, 0x7b, 0x38, 0xdd, 0x05, 0x59, 0x7f, 0xf0, 0xfd, + 0x53, 0x07, 0xb1, 0x88, 0xea, 0x61, 0x99, 0xed, 0x10, 0xbf, 0xda, 0xd2, 0xbb, 0xfc, 0xa6, 0x3f, + 0x67, 0x6f, 0x56, 0xcb, 0xc1, 0xac, 0xa2, 0x65, 0x56, 0x7e, 0x3a, 0x0d, 0x56, 0x37, 0x20, 0xd5, + 0x8f, 0xfd, 0xf6, 0x7b, 0xb6, 0x81, 0x0f, 0xb1, 0x0e, 0x3d, 0xc9, 0xce, 0x3c, 0xb3, 0x0f, 0x25, + 0xa0, 0x10, 0xc7, 0xa6, 0x9a, 0x48, 0x17, 0x8e, 0xa7, 0x50, 0xad, 0xc1, 0x34, 0xaa, 0xf9, 0x99, + 0x9c, 0xe4, 0x27, 0x56, 0x26, 0xd6, 0x32, 0xb7, 0xbf, 0x1c, 0x37, 0xe1, 0x58, 0xa3, 0xa8, 0x05, + 0x12, 0xd7, 0x4c, 0xe4, 0x9f, 0x49, 0x60, 0xcd, 0x40, 0x2e, 0x3e, 0x81, 0x1e, 0x7a, 0x0f, 0x69, + 0x26, 0x99, 0x34, 0x5f, 0x8d, 0x93, 0x66, 0x2b, 0xc0, 0xea, 0x2e, 0xd3, 0x15, 0xa3, 0x37, 0x13, + 0x91, 0x1b, 0xe0, 0x62, 0x58, 0x41, 0x75, 0xd8, 0xb0, 0xf4, 0xe3, 0x90, 0x30, 0xe7, 0x98, 0x30, + 0x6f, 0x25, 0x53, 0xcd, 0x5d, 0xd6, 0x3b, 0x90, 0xe0, 0x75, 0xd2, 0xa5, 0x85, 0xc8, 0xdf, 0x95, + 0xc0, 0xaa, 0x83, 0x5c, 0x07, 0xd1, 0x06, 0xac, 0x77, 0x1d, 0x7c, 0xaa, 0xb7, 0x5d, 0x2a, 0x3e, + 0x48, 0xa4, 0x04, 0x05, 0x27, 0xae, 0x99, 0xc8, 0x3f, 0x94, 0xc0, 0x35, 0xf4, 0xd4, 0xc1, 0xee, + 0xa9, 0x76, 0xd8, 0xa0, 0x0d, 0x17, 0x91, 0xae, 0xb2, 0x9c, 0x67, 0xb2, 0x7c, 0x25, 0x3e, 0x28, + 0x3c, 0xa4, 0x1d, 0x0e, 0x14, 0x29, 0x8f, 0x82, 0x7a, 0xb1, 0x10, 0xf9, 0x27, 0x12, 0xb8, 0x4e, + 0x5d, 0x68, 0x60, 0xeb, 0x48, 0x73, 0xd1, 0x13, 0xe8, 0x1a, 0x9a, 0x0e, 0x4d, 0x07, 0xe2, 0x23, + 0xab, 0xdd, 0x57, 0x58, 0x36, 0xee, 0xe1, 0x2a, 0xfb, 0x1c, 0x4a, 0x65, 0x48, 0x9b, 0x02, 0xa8, + 0xcd, 0x55, 0x2e, 0xd3, 0xde, 0x4c, 0x4c, 0x57, 0x35, 0x6c, 0x41, 0xf7, 0x54, 0xb3, 0x59, 0x74, + 0x75, 0xd7, 0x55, 0xba, 0xb7, 0xae, 0x36, 0x18, 0xd2, 0x7d, 0x0e, 0x14, 0xad, 0xab, 0x5a, 0x2f, + 0x16, 0x22, 0xff, 0x58, 0x02, 0x57, 0xdb, 0x64, 0xea, 0x12, 0x54, 0x80, 0x89, 0xb4, 0xd1, 0xa7, + 0x48, 0x51, 0x71, 0xb5, 0xda, 0x22, 0x57, 0x64, 0x50, 0x7d, 0x1b, 0x14, 0x0c, 0x64, 0xd9, 0xa6, + 0x66, 0x20, 0x1d, 0x9b, 0xb0, 0x4e, 0x3a, 0x0c, 0x97, 0x61, 0x86, 0xbb, 0x13, 0x27, 0x0e, 0x07, + 0xdd, 0xf2, 0x70, 0xb6, 0x04, 0x4c, 0x20, 0xc3, 0x05, 0x23, 0x4c, 0x6e, 0x33, 0x94, 0x0e, 0x5e, + 0xf3, 0x4a, 0x0c, 0x03, 0x13, 0xdd, 0x6e, 0x58, 0xb4, 0x39, 0x28, 0x5f, 0xc5, 0x4a, 0x71, 0x83, + 0xee, 0x20, 0xb4, 0x25, 0xfa, 0x05, 0x83, 0x2d, 0x1c, 0x76, 0x12, 0xe5, 0xef, 0x49, 0x40, 0x11, + 0xe6, 0x3f, 0xb4, 0x5d, 0x1d, 0x19, 0x1a, 0x41, 0x94, 0xd6, 0x91, 0x89, 0x42, 0x23, 0x92, 0xfc, + 0x34, 0x53, 0x7b, 0xb9, 0xf7, 0x22, 0xbf, 0xc3, 0x40, 0xaa, 0x01, 0x46, 0x30, 0xfa, 0xb2, 0x19, + 0xdb, 0x4e, 0xca, 0x07, 0xc9, 0xd7, 0xd8, 0x1b, 0xc1, 0x6a, 0xd4, 0x73, 0xc9, 0x51, 0x3e, 0x39, + 0x07, 0xf2, 0xdd, 0x32, 0xdb, 0xc0, 0xeb, 0xd1, 0x62, 0x50, 0xbb, 0xf0, 0xaa, 0xd5, 0xaf, 0x5a, + 0x2e, 0x01, 0xe0, 0x6d, 0x12, 0x34, 0x66, 0x56, 0x5e, 0xaf, 0xaa, 0x69, 0x8f, 0xc2, 0xcc, 0x2f, + 0x2f, 0x83, 0xcc, 0xe3, 0x86, 0x4d, 0xfd, 0x76, 0x56, 0x84, 0xaa, 0x80, 0x91, 0x38, 0x43, 0x97, + 0x1a, 0xb0, 0x59, 0x5a, 0x8e, 0x0d, 0xb3, 0x06, 0x3c, 0x9f, 0x1c, 0x36, 0xb2, 0x06, 0xec, 0xac, + 0xd0, 0x53, 0xc3, 0xab, 0xd0, 0xd3, 0x83, 0x56, 0xe8, 0xed, 0x95, 0x23, 0x48, 0x3e, 0xcb, 0x98, + 0xca, 0x31, 0x33, 0x60, 0xe5, 0x78, 0x37, 0xb9, 0x57, 0xaf, 0x46, 0x54, 0x8e, 0xad, 0xfe, 0xaa, + 0xfc, 0x22, 0x05, 0x2e, 0xc5, 0xae, 0x94, 0x43, 0xf7, 0xe8, 0x36, 0x97, 0x9d, 0xec, 0x70, 0xd9, + 0x65, 0x90, 0xe1, 0x1b, 0x48, 0xcd, 0xf3, 0x73, 0xdf, 0xa7, 0x39, 0x69, 0x03, 0x12, 0x24, 0xaf, + 0x82, 0xac, 0x60, 0x60, 0xbd, 0xb8, 0x33, 0xab, 0xa2, 0xd3, 0x03, 0x8f, 0x24, 0x17, 0xc1, 0x82, + 0x60, 0x21, 0x3a, 0xac, 0x23, 0xed, 0x10, 0xea, 0xd4, 0x76, 0x99, 0x7f, 0x4e, 0xab, 0xf3, 0xbc, + 0xa9, 0xea, 0xb5, 0xec, 0xb0, 0x06, 0x79, 0x3b, 0x18, 0x93, 0x7a, 0x75, 0x6e, 0x8a, 0xd5, 0xb9, + 0x57, 0x42, 0xb6, 0x11, 0x5b, 0x5a, 0x5f, 0xc9, 0xf7, 0xd9, 0x27, 0xab, 0x71, 0x85, 0x64, 0xde, + 0x6f, 0xf9, 0x00, 0xe4, 0xb0, 0x85, 0x29, 0xe6, 0x95, 0xcb, 0x11, 0xb6, 0x3c, 0xcf, 0xc3, 0x76, + 0xc8, 0xf5, 0x7a, 0x7a, 0x8c, 0x2c, 0x00, 0xee, 0xb1, 0xfe, 0xaa, 0xd7, 0x5d, 0xfe, 0x26, 0xc8, + 0x9b, 0x10, 0x7b, 0x66, 0x85, 0x96, 0x8e, 0x5a, 0xa1, 0xfb, 0x70, 0xc6, 0xc5, 0x10, 0x48, 0x18, + 0xbe, 0x33, 0xea, 0x32, 0xc9, 0x41, 0x7b, 0x45, 0x5d, 0xb6, 0x0f, 0xa8, 0x96, 0xa8, 0xeb, 0x92, + 0xb9, 0xa6, 0x47, 0x93, 0xb9, 0x66, 0xce, 0x98, 0xb9, 0xda, 0x73, 0xc4, 0xec, 0x50, 0x72, 0xc4, + 0xdc, 0x7f, 0x73, 0x77, 0x19, 0x9b, 0x06, 0x94, 0xbf, 0x9d, 0x07, 0xab, 0x3d, 0x4b, 0xb3, 0xa1, + 0x27, 0x8b, 0xcb, 0x60, 0xda, 0x8f, 0xe3, 0x53, 0xb3, 0x66, 0xd7, 0x45, 0xba, 0x10, 0xf1, 0x5f, + 0x65, 0x34, 0xf9, 0x3a, 0x98, 0x15, 0x4c, 0x8e, 0x6b, 0x9f, 0x60, 0x03, 0xb9, 0x22, 0x69, 0xcc, + 0x70, 0x72, 0x45, 0x50, 0xdb, 0xa3, 0x7c, 0x6a, 0xc0, 0x28, 0xef, 0x37, 0xb9, 0xdc, 0x02, 0x39, + 0x56, 0xdd, 0xb3, 0x32, 0x42, 0xa3, 0xd8, 0x44, 0x84, 0x42, 0xd3, 0x61, 0x59, 0x66, 0x42, 0x5d, + 0x68, 0xb6, 0xed, 0xfb, 0x4d, 0x5e, 0x97, 0x50, 0xd5, 0xd4, 0xec, 0x92, 0xe6, 0x5d, 0x9a, 0x6d, + 0xcd, 0x2e, 0x39, 0x70, 0x8e, 0x39, 0x00, 0xcf, 0x08, 0x2a, 0xff, 0x68, 0xcf, 0xb6, 0x99, 0x8e, + 0x6c, 0xdb, 0x19, 0xfc, 0xd9, 0xe1, 0x05, 0xff, 0xf4, 0x90, 0x83, 0x7f, 0x66, 0x34, 0xc1, 0x3f, + 0x3b, 0xe4, 0xe0, 0x9f, 0x1b, 0x30, 0xf8, 0xff, 0x1f, 0xcc, 0xf3, 0xe0, 0x77, 0x90, 0x6b, 0x62, + 0x42, 0xbc, 0x30, 0xcb, 0xcf, 0x33, 0xb7, 0x9a, 0x63, 0x0d, 0x95, 0x26, 0x7d, 0xc0, 0xea, 0xb6, + 0x57, 0x04, 0x2b, 0xbf, 0x4b, 0x81, 0xd5, 0x9e, 0xdb, 0xd5, 0x57, 0x45, 0x41, 0x1f, 0xe9, 0x62, + 0x11, 0x4c, 0xf1, 0xcd, 0xbd, 0x88, 0x5e, 0xf1, 0xd5, 0xb5, 0x58, 0x00, 0xa3, 0x2b, 0x16, 0x32, + 0xa3, 0x28, 0x16, 0x5e, 0xe5, 0x8b, 0xcf, 0x2b, 0x5f, 0xb4, 0x16, 0x0b, 0xf3, 0x03, 0x16, 0x0b, + 0x03, 0x25, 0x92, 0x9e, 0x29, 0x42, 0xf9, 0x11, 0x00, 0x97, 0x13, 0x9c, 0x46, 0x8e, 0xe6, 0xaa, + 0xa7, 0x5b, 0x6c, 0xf5, 0x71, 0xe1, 0xd3, 0x6f, 0x6c, 0xf5, 0x71, 0x01, 0x94, 0x3c, 0xb6, 0xa6, + 0x86, 0xb7, 0xfd, 0x3d, 0x3f, 0xfc, 0x0b, 0xaa, 0xd4, 0x68, 0x2e, 0xa8, 0xd2, 0xa3, 0xb9, 0xa0, + 0x02, 0x67, 0xbc, 0xa0, 0xaa, 0x02, 0xf9, 0x1d, 0xbb, 0xe1, 0xd6, 0x4f, 0x77, 0x2d, 0x8a, 0x5c, + 0x44, 0xa8, 0xda, 0xba, 0x55, 0xea, 0xed, 0x51, 0x9d, 0xdd, 0xe5, 0xf7, 0x40, 0x8e, 0x53, 0x77, + 0x1a, 0x16, 0x3b, 0x68, 0x85, 0x14, 0x6d, 0x42, 0x27, 0x94, 0x54, 0x7b, 0xc2, 0x46, 0x02, 0x84, + 0xae, 0xd3, 0xa6, 0x07, 0xbc, 0x4e, 0xbb, 0x17, 0xd4, 0xde, 0xec, 0xe4, 0x94, 0xb0, 0x6c, 0x9a, + 0x89, 0x07, 0xe2, 0x4b, 0x20, 0x0b, 0x73, 0xe2, 0x57, 0xe9, 0xfc, 0x2b, 0x74, 0x3b, 0x37, 0x9b, + 0xe0, 0x76, 0x6e, 0x6e, 0x28, 0xb7, 0x73, 0x83, 0xa6, 0xc4, 0xf7, 0x92, 0xa7, 0xc4, 0x37, 0x83, + 0x94, 0x98, 0x20, 0xd9, 0x29, 0x7b, 0x20, 0x1d, 0x0c, 0xd8, 0xac, 0xd8, 0xa5, 0x70, 0xc5, 0x1e, + 0x59, 0x04, 0x8e, 0x47, 0x17, 0x81, 0xca, 0xcf, 0xc7, 0x41, 0x21, 0xfe, 0x98, 0x74, 0x34, 0xf9, + 0x75, 0x0f, 0xcc, 0xb5, 0x9c, 0xea, 0x62, 0xbd, 0xaf, 0xcb, 0xf4, 0x59, 0x12, 0x92, 0x13, 0xeb, + 0xa8, 0xac, 0x26, 0x57, 0xf8, 0xf5, 0x40, 0xe1, 0xf1, 0x13, 0x57, 0xfe, 0x25, 0x81, 0x0b, 0x31, + 0x47, 0xe5, 0x03, 0x2b, 0xa6, 0x02, 0x66, 0x5a, 0xcf, 0xf0, 0xc5, 0x2d, 0xe1, 0x1b, 0xf1, 0xf7, + 0x72, 0x21, 0x11, 0xd4, 0xe9, 0x96, 0x53, 0xfa, 0xf2, 0xfd, 0xe4, 0xb3, 0xbf, 0x12, 0xcc, 0x3e, + 0x66, 0x6a, 0xca, 0x6f, 0x53, 0xe0, 0x5a, 0xb2, 0x4b, 0x8b, 0x57, 0x2f, 0x2d, 0xfe, 0xf7, 0x5e, + 0x5a, 0x74, 0x3b, 0x8f, 0x48, 0xf7, 0x7f, 0x1e, 0x01, 0xba, 0x9f, 0x47, 0x44, 0xa5, 0x88, 0xcc, + 0xe0, 0x29, 0xa2, 0x99, 0x2d, 0xb3, 0xe1, 0x6c, 0x79, 0xf6, 0x65, 0xee, 0x20, 0x7a, 0x99, 0xfb, + 0x42, 0xec, 0xdd, 0xb2, 0x38, 0x51, 0xfa, 0xbc, 0x97, 0xbb, 0xf2, 0xc3, 0xe4, 0x99, 0xa3, 0x14, + 0x77, 0x08, 0x10, 0xb5, 0x56, 0xfd, 0x46, 0x02, 0xb9, 0xa8, 0x89, 0x7a, 0x1b, 0x5a, 0x71, 0x1a, + 0xc7, 0x73, 0x86, 0xf8, 0x92, 0x97, 0x40, 0x2a, 0x38, 0x80, 0xe3, 0x19, 0x23, 0xf8, 0xee, 0xb6, + 0xf7, 0x9e, 0x48, 0xb8, 0xf7, 0x9e, 0x1c, 0x6c, 0xef, 0xad, 0xfc, 0x5e, 0x02, 0xd9, 0x16, 0xd9, + 0xdb, 0xce, 0x11, 0xa4, 0x9e, 0xe7, 0x08, 0xe3, 0x89, 0xcf, 0x11, 0x46, 0x3d, 0x97, 0x7f, 0x8e, + 0x83, 0xcb, 0x91, 0x77, 0xf6, 0x43, 0x3a, 0x9b, 0x79, 0x08, 0xa6, 0x83, 0xe7, 0x04, 0xac, 0x7a, + 0x9a, 0x60, 0x81, 0xf0, 0xa5, 0xbe, 0xdf, 0x10, 0xb0, 0x6a, 0x2a, 0xab, 0x87, 0xbe, 0xe4, 0x1a, + 0x78, 0x2d, 0xc0, 0x16, 0x4f, 0x17, 0x1c, 0xdb, 0x0e, 0x9e, 0xb4, 0x14, 0xe3, 0xc6, 0xf0, 0x61, + 0xf9, 0x20, 0x15, 0xdb, 0xae, 0xab, 0x0b, 0x7a, 0x07, 0x8d, 0x0c, 0x56, 0xb4, 0x25, 0x50, 0xa8, + 0xf2, 0xef, 0x89, 0x2e, 0x8a, 0x1f, 0xd2, 0x52, 0x3a, 0x4a, 0xc5, 0x37, 0xc0, 0x72, 0xa4, 0xe2, + 0x35, 0x68, 0x18, 0x98, 0x25, 0x80, 0x01, 0x4d, 0x70, 0x31, 0xc2, 0x04, 0xeb, 0x3e, 0xa6, 0xfc, + 0x18, 0x5c, 0x8a, 0x1e, 0x96, 0x3f, 0x77, 0xf0, 0x5f, 0x0f, 0xf5, 0x3b, 0xe8, 0x52, 0xc4, 0xa0, + 0xdc, 0x08, 0xc3, 0x34, 0x7f, 0x5b, 0x1e, 0xfc, 0x8e, 0x04, 0xe6, 0xfd, 0xf1, 0xb0, 0x45, 0x79, + 0xab, 0x7c, 0x1d, 0xcc, 0x42, 0x9d, 0x3f, 0xa3, 0x80, 0x86, 0xe1, 0x22, 0x42, 0x84, 0xd9, 0x67, + 0x04, 0x79, 0x9d, 0x53, 0xe5, 0x0d, 0x00, 0x2c, 0xf4, 0x44, 0x73, 0xbc, 0xbe, 0xa4, 0x9f, 0xc3, + 0xb2, 0xb4, 0x85, 0x9e, 0xb0, 0x11, 0x89, 0xf2, 0xa7, 0x71, 0xb0, 0xd6, 0x22, 0x6a, 0x05, 0xb1, + 0xcd, 0x1e, 0x6f, 0x1e, 0x92, 0x1b, 0xbe, 0x05, 0x16, 0x1d, 0x0e, 0xcb, 0x6c, 0x15, 0x5a, 0xe5, + 0x27, 0xd8, 0x2a, 0x9f, 0x73, 0xfc, 0x41, 0xed, 0x7a, 0x73, 0x99, 0xd7, 0x40, 0x2e, 0x30, 0x30, + 0xb6, 0x68, 0x60, 0x60, 0xee, 0x55, 0x37, 0xe3, 0x0c, 0xdc, 0xa1, 0x54, 0x55, 0x76, 0xdb, 0x49, + 0xa4, 0xfc, 0x8d, 0xe4, 0x76, 0xbd, 0x15, 0x6d, 0xd7, 0x18, 0x65, 0x29, 0x2f, 0x25, 0xb0, 0x10, + 0xf1, 0xb4, 0x65, 0x60, 0x25, 0x7e, 0x1d, 0xa4, 0x88, 0x7e, 0x8c, 0x8c, 0x46, 0x1d, 0x89, 0x30, + 0x4e, 0xfa, 0xaa, 0xa6, 0x2a, 0xba, 0xa9, 0x01, 0x40, 0xf9, 0xed, 0xe4, 0x53, 0xbf, 0x18, 0x4c, + 0x3d, 0x62, 0x36, 0xca, 0x87, 0xe3, 0x60, 0x99, 0x3d, 0x6c, 0xd9, 0xb4, 0x4d, 0xb3, 0x61, 0x61, + 0x7a, 0xea, 0x19, 0xb1, 0xea, 0x19, 0xf4, 0xcc, 0x33, 0x3e, 0x00, 0xe9, 0xf6, 0xf7, 0x92, 0x77, + 0xc4, 0xfb, 0xf5, 0x62, 0xcb, 0x53, 0xf5, 0xa6, 0xd4, 0xdd, 0x64, 0x50, 0x9b, 0x48, 0xe5, 0x6a, + 0xf2, 0xb9, 0xaf, 0xb5, 0x3e, 0xde, 0xe9, 0x8e, 0xaf, 0xfc, 0x6a, 0x1c, 0x14, 0xd7, 0xa9, 0x6d, + 0x62, 0x9d, 0x97, 0x3d, 0xf7, 0x5d, 0x83, 0x55, 0xf2, 0xf7, 0x1a, 0x75, 0x8a, 0x9d, 0x3a, 0x46, + 0xae, 0x6f, 0x85, 0x33, 0xab, 0x05, 0x81, 0x45, 0xff, 0x15, 0x14, 0x42, 0x9a, 0x19, 0x0c, 0xe0, + 0xeb, 0xa8, 0x94, 0xe0, 0xe5, 0x53, 0x58, 0x30, 0x35, 0x67, 0x76, 0x12, 0x49, 0xb9, 0x96, 0x5c, + 0x4d, 0x77, 0x02, 0x35, 0xf5, 0xa7, 0x82, 0x1b, 0x4f, 0x41, 0x36, 0xfc, 0xaa, 0x57, 0xbe, 0x0d, + 0x72, 0xdb, 0xef, 0x6f, 0xbe, 0xb3, 0xbe, 0xf7, 0xf6, 0xb6, 0x76, 0xb0, 0x57, 0xad, 0x6c, 0x6f, + 0xee, 0xee, 0xec, 0x6e, 0x6f, 0xcd, 0x8d, 0x2d, 0xe5, 0x9f, 0x3d, 0x5f, 0x89, 0x6c, 0x93, 0x65, + 0x30, 0x59, 0xad, 0xdc, 0xdf, 0x9f, 0x93, 0x96, 0x52, 0xcf, 0x9e, 0xaf, 0xb0, 0xdf, 0x9e, 0x12, + 0xb7, 0xb6, 0xd5, 0xdd, 0x77, 0xd7, 0xf7, 0x77, 0xdf, 0xdd, 0xae, 0xce, 0x8d, 0x2f, 0xcd, 0x3e, + 0x7b, 0xbe, 0x12, 0x26, 0x6d, 0x1c, 0x7f, 0xfc, 0xa2, 0x20, 0x7d, 0xfa, 0xa2, 0x20, 0xfd, 0xf5, + 0x45, 0x41, 0xfa, 0xc1, 0xcb, 0xc2, 0xd8, 0xa7, 0x2f, 0x0b, 0x63, 0x7f, 0x7e, 0x59, 0x18, 0x7b, + 0xb8, 0x77, 0x84, 0xe9, 0x71, 0xa3, 0x56, 0xd4, 0x6d, 0xb3, 0xb4, 0xeb, 0x2b, 0xf2, 0x2e, 0xac, + 0x91, 0x52, 0xa0, 0xd6, 0x9b, 0xba, 0xed, 0xa2, 0xf0, 0xe7, 0x31, 0xc4, 0x56, 0xc9, 0xb4, 0xbd, + 0xb9, 0x91, 0x66, 0x35, 0xec, 0xd5, 0x64, 0xa4, 0x36, 0xc5, 0xfe, 0x32, 0xe1, 0x8b, 0xff, 0x09, + 0x00, 0x00, 0xff, 0xff, 0x16, 0x7b, 0x31, 0x71, 0xe1, 0x31, 0x00, 0x00, } func (m *SpotMarketParamUpdateProposal) Marshal() (dAtA []byte, err error) { @@ -1296,6 +1397,37 @@ func (m *SpotMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.AdminInfo != nil { + { + size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.MinNotional != nil { + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + if len(m.Ticker) > 0 { + i -= len(m.Ticker) + copy(dAtA[i:], m.Ticker) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Ticker))) + i-- + dAtA[i] = 0x52 + } if m.Status != 0 { i = encodeVarintProposal(dAtA, i, uint64(m.Status)) i-- @@ -1632,6 +1764,28 @@ func (m *SpotMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l + if m.AdminInfo != nil { + { + size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 if m.TakerFeeRate != nil { { size := m.TakerFeeRate.Size() @@ -1734,6 +1888,30 @@ func (m *PerpetualMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.AdminInfo != nil { + { + size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a { size := m.MinQuantityTickSize.Size() i -= size @@ -1869,6 +2047,25 @@ func (m *BinaryOptionsMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + if m.AdminPermissions != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.AdminPermissions)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 { size := m.MinQuantityTickSize.Size() i -= size @@ -2001,6 +2198,32 @@ func (m *ExpiryFuturesMarketLaunchProposal) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + if m.AdminInfo != nil { + { + size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 { size := m.MinQuantityTickSize.Size() i -= size @@ -2141,6 +2364,41 @@ func (m *DerivativeMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + if m.AdminInfo != nil { + { + size, err := m.AdminInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if m.MinNotional != nil { + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(m.Ticker) > 0 { + i -= len(m.Ticker) + copy(dAtA[i:], m.Ticker) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Ticker))) + i-- + dAtA[i] = 0x7a + } if m.OracleParams != nil { { size, err := m.OracleParams.MarshalToSizedBuffer(dAtA[:i]) @@ -2290,6 +2548,41 @@ func (m *DerivativeMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byte) return len(dAtA) - i, nil } +func (m *AdminInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AdminInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AdminInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AdminPermissions != 0 { + i = encodeVarintProposal(dAtA, i, uint64(m.AdminPermissions)) + i-- + dAtA[i] = 0x10 + } + if len(m.Admin) > 0 { + i -= len(m.Admin) + copy(dAtA[i:], m.Admin) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Admin))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *MarketForcedSettlementProposal) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2417,6 +2710,27 @@ func (m *BinaryOptionsMarketParamUpdateProposal) MarshalToSizedBuffer(dAtA []byt _ = i var l int _ = l + if m.MinNotional != nil { + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintProposal(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(m.Ticker) > 0 { + i -= len(m.Ticker) + copy(dAtA[i:], m.Ticker) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Ticker))) + i-- + dAtA[i] = 0x7a + } if m.OracleParams != nil { { size, err := m.OracleParams.MarshalToSizedBuffer(dAtA[:i]) @@ -3080,6 +3394,18 @@ func (m *SpotMarketParamUpdateProposal) Size() (n int) { if m.Status != 0 { n += 1 + sovProposal(uint64(m.Status)) } + l = len(m.Ticker) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if m.MinNotional != nil { + l = m.MinNotional.Size() + n += 1 + l + sovProposal(uint64(l)) + } + if m.AdminInfo != nil { + l = m.AdminInfo.Size() + n += 1 + l + sovProposal(uint64(l)) + } return n } @@ -3218,6 +3544,12 @@ func (m *SpotMarketLaunchProposal) Size() (n int) { l = m.TakerFeeRate.Size() n += 1 + l + sovProposal(uint64(l)) } + l = m.MinNotional.Size() + n += 1 + l + sovProposal(uint64(l)) + if m.AdminInfo != nil { + l = m.AdminInfo.Size() + n += 1 + l + sovProposal(uint64(l)) + } return n } @@ -3269,6 +3601,12 @@ func (m *PerpetualMarketLaunchProposal) Size() (n int) { n += 1 + l + sovProposal(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovProposal(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovProposal(uint64(l)) + if m.AdminInfo != nil { + l = m.AdminInfo.Size() + n += 2 + l + sovProposal(uint64(l)) + } return n } @@ -3326,6 +3664,11 @@ func (m *BinaryOptionsMarketLaunchProposal) Size() (n int) { n += 1 + l + sovProposal(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovProposal(uint64(l)) + l = m.MinNotional.Size() + n += 2 + l + sovProposal(uint64(l)) + if m.AdminPermissions != 0 { + n += 2 + sovProposal(uint64(m.AdminPermissions)) + } return n } @@ -3380,6 +3723,12 @@ func (m *ExpiryFuturesMarketLaunchProposal) Size() (n int) { n += 1 + l + sovProposal(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovProposal(uint64(l)) + l = m.MinNotional.Size() + n += 2 + l + sovProposal(uint64(l)) + if m.AdminInfo != nil { + l = m.AdminInfo.Size() + n += 2 + l + sovProposal(uint64(l)) + } return n } @@ -3444,6 +3793,34 @@ func (m *DerivativeMarketParamUpdateProposal) Size() (n int) { l = m.OracleParams.Size() n += 1 + l + sovProposal(uint64(l)) } + l = len(m.Ticker) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if m.MinNotional != nil { + l = m.MinNotional.Size() + n += 2 + l + sovProposal(uint64(l)) + } + if m.AdminInfo != nil { + l = m.AdminInfo.Size() + n += 2 + l + sovProposal(uint64(l)) + } + return n +} + +func (m *AdminInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Admin) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if m.AdminPermissions != 0 { + n += 1 + sovProposal(uint64(m.AdminPermissions)) + } return n } @@ -3554,6 +3931,14 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Size() (n int) { l = m.OracleParams.Size() n += 1 + l + sovProposal(uint64(l)) } + l = len(m.Ticker) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if m.MinNotional != nil { + l = m.MinNotional.Size() + n += 2 + l + sovProposal(uint64(l)) + } return n } @@ -3932,7 +4317,7 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MakerFeeRate = &v if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -3968,7 +4353,7 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TakerFeeRate = &v if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4004,7 +4389,7 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.RelayerFeeShareRate = &v if err := m.RelayerFeeShareRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4040,7 +4425,7 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinPriceTickSize = &v if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4076,7 +4461,7 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinQuantityTickSize = &v if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -4101,8 +4486,112 @@ func (m *SpotMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { break } } - default: - iNdEx = preIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ticker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v cosmossdk_io_math.LegacyDec + m.MinNotional = &v + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminInfo == nil { + m.AdminInfo = &AdminInfo{} + } + if err := m.AdminInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) if err != nil { return err @@ -5036,7 +5525,7 @@ func (m *SpotMarketLaunchProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MakerFeeRate = &v if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5072,12 +5561,82 @@ func (m *SpotMarketLaunchProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TakerFeeRate = &v if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminInfo == nil { + m.AdminInfo = &AdminInfo{} + } + if err := m.AdminInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -5562,6 +6121,76 @@ func (m *PerpetualMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminInfo == nil { + m.AdminInfo = &AdminInfo{} + } + if err := m.AdminInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -6048,19 +6677,72 @@ func (m *BinaryOptionsMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipProposal(dAtA[iNdEx:]) - if err != nil { - return err + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminPermissions", wireType) + } + m.AdminPermissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AdminPermissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipProposal(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProposal + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy } } @@ -6551,6 +7233,76 @@ func (m *ExpiryFuturesMarketLaunchProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminInfo == nil { + m.AdminInfo = &AdminInfo{} + } + if err := m.AdminInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -6727,7 +7479,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.InitialMarginRatio = &v if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6763,7 +7515,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MaintenanceMarginRatio = &v if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6799,7 +7551,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MakerFeeRate = &v if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6835,7 +7587,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TakerFeeRate = &v if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6871,7 +7623,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.RelayerFeeShareRate = &v if err := m.RelayerFeeShareRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6907,7 +7659,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinPriceTickSize = &v if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6943,7 +7695,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinQuantityTickSize = &v if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6979,7 +7731,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.HourlyInterestRate = &v if err := m.HourlyInterestRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7015,7 +7767,7 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.HourlyFundingRateCap = &v if err := m.HourlyFundingRateCap.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7076,6 +7828,211 @@ func (m *DerivativeMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ticker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v cosmossdk_io_math.LegacyDec + m.MinNotional = &v + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthProposal + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdminInfo == nil { + m.AdminInfo = &AdminInfo{} + } + if err := m.AdminInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProposal(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProposal + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AdminInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AdminInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AdminInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Admin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AdminPermissions", wireType) + } + m.AdminPermissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AdminPermissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) @@ -7252,7 +8209,7 @@ func (m *MarketForcedSettlementProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.SettlementPrice = &v if err := m.SettlementPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7582,7 +8539,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MakerFeeRate = &v if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7618,7 +8575,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.TakerFeeRate = &v if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7654,7 +8611,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.RelayerFeeShareRate = &v if err := m.RelayerFeeShareRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7690,7 +8647,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinPriceTickSize = &v if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7726,7 +8683,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MinQuantityTickSize = &v if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7800,7 +8757,7 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.SettlementPrice = &v if err := m.SettlementPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7893,6 +8850,74 @@ func (m *BinaryOptionsMarketParamUpdateProposal) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ticker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v cosmossdk_io_math.LegacyDec + m.MinNotional = &v + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipProposal(dAtA[iNdEx:]) diff --git a/chain/exchange/types/query.pb.go b/chain/exchange/types/query.pb.go index b4111c76..865c480d 100644 --- a/chain/exchange/types/query.pb.go +++ b/chain/exchange/types/query.pb.go @@ -5,9 +5,9 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types "github.com/InjectiveLabs/sdk-go/chain/oracle/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -1450,11 +1450,11 @@ func (m *QuerySpotMarketResponse) GetMarket() *SpotMarket { // method. type QuerySpotOrderbookRequest struct { // Market ID for the market - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - OrderSide OrderSide `protobuf:"varint,3,opt,name=order_side,json=orderSide,proto3,enum=injective.exchange.v1beta1.OrderSide" json:"order_side,omitempty"` - LimitCumulativeNotional *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=limit_cumulative_notional,json=limitCumulativeNotional,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"limit_cumulative_notional,omitempty"` - LimitCumulativeQuantity *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=limit_cumulative_quantity,json=limitCumulativeQuantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"limit_cumulative_quantity,omitempty"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + OrderSide OrderSide `protobuf:"varint,3,opt,name=order_side,json=orderSide,proto3,enum=injective.exchange.v1beta1.OrderSide" json:"order_side,omitempty"` + LimitCumulativeNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=limit_cumulative_notional,json=limitCumulativeNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"limit_cumulative_notional,omitempty"` + LimitCumulativeQuantity *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=limit_cumulative_quantity,json=limitCumulativeQuantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"limit_cumulative_quantity,omitempty"` } func (m *QuerySpotOrderbookRequest) Reset() { *m = QuerySpotOrderbookRequest{} } @@ -2059,14 +2059,15 @@ func (m *QueryAccountAddressSpotOrdersRequest) GetAccountAddress() string { type TrimmedSpotLimitOrder struct { // price of the order - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // quantity of the order - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` // the amount of the quantity remaining fillable - Fillable github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=fillable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fillable"` + Fillable cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=fillable,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fillable"` // true if the order is a buy IsBuy bool `protobuf:"varint,4,opt,name=isBuy,proto3" json:"isBuy,omitempty"` OrderHash string `protobuf:"bytes,5,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,6,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *TrimmedSpotLimitOrder) Reset() { *m = TrimmedSpotLimitOrder{} } @@ -2116,6 +2117,13 @@ func (m *TrimmedSpotLimitOrder) GetOrderHash() string { return "" } +func (m *TrimmedSpotLimitOrder) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + // QueryTraderSpotOrdersResponse is the response type for the // Query/TraderSpotOrders RPC method. type QueryTraderSpotOrdersResponse struct { @@ -2259,11 +2267,11 @@ func (m *QuerySpotMidPriceAndTOBRequest) GetMarketId() string { // Query/SpotMidPriceAndTOB RPC method. type QuerySpotMidPriceAndTOBResponse struct { // mid price of the market - MidPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mid_price,omitempty"` + MidPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mid_price,omitempty"` // best buy price of the market - BestBuyPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_buy_price,omitempty"` + BestBuyPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_buy_price,omitempty"` // best sell price of the market - BestSellPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_sell_price,omitempty"` + BestSellPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_sell_price,omitempty"` } func (m *QuerySpotMidPriceAndTOBResponse) Reset() { *m = QuerySpotMidPriceAndTOBResponse{} } @@ -2350,11 +2358,11 @@ func (m *QueryDerivativeMidPriceAndTOBRequest) GetMarketId() string { // Query/GetDerivativeMidPriceAndTOB RPC method. type QueryDerivativeMidPriceAndTOBResponse struct { // mid price of the market - MidPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mid_price,omitempty"` + MidPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=mid_price,json=midPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mid_price,omitempty"` // best buy price of the market - BestBuyPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_buy_price,omitempty"` + BestBuyPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=best_buy_price,json=bestBuyPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_buy_price,omitempty"` // best sell price of the market - BestSellPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"best_sell_price,omitempty"` + BestSellPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=best_sell_price,json=bestSellPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"best_sell_price,omitempty"` } func (m *QueryDerivativeMidPriceAndTOBResponse) Reset() { *m = QueryDerivativeMidPriceAndTOBResponse{} } @@ -2394,9 +2402,9 @@ var xxx_messageInfo_QueryDerivativeMidPriceAndTOBResponse proto.InternalMessageI // Query/DerivativeOrderbook RPC method. type QueryDerivativeOrderbookRequest struct { // Market ID for the market - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` - LimitCumulativeNotional *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=limit_cumulative_notional,json=limitCumulativeNotional,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"limit_cumulative_notional,omitempty"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + Limit uint64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"` + LimitCumulativeNotional *cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=limit_cumulative_notional,json=limitCumulativeNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"limit_cumulative_notional,omitempty"` } func (m *QueryDerivativeOrderbookRequest) Reset() { *m = QueryDerivativeOrderbookRequest{} } @@ -2508,14 +2516,14 @@ type QueryTraderSpotOrdersToCancelUpToAmountRequest struct { // SubaccountID of the trader SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` // the base amount to cancel (free up) - BaseAmount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=base_amount,json=baseAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"base_amount"` + BaseAmount cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=base_amount,json=baseAmount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"base_amount"` // the quote amount to cancel (free up) - QuoteAmount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=quote_amount,json=quoteAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quote_amount"` + QuoteAmount cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=quote_amount,json=quoteAmount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quote_amount"` // The cancellation strategy Strategy CancellationStrategy `protobuf:"varint,5,opt,name=strategy,proto3,enum=injective.exchange.v1beta1.CancellationStrategy" json:"strategy,omitempty"` // The reference price for the cancellation strategy, e.g. mid price or mark // price - ReferencePrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=reference_price,json=referencePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"reference_price,omitempty"` + ReferencePrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=reference_price,json=referencePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reference_price,omitempty"` } func (m *QueryTraderSpotOrdersToCancelUpToAmountRequest) Reset() { @@ -2584,12 +2592,12 @@ type QueryTraderDerivativeOrdersToCancelUpToAmountRequest struct { // SubaccountID of the trader SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` // the quote amount to cancel (free up) - QuoteAmount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=quote_amount,json=quoteAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quote_amount"` + QuoteAmount cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=quote_amount,json=quoteAmount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quote_amount"` // The cancellation strategy Strategy CancellationStrategy `protobuf:"varint,4,opt,name=strategy,proto3,enum=injective.exchange.v1beta1.CancellationStrategy" json:"strategy,omitempty"` // The reference price for the cancellation strategy, e.g. mid price or mark // price - ReferencePrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=reference_price,json=referencePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"reference_price,omitempty"` + ReferencePrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=reference_price,json=referencePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"reference_price,omitempty"` } func (m *QueryTraderDerivativeOrdersToCancelUpToAmountRequest) Reset() { @@ -2768,16 +2776,17 @@ func (m *QueryAccountAddressDerivativeOrdersRequest) GetAccountAddress() string type TrimmedDerivativeLimitOrder struct { // price of the order - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // quantity of the order - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` // margin of the order - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` // the amount of the quantity remaining fillable - Fillable github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=fillable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fillable"` + Fillable cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=fillable,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fillable"` // true if the order is a buy IsBuy bool `protobuf:"varint,5,opt,name=isBuy,proto3" json:"isBuy"` OrderHash string `protobuf:"bytes,6,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,7,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *TrimmedDerivativeLimitOrder) Reset() { *m = TrimmedDerivativeLimitOrder{} } @@ -2827,6 +2836,13 @@ func (m *TrimmedDerivativeLimitOrder) GetOrderHash() string { return "" } +func (m *TrimmedDerivativeLimitOrder) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + // QueryTraderDerivativeOrdersResponse is the response type for the // Query/TraderDerivativeOrders RPC method. type QueryTraderDerivativeOrdersResponse struct { @@ -3101,9 +3117,9 @@ func (m *QueryDerivativeMarketsRequest) GetWithMidPriceAndTob() bool { } type PriceLevel struct { - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // quantity - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` } func (m *PriceLevel) Reset() { *m = PriceLevel{} } @@ -3196,8 +3212,8 @@ type FullDerivativeMarket struct { // Types that are valid to be assigned to Info: // *FullDerivativeMarket_PerpetualInfo // *FullDerivativeMarket_FuturesInfo - Info isFullDerivativeMarket_Info `protobuf_oneof:"info"` - MarkPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=mark_price,json=markPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mark_price"` + Info isFullDerivativeMarket_Info `protobuf_oneof:"info"` + MarkPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=mark_price,json=markPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mark_price"` // mid_price_and_tob defines the mid price for this market and the best ask // and bid orders MidPriceAndTob *MidPriceAndTOB `protobuf:"bytes,5,opt,name=mid_price_and_tob,json=midPriceAndTob,proto3" json:"mid_price_and_tob,omitempty"` @@ -3884,10 +3900,10 @@ func (m *QuerySubaccountPositionInMarketResponse) GetState() *Position { } type EffectivePosition struct { - IsLong bool `protobuf:"varint,1,opt,name=is_long,json=isLong,proto3" json:"is_long,omitempty"` - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - EntryPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=entry_price,json=entryPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"entry_price"` - EffectiveMargin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=effective_margin,json=effectiveMargin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"effective_margin"` + IsLong bool `protobuf:"varint,1,opt,name=is_long,json=isLong,proto3" json:"is_long,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + EntryPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=entry_price,json=entryPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"entry_price"` + EffectiveMargin cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=effective_margin,json=effectiveMargin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"effective_margin"` } func (m *EffectivePosition) Reset() { *m = EffectivePosition{} } @@ -4572,7 +4588,7 @@ func (m *QueryTradeRewardPointsRequest) GetPendingPoolTimestamp() int64 { // QueryTradeRewardPointsResponse is the response type for the // Query/TradeRewardPoints RPC method. type QueryTradeRewardPointsResponse struct { - AccountTradeRewardPoints []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,rep,name=account_trade_reward_points,json=accountTradeRewardPoints,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"account_trade_reward_points"` + AccountTradeRewardPoints []cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,rep,name=account_trade_reward_points,json=accountTradeRewardPoints,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"account_trade_reward_points"` } func (m *QueryTradeRewardPointsResponse) Reset() { *m = QueryTradeRewardPointsResponse{} } @@ -4649,11 +4665,11 @@ var xxx_messageInfo_QueryTradeRewardCampaignRequest proto.InternalMessageInfo // QueryTradeRewardCampaignResponse is the response type for the // Query/TradeRewardCampaign RPC method. type QueryTradeRewardCampaignResponse struct { - TradingRewardCampaignInfo *TradingRewardCampaignInfo `protobuf:"bytes,1,opt,name=trading_reward_campaign_info,json=tradingRewardCampaignInfo,proto3" json:"trading_reward_campaign_info,omitempty"` - TradingRewardPoolCampaignSchedule []*CampaignRewardPool `protobuf:"bytes,2,rep,name=trading_reward_pool_campaign_schedule,json=tradingRewardPoolCampaignSchedule,proto3" json:"trading_reward_pool_campaign_schedule,omitempty"` - TotalTradeRewardPoints github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=total_trade_reward_points,json=totalTradeRewardPoints,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"total_trade_reward_points"` - PendingTradingRewardPoolCampaignSchedule []*CampaignRewardPool `protobuf:"bytes,4,rep,name=pending_trading_reward_pool_campaign_schedule,json=pendingTradingRewardPoolCampaignSchedule,proto3" json:"pending_trading_reward_pool_campaign_schedule,omitempty"` - PendingTotalTradeRewardPoints []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,rep,name=pending_total_trade_reward_points,json=pendingTotalTradeRewardPoints,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"pending_total_trade_reward_points"` + TradingRewardCampaignInfo *TradingRewardCampaignInfo `protobuf:"bytes,1,opt,name=trading_reward_campaign_info,json=tradingRewardCampaignInfo,proto3" json:"trading_reward_campaign_info,omitempty"` + TradingRewardPoolCampaignSchedule []*CampaignRewardPool `protobuf:"bytes,2,rep,name=trading_reward_pool_campaign_schedule,json=tradingRewardPoolCampaignSchedule,proto3" json:"trading_reward_pool_campaign_schedule,omitempty"` + TotalTradeRewardPoints cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=total_trade_reward_points,json=totalTradeRewardPoints,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"total_trade_reward_points"` + PendingTradingRewardPoolCampaignSchedule []*CampaignRewardPool `protobuf:"bytes,4,rep,name=pending_trading_reward_pool_campaign_schedule,json=pendingTradingRewardPoolCampaignSchedule,proto3" json:"pending_trading_reward_pool_campaign_schedule,omitempty"` + PendingTotalTradeRewardPoints []cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,rep,name=pending_total_trade_reward_points,json=pendingTotalTradeRewardPoints,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"pending_total_trade_reward_points"` } func (m *QueryTradeRewardCampaignResponse) Reset() { *m = QueryTradeRewardCampaignResponse{} } @@ -5127,13 +5143,13 @@ func (m *QueryBalanceMismatchesRequest) GetDustFactor() int64 { } type BalanceMismatch struct { - SubaccountId string `protobuf:"bytes,1,opt,name=subaccountId,proto3" json:"subaccountId,omitempty"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - Available github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=available,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"available"` - Total github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=total,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"total"` - BalanceHold github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=balance_hold,json=balanceHold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"balance_hold"` - ExpectedTotal github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=expected_total,json=expectedTotal,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"expected_total"` - Difference github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=difference,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"difference"` + SubaccountId string `protobuf:"bytes,1,opt,name=subaccountId,proto3" json:"subaccountId,omitempty"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Available cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=available,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"available"` + Total cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=total,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"total"` + BalanceHold cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=balance_hold,json=balanceHold,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance_hold"` + ExpectedTotal cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=expected_total,json=expectedTotal,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"expected_total"` + Difference cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=difference,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"difference"` } func (m *BalanceMismatch) Reset() { *m = BalanceMismatch{} } @@ -5268,11 +5284,11 @@ func (m *QueryBalanceWithBalanceHoldsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryBalanceWithBalanceHoldsRequest proto.InternalMessageInfo type BalanceWithMarginHold struct { - SubaccountId string `protobuf:"bytes,1,opt,name=subaccountId,proto3" json:"subaccountId,omitempty"` - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - Available github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=available,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"available"` - Total github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=total,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"total"` - BalanceHold github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=balance_hold,json=balanceHold,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"balance_hold"` + SubaccountId string `protobuf:"bytes,1,opt,name=subaccountId,proto3" json:"subaccountId,omitempty"` + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Available cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=available,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"available"` + Total cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=total,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"total"` + BalanceHold cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=balance_hold,json=balanceHold,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"balance_hold"` } func (m *BalanceWithMarginHold) Reset() { *m = BalanceWithMarginHold{} } @@ -5929,9 +5945,9 @@ func (m *QueryMarketVolatilityRequest) GetTradeHistoryOptions() *TradeHistoryOpt // QueryMarketVolatilityResponse is the response type for the // Query/MarketVolatility RPC method. type QueryMarketVolatilityResponse struct { - Volatility *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=volatility,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"volatility,omitempty"` - HistoryMetadata *types.MetadataStatistics `protobuf:"bytes,2,opt,name=history_metadata,json=historyMetadata,proto3" json:"history_metadata,omitempty"` - RawHistory []*TradeRecord `protobuf:"bytes,3,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + Volatility *cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=volatility,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"volatility,omitempty"` + HistoryMetadata *types.MetadataStatistics `protobuf:"bytes,2,opt,name=history_metadata,json=historyMetadata,proto3" json:"history_metadata,omitempty"` + RawHistory []*TradeRecord `protobuf:"bytes,3,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` } func (m *QueryMarketVolatilityResponse) Reset() { *m = QueryMarketVolatilityResponse{} } @@ -6134,17 +6150,18 @@ func (m *QueryTraderDerivativeConditionalOrdersRequest) GetMarketId() string { type TrimmedDerivativeConditionalOrder struct { // price of the order - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // quantity of the order - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` // margin of the order - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` // price to trigger the order - TriggerPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=triggerPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"triggerPrice"` + TriggerPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=triggerPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"triggerPrice"` // true if the order is a buy IsBuy bool `protobuf:"varint,5,opt,name=isBuy,proto3" json:"isBuy"` IsLimit bool `protobuf:"varint,6,opt,name=isLimit,proto3" json:"isLimit"` OrderHash string `protobuf:"bytes,7,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,8,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *TrimmedDerivativeConditionalOrder) Reset() { *m = TrimmedDerivativeConditionalOrder{} } @@ -6201,6 +6218,13 @@ func (m *TrimmedDerivativeConditionalOrder) GetOrderHash() string { return "" } +func (m *TrimmedDerivativeConditionalOrder) GetCid() string { + if m != nil { + return m.Cid + } + return "" +} + // QueryTraderDerivativeOrdersResponse is the response type for the // Query/TraderDerivativeOrders RPC method. type QueryTraderDerivativeConditionalOrdersResponse struct { @@ -6300,7 +6324,7 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierRequest) GetMarketId() string { } type QueryMarketAtomicExecutionFeeMultiplierResponse struct { - Multiplier github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=multiplier,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"multiplier"` + Multiplier cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=multiplier,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"multiplier"` } func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Reset() { @@ -6340,6 +6364,280 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryMarketAtomicExecutionFeeMultiplierResponse proto.InternalMessageInfo +type QueryActiveStakeGrantRequest struct { + Grantee string `protobuf:"bytes,1,opt,name=grantee,proto3" json:"grantee,omitempty"` +} + +func (m *QueryActiveStakeGrantRequest) Reset() { *m = QueryActiveStakeGrantRequest{} } +func (m *QueryActiveStakeGrantRequest) String() string { return proto.CompactTextString(m) } +func (*QueryActiveStakeGrantRequest) ProtoMessage() {} +func (*QueryActiveStakeGrantRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{124} +} +func (m *QueryActiveStakeGrantRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryActiveStakeGrantRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryActiveStakeGrantRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryActiveStakeGrantRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActiveStakeGrantRequest.Merge(m, src) +} +func (m *QueryActiveStakeGrantRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryActiveStakeGrantRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActiveStakeGrantRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryActiveStakeGrantRequest proto.InternalMessageInfo + +func (m *QueryActiveStakeGrantRequest) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +type QueryActiveStakeGrantResponse struct { + Grant *ActiveGrant `protobuf:"bytes,1,opt,name=grant,proto3" json:"grant,omitempty"` + EffectiveGrant *EffectiveGrant `protobuf:"bytes,2,opt,name=effective_grant,json=effectiveGrant,proto3" json:"effective_grant,omitempty"` +} + +func (m *QueryActiveStakeGrantResponse) Reset() { *m = QueryActiveStakeGrantResponse{} } +func (m *QueryActiveStakeGrantResponse) String() string { return proto.CompactTextString(m) } +func (*QueryActiveStakeGrantResponse) ProtoMessage() {} +func (*QueryActiveStakeGrantResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{125} +} +func (m *QueryActiveStakeGrantResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryActiveStakeGrantResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryActiveStakeGrantResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryActiveStakeGrantResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryActiveStakeGrantResponse.Merge(m, src) +} +func (m *QueryActiveStakeGrantResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryActiveStakeGrantResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryActiveStakeGrantResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryActiveStakeGrantResponse proto.InternalMessageInfo + +func (m *QueryActiveStakeGrantResponse) GetGrant() *ActiveGrant { + if m != nil { + return m.Grant + } + return nil +} + +func (m *QueryActiveStakeGrantResponse) GetEffectiveGrant() *EffectiveGrant { + if m != nil { + return m.EffectiveGrant + } + return nil +} + +type QueryGrantAuthorizationRequest struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` + Grantee string `protobuf:"bytes,2,opt,name=grantee,proto3" json:"grantee,omitempty"` +} + +func (m *QueryGrantAuthorizationRequest) Reset() { *m = QueryGrantAuthorizationRequest{} } +func (m *QueryGrantAuthorizationRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGrantAuthorizationRequest) ProtoMessage() {} +func (*QueryGrantAuthorizationRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{126} +} +func (m *QueryGrantAuthorizationRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGrantAuthorizationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGrantAuthorizationRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGrantAuthorizationRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGrantAuthorizationRequest.Merge(m, src) +} +func (m *QueryGrantAuthorizationRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryGrantAuthorizationRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGrantAuthorizationRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGrantAuthorizationRequest proto.InternalMessageInfo + +func (m *QueryGrantAuthorizationRequest) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +func (m *QueryGrantAuthorizationRequest) GetGrantee() string { + if m != nil { + return m.Grantee + } + return "" +} + +type QueryGrantAuthorizationResponse struct { + Amount cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` +} + +func (m *QueryGrantAuthorizationResponse) Reset() { *m = QueryGrantAuthorizationResponse{} } +func (m *QueryGrantAuthorizationResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGrantAuthorizationResponse) ProtoMessage() {} +func (*QueryGrantAuthorizationResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{127} +} +func (m *QueryGrantAuthorizationResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGrantAuthorizationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGrantAuthorizationResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGrantAuthorizationResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGrantAuthorizationResponse.Merge(m, src) +} +func (m *QueryGrantAuthorizationResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryGrantAuthorizationResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGrantAuthorizationResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGrantAuthorizationResponse proto.InternalMessageInfo + +type QueryGrantAuthorizationsRequest struct { + Granter string `protobuf:"bytes,1,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (m *QueryGrantAuthorizationsRequest) Reset() { *m = QueryGrantAuthorizationsRequest{} } +func (m *QueryGrantAuthorizationsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGrantAuthorizationsRequest) ProtoMessage() {} +func (*QueryGrantAuthorizationsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{128} +} +func (m *QueryGrantAuthorizationsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGrantAuthorizationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGrantAuthorizationsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGrantAuthorizationsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGrantAuthorizationsRequest.Merge(m, src) +} +func (m *QueryGrantAuthorizationsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryGrantAuthorizationsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGrantAuthorizationsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGrantAuthorizationsRequest proto.InternalMessageInfo + +func (m *QueryGrantAuthorizationsRequest) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +type QueryGrantAuthorizationsResponse struct { + TotalGrantAmount cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=total_grant_amount,json=totalGrantAmount,proto3,customtype=cosmossdk.io/math.Int" json:"total_grant_amount"` + Grants []*GrantAuthorization `protobuf:"bytes,2,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (m *QueryGrantAuthorizationsResponse) Reset() { *m = QueryGrantAuthorizationsResponse{} } +func (m *QueryGrantAuthorizationsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGrantAuthorizationsResponse) ProtoMessage() {} +func (*QueryGrantAuthorizationsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_523db28b8af54781, []int{129} +} +func (m *QueryGrantAuthorizationsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryGrantAuthorizationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryGrantAuthorizationsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryGrantAuthorizationsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGrantAuthorizationsResponse.Merge(m, src) +} +func (m *QueryGrantAuthorizationsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryGrantAuthorizationsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGrantAuthorizationsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryGrantAuthorizationsResponse proto.InternalMessageInfo + +func (m *QueryGrantAuthorizationsResponse) GetGrants() []*GrantAuthorization { + if m != nil { + return m.Grants + } + return nil +} + func init() { proto.RegisterEnum("injective.exchange.v1beta1.OrderSide", OrderSide_name, OrderSide_value) proto.RegisterEnum("injective.exchange.v1beta1.CancellationStrategy", CancellationStrategy_name, CancellationStrategy_value) @@ -6468,6 +6766,12 @@ func init() { proto.RegisterType((*QueryTraderDerivativeConditionalOrdersResponse)(nil), "injective.exchange.v1beta1.QueryTraderDerivativeConditionalOrdersResponse") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierRequest)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierRequest") proto.RegisterType((*QueryMarketAtomicExecutionFeeMultiplierResponse)(nil), "injective.exchange.v1beta1.QueryMarketAtomicExecutionFeeMultiplierResponse") + proto.RegisterType((*QueryActiveStakeGrantRequest)(nil), "injective.exchange.v1beta1.QueryActiveStakeGrantRequest") + proto.RegisterType((*QueryActiveStakeGrantResponse)(nil), "injective.exchange.v1beta1.QueryActiveStakeGrantResponse") + proto.RegisterType((*QueryGrantAuthorizationRequest)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationRequest") + proto.RegisterType((*QueryGrantAuthorizationResponse)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationResponse") + proto.RegisterType((*QueryGrantAuthorizationsRequest)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationsRequest") + proto.RegisterType((*QueryGrantAuthorizationsResponse)(nil), "injective.exchange.v1beta1.QueryGrantAuthorizationsResponse") } func init() { @@ -6475,355 +6779,372 @@ func init() { } var fileDescriptor_523db28b8af54781 = []byte{ - // 5562 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5d, 0x6b, 0x6c, 0x1c, 0x59, - 0x56, 0x4e, 0xb5, 0x1f, 0xb1, 0x8f, 0x9f, 0xb9, 0x76, 0x1c, 0xa7, 0x67, 0x26, 0x8f, 0x9a, 0xcd, - 0x4c, 0x26, 0x3b, 0xb1, 0x13, 0xe7, 0xfd, 0x8e, 0x1d, 0xc7, 0x13, 0x4f, 0xe2, 0xc4, 0xd3, 0x76, - 0x66, 0x98, 0x59, 0x50, 0x6f, 0xb9, 0xfb, 0xba, 0x5d, 0x33, 0xd5, 0x5d, 0x9d, 0xae, 0x6a, 0x4f, - 0xac, 0x10, 0xc4, 0x43, 0x68, 0x11, 0x48, 0xbb, 0x48, 0x0b, 0x48, 0x48, 0x08, 0x01, 0xe2, 0xd7, - 0x4a, 0x2b, 0x24, 0xf8, 0xc1, 0x88, 0x15, 0xbb, 0x2c, 0x0b, 0x68, 0xb5, 0xcb, 0x63, 0x80, 0xe5, - 0x29, 0x31, 0xac, 0x66, 0x16, 0x56, 0x8c, 0x16, 0x09, 0xf1, 0x03, 0x09, 0x09, 0x01, 0xaa, 0x7b, - 0xcf, 0xbd, 0x5d, 0xef, 0xbe, 0xd5, 0x76, 0x34, 0x03, 0xda, 0x5f, 0xee, 0xba, 0x75, 0xef, 0xb9, - 0xe7, 0x9c, 0x7b, 0xee, 0x39, 0xe7, 0x3e, 0xbe, 0x32, 0x3c, 0x67, 0xd6, 0xde, 0xa4, 0x25, 0xd7, - 0xdc, 0xa4, 0xd3, 0xf4, 0x61, 0x69, 0xc3, 0xa8, 0x55, 0xe8, 0xf4, 0xe6, 0xc9, 0x35, 0xea, 0x1a, - 0x27, 0xa7, 0x1f, 0x34, 0x69, 0x63, 0x6b, 0xaa, 0xde, 0xb0, 0x5d, 0x9b, 0xe4, 0x65, 0xbd, 0x29, - 0x51, 0x6f, 0x0a, 0xeb, 0xe5, 0x9f, 0xae, 0xd8, 0x76, 0xc5, 0xa2, 0xd3, 0x46, 0xdd, 0x9c, 0x36, - 0x6a, 0x35, 0xdb, 0x35, 0x5c, 0xd3, 0xae, 0x39, 0xbc, 0x65, 0xfe, 0x85, 0x94, 0x1e, 0x24, 0x29, - 0x5e, 0xf5, 0x68, 0x4a, 0xd5, 0x0a, 0xad, 0x51, 0xc7, 0x14, 0x44, 0x8f, 0xb4, 0x6a, 0xda, 0x0d, - 0xa3, 0x64, 0xb5, 0xea, 0xf1, 0x47, 0xac, 0x36, 0x5e, 0xb1, 0x2b, 0x36, 0xfb, 0x39, 0xed, 0xfd, - 0xe2, 0xa5, 0xfa, 0x3d, 0x80, 0x95, 0xe6, 0x9a, 0x51, 0x2a, 0xd9, 0xcd, 0x9a, 0x4b, 0x26, 0xa0, - 0xd7, 0x6d, 0x18, 0x65, 0xda, 0x98, 0xd4, 0x0e, 0x69, 0x47, 0xfb, 0x0b, 0xf8, 0x44, 0x5e, 0x80, - 0x51, 0x47, 0xd6, 0x2a, 0xd6, 0xec, 0x5a, 0x89, 0x4e, 0xe6, 0x0e, 0x69, 0x47, 0x87, 0x0a, 0x23, - 0xad, 0xf2, 0xbb, 0x5e, 0xb1, 0xfe, 0x69, 0x78, 0xfa, 0x15, 0x4f, 0x57, 0x2d, 0xaa, 0xf7, 0x1a, - 0x65, 0xda, 0x70, 0x0a, 0xf4, 0x41, 0x93, 0x3a, 0x2e, 0x79, 0x16, 0x86, 0x7c, 0xa4, 0xcc, 0x32, - 0xf6, 0x34, 0xd8, 0x2a, 0x5c, 0x2c, 0x93, 0xa7, 0xa0, 0xbf, 0x6a, 0x34, 0xde, 0xa2, 0xac, 0x42, - 0x8e, 0x55, 0xe8, 0xe3, 0x05, 0x8b, 0x65, 0xfd, 0xab, 0x1a, 0x3c, 0x93, 0xd0, 0x85, 0x53, 0xb7, - 0x6b, 0x0e, 0x25, 0x77, 0x01, 0xd6, 0x9a, 0x5b, 0x45, 0x9b, 0x95, 0x4e, 0x6a, 0x87, 0xba, 0x8e, - 0x0e, 0xcc, 0x4c, 0x4f, 0x25, 0x8f, 0xda, 0x54, 0x88, 0xd2, 0xbc, 0xe1, 0x1a, 0x85, 0xfe, 0xb5, - 0xe6, 0x16, 0xa7, 0x4b, 0x96, 0x61, 0xc0, 0xa1, 0x96, 0x25, 0x08, 0xe6, 0x3a, 0x23, 0x08, 0x1e, - 0x0d, 0x4e, 0x51, 0xff, 0x0d, 0x0d, 0x8e, 0x84, 0xea, 0xac, 0xd9, 0xf6, 0x5b, 0x4b, 0xd4, 0x35, - 0xca, 0x86, 0x6b, 0xbc, 0x66, 0xba, 0x1b, 0x4b, 0x4c, 0x5e, 0xb2, 0x02, 0x7d, 0x55, 0x2c, 0x65, - 0xaa, 0x1a, 0x98, 0x39, 0x97, 0xa1, 0x63, 0x3f, 0xd1, 0x82, 0x24, 0x94, 0xaa, 0x5f, 0x32, 0x0e, - 0x3d, 0xa6, 0x33, 0xd7, 0xdc, 0x9a, 0xec, 0x3a, 0xa4, 0x1d, 0xed, 0x2b, 0xf0, 0x07, 0xfd, 0x69, - 0xc8, 0x33, 0xa5, 0xdf, 0xc4, 0x1e, 0x97, 0x8d, 0x86, 0x51, 0x15, 0xa3, 0xaa, 0x17, 0xe1, 0xa9, - 0xd8, 0xb7, 0x38, 0x20, 0xd7, 0xa1, 0xb7, 0xce, 0x4a, 0x50, 0x04, 0x3d, 0x4d, 0x04, 0xde, 0x76, - 0xae, 0xfb, 0xeb, 0xef, 0x1d, 0xdc, 0x55, 0xc0, 0x76, 0xfa, 0xe7, 0x35, 0x38, 0x10, 0x1a, 0xf4, - 0x79, 0x5a, 0xb7, 0x1d, 0xd3, 0xcd, 0x66, 0x59, 0x77, 0x00, 0x5a, 0xcf, 0x4c, 0xf4, 0x81, 0x99, - 0xe7, 0xd4, 0x14, 0xca, 0x38, 0xd2, 0x0a, 0xbe, 0xf6, 0xfa, 0x87, 0x1a, 0x1c, 0x4c, 0xe4, 0x0a, - 0x65, 0xa7, 0xd0, 0x57, 0xc6, 0x32, 0x34, 0xc5, 0xc5, 0xb4, 0xfe, 0xda, 0x90, 0x9b, 0x12, 0x05, - 0x37, 0x6b, 0x6e, 0x63, 0xab, 0x20, 0x49, 0xe7, 0x3f, 0x0d, 0x43, 0x81, 0x57, 0x64, 0x14, 0xba, - 0xde, 0xa2, 0x5b, 0xa8, 0x04, 0xef, 0x27, 0xb9, 0x00, 0x3d, 0x9b, 0x86, 0xd5, 0xa4, 0x28, 0xf6, - 0xb3, 0x69, 0x6c, 0x20, 0xad, 0x02, 0x6f, 0x71, 0x31, 0x77, 0x5e, 0xd3, 0x0f, 0xe0, 0xcc, 0x16, - 0x63, 0x3c, 0x67, 0x58, 0x46, 0xad, 0x44, 0xa5, 0x0d, 0xac, 0xe3, 0xb4, 0x8c, 0xbe, 0x47, 0x4d, - 0xdc, 0x84, 0xbe, 0x35, 0x2c, 0x43, 0x4d, 0xa4, 0xb2, 0x80, 0xed, 0xd1, 0x10, 0x64, 0x53, 0xfd, - 0x1c, 0xda, 0xda, 0x6c, 0xa5, 0xd2, 0xa0, 0x15, 0xc3, 0xa5, 0xaf, 0xda, 0x56, 0xb3, 0x4a, 0x85, - 0x19, 0x4c, 0xc2, 0x6e, 0x31, 0xbc, 0x5c, 0x76, 0xf1, 0xa8, 0x37, 0x51, 0x80, 0x48, 0x43, 0xe4, - 0xef, 0x3e, 0xec, 0x31, 0xc4, 0xab, 0xe2, 0x26, 0x7b, 0x27, 0x18, 0x3d, 0x9a, 0xc6, 0x28, 0x9f, - 0xa9, 0x48, 0x6c, 0xd4, 0x08, 0x52, 0x77, 0xf4, 0xd7, 0xe3, 0xbb, 0x95, 0x76, 0x9b, 0x87, 0x3e, - 0xe4, 0x90, 0xf7, 0xd6, 0x5f, 0x90, 0xcf, 0xe4, 0x19, 0x00, 0x39, 0x51, 0xb9, 0xe3, 0xe9, 0x2f, - 0xf4, 0x8b, 0x99, 0xea, 0xe8, 0xff, 0x29, 0x5c, 0x61, 0x94, 0x36, 0xca, 0xe4, 0xc2, 0xfe, 0x96, - 0x4c, 0x62, 0x6e, 0x04, 0x65, 0x3b, 0x9f, 0x26, 0x9b, 0x24, 0x3c, 0xcb, 0xdb, 0x0a, 0x95, 0x95, - 0xec, 0x46, 0xb9, 0xb0, 0xcf, 0x88, 0x7d, 0xeb, 0x90, 0x35, 0x98, 0x6c, 0xf5, 0x8a, 0x02, 0x88, - 0x4e, 0x73, 0x19, 0x15, 0x3a, 0x21, 0x29, 0xf9, 0x8b, 0x1d, 0xfd, 0x3a, 0x1c, 0x0e, 0x8a, 0x1e, - 0x68, 0x85, 0xba, 0x0d, 0x38, 0x3a, 0x2d, 0x14, 0x48, 0x2c, 0xd0, 0xd3, 0x28, 0xa0, 0x06, 0x17, - 0xa0, 0x97, 0xb3, 0x8e, 0xbe, 0x2b, 0x95, 0x73, 0xbf, 0x7a, 0x84, 0x07, 0xe3, 0xad, 0xf5, 0x13, - 0x30, 0xc9, 0x7a, 0x9b, 0xa7, 0x35, 0xbb, 0x3a, 0x4f, 0x4b, 0x66, 0xd5, 0xb0, 0x04, 0x9b, 0xe3, - 0xd0, 0x53, 0xf6, 0x8a, 0x91, 0x45, 0xfe, 0xa0, 0x9f, 0x81, 0xfd, 0x31, 0x2d, 0x90, 0xad, 0x49, - 0xd8, 0x5d, 0xe6, 0x45, 0xac, 0x51, 0x77, 0x41, 0x3c, 0xea, 0xa7, 0x62, 0x9a, 0x49, 0x63, 0x9b, - 0x80, 0x5e, 0x46, 0x5c, 0x98, 0x1a, 0x3e, 0xe9, 0x2e, 0xba, 0xf7, 0x50, 0x23, 0xec, 0xec, 0x55, - 0x18, 0x66, 0xf5, 0x8a, 0xd8, 0x87, 0x30, 0x9d, 0x17, 0xd2, 0x5d, 0x88, 0x8f, 0x14, 0x2a, 0x63, - 0xa8, 0xec, 0x2f, 0xd4, 0x6f, 0xa4, 0x8d, 0x80, 0xe4, 0x39, 0x38, 0x09, 0xb4, 0xf0, 0x24, 0x30, - 0xe1, 0xd9, 0x54, 0x22, 0x28, 0xc3, 0x1c, 0xec, 0xee, 0x74, 0x4e, 0x8b, 0x86, 0xfa, 0x1b, 0x91, - 0xcc, 0x43, 0xf8, 0xc9, 0x2c, 0x31, 0x48, 0x8e, 0x76, 0xce, 0x3f, 0xda, 0x46, 0x52, 0x80, 0x93, - 0x12, 0x5c, 0x0b, 0x44, 0x12, 0x65, 0x17, 0x2e, 0x1b, 0xe9, 0xcb, 0xb0, 0x8f, 0x77, 0x51, 0xb7, - 0x5d, 0x2e, 0xa0, 0xdf, 0x2e, 0x1c, 0xd7, 0x70, 0x9b, 0x8e, 0xc8, 0xfc, 0xf8, 0x53, 0x3b, 0x07, - 0xf4, 0x83, 0x68, 0xd4, 0x01, 0x8a, 0x32, 0xe8, 0xef, 0xe6, 0x15, 0x85, 0xc2, 0xd3, 0xe3, 0xac, - 0xa4, 0x50, 0x10, 0xcd, 0xf4, 0x33, 0x30, 0x11, 0xa2, 0xae, 0x34, 0xaf, 0x5f, 0x8f, 0x88, 0x29, - 0x79, 0xba, 0x0a, 0xbd, 0xbc, 0x1a, 0x2a, 0x50, 0x95, 0x25, 0x6c, 0xa5, 0x7f, 0x2f, 0x87, 0x93, - 0xcb, 0x7b, 0x27, 0x33, 0x2c, 0x15, 0xae, 0xbc, 0x51, 0xb7, 0xcc, 0xaa, 0xc9, 0x93, 0x8e, 0xee, - 0x02, 0x7f, 0x20, 0xf3, 0x00, 0x2c, 0xab, 0x2c, 0x3a, 0x66, 0x99, 0xb2, 0x8c, 0x6b, 0x78, 0xe6, - 0x48, 0x1a, 0x53, 0xac, 0xd3, 0x15, 0xb3, 0x4c, 0x0b, 0xfd, 0xb6, 0xf8, 0x49, 0xde, 0x84, 0xfd, - 0x8c, 0x5c, 0xb1, 0xd4, 0xac, 0x36, 0x2d, 0xc3, 0x6b, 0x59, 0xac, 0xd9, 0xde, 0xca, 0xc3, 0xb0, - 0x26, 0xbb, 0x3d, 0x46, 0xe6, 0xa6, 0xbc, 0xe4, 0xe5, 0xef, 0xdf, 0x3b, 0xf8, 0x5c, 0xc5, 0x74, - 0x37, 0x9a, 0x6b, 0x53, 0x25, 0xbb, 0x3a, 0x5d, 0xb2, 0x9d, 0xaa, 0xed, 0xe0, 0x9f, 0xe3, 0x4e, - 0xf9, 0xad, 0x69, 0x77, 0xab, 0x4e, 0x9d, 0xa9, 0x79, 0x5a, 0x2a, 0xec, 0x63, 0x04, 0x6f, 0x48, - 0x7a, 0x77, 0x91, 0x5c, 0x6c, 0x5f, 0x0f, 0x9a, 0x46, 0xcd, 0x35, 0xdd, 0xad, 0xc9, 0x9e, 0x1d, - 0xe9, 0xeb, 0x15, 0x24, 0xa7, 0xbf, 0xa3, 0xa1, 0x5b, 0x0a, 0xa9, 0x1b, 0x47, 0xf3, 0x36, 0x8c, - 0xae, 0x35, 0xb7, 0x9c, 0x62, 0xbd, 0x61, 0x96, 0x68, 0xd1, 0xa2, 0x9b, 0xd4, 0x42, 0x53, 0x3b, - 0x9c, 0xa6, 0xc2, 0x3b, 0x5e, 0xc5, 0xc2, 0xb0, 0xd7, 0x74, 0xd9, 0x6b, 0xc9, 0x9e, 0xc9, 0x12, - 0xec, 0xf1, 0x12, 0xf4, 0x20, 0xb5, 0x9c, 0x2a, 0xb5, 0x11, 0xd6, 0xb6, 0x45, 0x4e, 0xff, 0xa2, - 0x06, 0xc3, 0x0b, 0x4d, 0xcb, 0x6a, 0x19, 0xd1, 0x76, 0x8d, 0x8f, 0x7c, 0x0a, 0xf6, 0x54, 0xcd, - 0x32, 0xf2, 0x67, 0xd4, 0xca, 0x45, 0xd7, 0x5e, 0xc3, 0x5c, 0xee, 0x58, 0xaa, 0x2f, 0x33, 0xcb, - 0x8c, 0xb1, 0xd9, 0x5a, 0x79, 0xf5, 0xde, 0x1c, 0xa6, 0xb1, 0xc3, 0x55, 0x5f, 0xa9, 0xbd, 0xa6, - 0xff, 0x94, 0x86, 0x69, 0x55, 0x90, 0xe9, 0x6d, 0x3a, 0x08, 0x32, 0x03, 0x13, 0x6f, 0x9b, 0xee, - 0x46, 0x31, 0xca, 0x38, 0x5f, 0x5d, 0x10, 0xef, 0xed, 0x52, 0x90, 0x95, 0x32, 0x26, 0x4c, 0x11, - 0x4e, 0x70, 0xd8, 0xe7, 0xc3, 0x8e, 0x25, 0x55, 0xfa, 0x20, 0x95, 0x96, 0x73, 0xa9, 0xa2, 0x69, - 0x85, 0xde, 0xab, 0x4c, 0xe5, 0x64, 0xa1, 0x72, 0x89, 0x42, 0x19, 0xb1, 0xea, 0xf5, 0x45, 0xa7, - 0xa0, 0x6d, 0x64, 0x11, 0x49, 0x38, 0xa7, 0x9f, 0x94, 0x6b, 0x24, 0x31, 0x5b, 0x9c, 0xb9, 0xad, - 0x5b, 0x86, 0xb3, 0xd1, 0x0a, 0xa5, 0xa9, 0x62, 0x45, 0x82, 0x57, 0x2e, 0x26, 0x78, 0x1d, 0x86, - 0x41, 0xee, 0xb0, 0x36, 0x18, 0xe1, 0xc9, 0x2e, 0x36, 0xe2, 0x03, 0xac, 0x8c, 0xf7, 0xa5, 0x5b, - 0x62, 0x51, 0x14, 0xc3, 0x06, 0x8a, 0xbb, 0x08, 0xbd, 0x81, 0xd5, 0xf9, 0xc9, 0x34, 0x71, 0x57, - 0x1b, 0x66, 0xb5, 0x4a, 0xcb, 0x1e, 0xb9, 0x3b, 0x9e, 0xa3, 0x60, 0x34, 0x0b, 0x48, 0x40, 0x6e, - 0x38, 0xac, 0xb2, 0xad, 0x8a, 0x56, 0x9f, 0x3b, 0x26, 0xb2, 0x6e, 0xc1, 0x27, 0x78, 0x82, 0xc1, - 0x4b, 0x66, 0xcb, 0xe5, 0x06, 0x75, 0x9c, 0x8c, 0x3d, 0x3d, 0x0f, 0x23, 0xa2, 0x1b, 0x83, 0x13, - 0xc0, 0xbe, 0x86, 0x8d, 0x00, 0x59, 0xfd, 0x0b, 0x39, 0xd8, 0x1b, 0x2b, 0x31, 0x99, 0x87, 0x1e, - 0x66, 0x6d, 0x9c, 0x36, 0xf3, 0xb2, 0xbb, 0x32, 0x78, 0x59, 0xde, 0x98, 0xbc, 0x0c, 0x7d, 0xd2, - 0x5d, 0xe7, 0x3a, 0x22, 0x24, 0xdb, 0x7b, 0xb4, 0xd6, 0x4d, 0xcb, 0x32, 0xd6, 0x2c, 0x1e, 0xbb, - 0x3a, 0xa0, 0x25, 0xda, 0xb7, 0xb6, 0x1d, 0xba, 0x7d, 0xdb, 0x0e, 0x9e, 0x7b, 0x69, 0x99, 0x1b, - 0x0f, 0x2f, 0x18, 0xf8, 0x3c, 0x8b, 0xd2, 0xdf, 0xc4, 0x84, 0x2c, 0x3a, 0xf8, 0x3b, 0x6f, 0x68, - 0x0d, 0x38, 0xd2, 0xc6, 0x0c, 0x76, 0xbe, 0xcf, 0x2b, 0xbe, 0x19, 0x1d, 0x74, 0xe3, 0x4a, 0x99, - 0xd0, 0x2f, 0xe5, 0x7c, 0x53, 0x31, 0xdc, 0x5e, 0x06, 0xd1, 0x7e, 0xe9, 0xc7, 0x7c, 0x96, 0x95, - 0x25, 0x7e, 0xf7, 0x89, 0x58, 0x42, 0x56, 0x61, 0x78, 0x8d, 0x3a, 0x6e, 0x71, 0xad, 0xb9, 0x85, - 0x14, 0x73, 0x1d, 0x51, 0x1c, 0xf4, 0xa8, 0xcc, 0x35, 0xb7, 0x38, 0xd5, 0x57, 0x61, 0x84, 0x51, - 0x65, 0x9b, 0x70, 0x9c, 0x6c, 0x57, 0x47, 0x64, 0x87, 0x3c, 0x32, 0x2b, 0xd4, 0xb2, 0x18, 0x5d, - 0xfd, 0x06, 0x4e, 0xec, 0x79, 0xda, 0x30, 0x37, 0x59, 0xe6, 0xd1, 0x81, 0x8e, 0x7f, 0x2d, 0x87, - 0x76, 0x91, 0x4c, 0xe5, 0xfb, 0x9a, 0xfe, 0x3d, 0xb1, 0x51, 0xd6, 0x52, 0xd2, 0x4e, 0x64, 0xcf, - 0xa9, 0x79, 0x6f, 0xd7, 0x8e, 0xe6, 0xbd, 0xfa, 0x97, 0x35, 0x38, 0x94, 0x2c, 0xc2, 0xff, 0x81, - 0x8c, 0xf4, 0x77, 0xbb, 0x60, 0x2a, 0xd6, 0x59, 0xae, 0xda, 0x37, 0x8c, 0x5a, 0x89, 0x5a, 0xf7, - 0xeb, 0xab, 0xf6, 0x6c, 0xd5, 0xf3, 0x6d, 0x3b, 0x97, 0x2e, 0xdc, 0x83, 0x81, 0x35, 0xc3, 0xa1, - 0x45, 0x83, 0xd1, 0xed, 0x30, 0x48, 0x80, 0x47, 0x82, 0x73, 0x46, 0x5e, 0x81, 0xc1, 0x07, 0x4d, - 0xdb, 0x95, 0x14, 0xbb, 0x3b, 0xa2, 0x38, 0xc0, 0x68, 0x20, 0xc9, 0x3b, 0xd0, 0xe7, 0xb8, 0x0d, - 0xc3, 0xa5, 0x15, 0xbe, 0x80, 0x19, 0x9e, 0x39, 0x91, 0xa6, 0x5e, 0xae, 0x2c, 0x8b, 0x1d, 0xec, - 0xac, 0x60, 0xbb, 0x82, 0xa4, 0x40, 0x5e, 0x83, 0x91, 0x06, 0x5d, 0xa7, 0x0d, 0x5a, 0x2b, 0x51, - 0x9c, 0x42, 0xbd, 0x1d, 0x59, 0xe2, 0xb0, 0x24, 0xc3, 0xe7, 0xd0, 0xbf, 0xe7, 0xe0, 0xb4, 0x6f, - 0xfc, 0x42, 0x66, 0xf8, 0x44, 0x47, 0x31, 0xac, 0xf4, 0xae, 0x9d, 0x55, 0x7a, 0xf7, 0x93, 0x50, - 0x7a, 0xcf, 0x8e, 0x28, 0x7d, 0x1d, 0x77, 0xa8, 0xe2, 0x75, 0xbe, 0x73, 0x39, 0x66, 0x03, 0x8e, - 0xc5, 0x24, 0x17, 0x1d, 0xf5, 0xa7, 0x9c, 0x69, 0xfe, 0x44, 0x17, 0x3c, 0x85, 0xe9, 0x47, 0xab, - 0xa3, 0x8f, 0x75, 0xbe, 0xb9, 0xc0, 0x56, 0x49, 0x15, 0xb3, 0xd6, 0xa1, 0x05, 0x62, 0xeb, 0x40, - 0xde, 0xda, 0xbd, 0xcd, 0xbc, 0xf5, 0xa0, 0xc8, 0x5b, 0x3d, 0x83, 0xeb, 0x9b, 0xeb, 0xff, 0xf0, - 0xbd, 0x83, 0xbc, 0x20, 0x3e, 0x85, 0xed, 0x0d, 0xa7, 0xb0, 0x9b, 0xb8, 0x7d, 0x99, 0x64, 0x61, - 0x18, 0x59, 0xee, 0x85, 0x92, 0xca, 0x73, 0x0a, 0x49, 0x65, 0xdc, 0xa8, 0xca, 0xd4, 0xf2, 0x47, - 0xe0, 0x93, 0x4a, 0x16, 0xf7, 0xa4, 0xfa, 0xff, 0x19, 0x2d, 0x92, 0x7d, 0x7d, 0x84, 0x6b, 0xd6, - 0x87, 0x91, 0x24, 0x2e, 0x61, 0xe5, 0xba, 0xe3, 0x7a, 0xf8, 0x69, 0x71, 0x86, 0xe3, 0xcb, 0x1f, - 0x3f, 0xb2, 0xad, 0x97, 0x5f, 0xd6, 0x00, 0x7c, 0x19, 0xc8, 0xc7, 0xce, 0x03, 0xe8, 0x5f, 0xd1, - 0x60, 0x7c, 0x99, 0x36, 0xea, 0xd4, 0x6d, 0x1a, 0x16, 0xd7, 0xd3, 0x8a, 0x6b, 0xb8, 0x94, 0x2c, - 0xc3, 0x80, 0x50, 0x46, 0x6d, 0xdd, 0xc6, 0x5d, 0x94, 0xd4, 0x33, 0xfa, 0x10, 0x99, 0xc5, 0xda, - 0xba, 0x5d, 0x40, 0x85, 0x7a, 0xbf, 0xc9, 0x7d, 0x18, 0x5c, 0x6f, 0xd6, 0xca, 0x66, 0xad, 0xc2, - 0x49, 0xf2, 0x9d, 0xb6, 0x99, 0x0c, 0x24, 0x17, 0x78, 0xf3, 0xc2, 0x00, 0xd2, 0xf1, 0xc8, 0xea, - 0x7f, 0xd8, 0x05, 0xe3, 0x0b, 0x4d, 0xcb, 0x0a, 0x0f, 0x37, 0x99, 0x0f, 0x6d, 0x01, 0xbd, 0x98, - 0xbe, 0xb9, 0x1f, 0x6c, 0x2d, 0x37, 0x09, 0x5f, 0x87, 0xe1, 0xba, 0xe0, 0xc2, 0xcf, 0xf7, 0x89, - 0x0c, 0x7c, 0x33, 0x8d, 0xde, 0xda, 0x55, 0x18, 0x92, 0x94, 0x98, 0x42, 0x7e, 0xc0, 0x53, 0x88, - 0xdb, 0x6c, 0x50, 0x87, 0x13, 0xee, 0x62, 0x84, 0x4f, 0xa5, 0x11, 0xbe, 0xf9, 0xb0, 0x6e, 0x36, - 0xb6, 0x16, 0x78, 0xab, 0x96, 0x9e, 0x6f, 0xed, 0xf2, 0x74, 0xc2, 0x0a, 0x19, 0xe5, 0x25, 0x6e, - 0xc9, 0x18, 0xb9, 0x3b, 0xf3, 0xc8, 0xcc, 0xf2, 0xf9, 0x2a, 0x26, 0x76, 0xa3, 0xb4, 0x67, 0x67, - 0x36, 0x4a, 0xe7, 0x7a, 0xa1, 0xdb, 0x93, 0x5e, 0xb7, 0x70, 0x69, 0x1e, 0x33, 0x6d, 0xd1, 0x55, - 0xbc, 0x1c, 0xde, 0xa7, 0x3c, 0xd1, 0x6e, 0x53, 0x2f, 0x32, 0xaa, 0x72, 0xb7, 0xf2, 0x12, 0xee, - 0x72, 0x45, 0x6a, 0xa8, 0x2c, 0x51, 0xcd, 0x04, 0x0f, 0x23, 0x39, 0xbd, 0x15, 0x32, 0xbd, 0xec, - 0x8c, 0x8a, 0x3d, 0xc8, 0x39, 0x8c, 0x66, 0xe1, 0x0a, 0x18, 0x5e, 0x94, 0xd8, 0xa5, 0xd1, 0x65, - 0x79, 0x90, 0x46, 0xeb, 0x08, 0x54, 0x24, 0x38, 0xe2, 0xa4, 0x9f, 0x3f, 0xaa, 0xa5, 0x5c, 0x2f, - 0xe1, 0x7a, 0xae, 0x75, 0xe0, 0xc6, 0x42, 0x30, 0xbb, 0xc6, 0x94, 0xe5, 0x3c, 0x4f, 0x5f, 0x88, - 0x5c, 0x02, 0x59, 0xb6, 0x1d, 0x93, 0xdd, 0xfb, 0xca, 0x44, 0xe7, 0x4d, 0x78, 0x2e, 0x81, 0xce, - 0x62, 0x2d, 0x38, 0xda, 0xdb, 0xbf, 0x44, 0xe5, 0xc0, 0x74, 0xa8, 0xaf, 0x9b, 0xeb, 0xeb, 0x7c, - 0xc4, 0x9f, 0x5c, 0xa7, 0x2f, 0xa3, 0x71, 0x84, 0x2e, 0x29, 0xc9, 0x0b, 0x4a, 0x59, 0x94, 0x55, - 0x8b, 0x8c, 0x9e, 0x4f, 0xe9, 0x72, 0x02, 0xf6, 0x78, 0xa1, 0x92, 0xe2, 0xf4, 0x9b, 0x52, 0x73, - 0xa8, 0x82, 0x0e, 0x1e, 0x59, 0x73, 0x12, 0xfa, 0x5b, 0xf0, 0x7c, 0xdb, 0xc1, 0x91, 0x07, 0x9f, - 0xb2, 0x5b, 0x6f, 0x32, 0x7d, 0x22, 0xd5, 0xf3, 0xfa, 0x3b, 0xd3, 0x44, 0x67, 0xbf, 0x9e, 0x83, - 0x3d, 0x91, 0xf1, 0x20, 0xfb, 0x60, 0xb7, 0xe9, 0x14, 0x2d, 0xbb, 0x56, 0x61, 0x94, 0xfb, 0x0a, - 0xbd, 0xa6, 0x73, 0xc7, 0xae, 0x55, 0x76, 0x34, 0xc5, 0xbe, 0x07, 0x03, 0xb4, 0xe6, 0x36, 0xb6, - 0x22, 0xbb, 0x3f, 0x99, 0x16, 0xec, 0x8c, 0x04, 0x77, 0xc6, 0xaf, 0xc3, 0x28, 0x15, 0xa2, 0x14, - 0x31, 0x7b, 0xef, 0xcc, 0xc3, 0x8f, 0x48, 0x3a, 0x4b, 0x8c, 0x8c, 0xfe, 0x18, 0x4e, 0xa8, 0x1b, - 0xb1, 0xdc, 0x9c, 0x0d, 0x0c, 0xce, 0xf1, 0xd4, 0xe8, 0x15, 0xa6, 0x16, 0x1c, 0xa5, 0xab, 0x38, - 0xef, 0xe3, 0x12, 0x09, 0x15, 0x3f, 0x57, 0x45, 0x13, 0x8e, 0x6d, 0x2f, 0xd9, 0xed, 0xde, 0x46, - 0x3e, 0x83, 0x26, 0xcc, 0x03, 0x96, 0x70, 0xcd, 0x09, 0x31, 0x59, 0x89, 0xe5, 0x26, 0xba, 0xe6, - 0x44, 0x1a, 0xc8, 0xf6, 0x52, 0x80, 0xed, 0x4e, 0x52, 0x84, 0x00, 0xeb, 0xb3, 0xb8, 0x0a, 0x4f, - 0xc8, 0xaf, 0xd4, 0x38, 0x7f, 0x36, 0x95, 0x84, 0xbc, 0x3a, 0x1a, 0x30, 0x8f, 0x0e, 0xb2, 0xbd, - 0xa0, 0xdb, 0x90, 0xab, 0x9c, 0x44, 0x9f, 0x87, 0x1d, 0x97, 0x02, 0xf7, 0x3c, 0x3d, 0x77, 0x35, - 0xdb, 0xe1, 0x3d, 0xcf, 0xd6, 0xe5, 0x51, 0x71, 0x75, 0x4e, 0x10, 0xd6, 0x2f, 0xe0, 0x9d, 0xa9, - 0xf8, 0x90, 0x87, 0x9c, 0x8c, 0x43, 0x0f, 0xbf, 0xe1, 0xab, 0xb1, 0x1b, 0xbe, 0xfc, 0x41, 0xdf, - 0x8f, 0x97, 0x2a, 0x96, 0xec, 0x72, 0xd3, 0xa2, 0x2c, 0x43, 0x14, 0x17, 0xff, 0xde, 0xc0, 0x4b, - 0x20, 0x81, 0x57, 0xf2, 0xc2, 0x45, 0x40, 0x9f, 0xa9, 0x77, 0x6e, 0x5e, 0xe2, 0xd7, 0x9a, 0x39, - 0x01, 0xd4, 0xdf, 0x3e, 0xd8, 0xcb, 0x87, 0x2d, 0x14, 0x51, 0xf5, 0x32, 0xde, 0x0d, 0x79, 0xb2, - 0x5e, 0xff, 0x81, 0xff, 0x7c, 0xa9, 0x40, 0xdf, 0x36, 0x1a, 0xe5, 0x65, 0xdb, 0xac, 0xb9, 0x4a, - 0x97, 0xf7, 0x4e, 0xc3, 0x44, 0x9d, 0xf2, 0x05, 0x44, 0xdd, 0xb6, 0xad, 0xa2, 0x6b, 0x56, 0xa9, - 0xe3, 0x1a, 0xd5, 0x3a, 0x73, 0xd2, 0x5d, 0x85, 0x71, 0x7c, 0xbb, 0x6c, 0xdb, 0xd6, 0xaa, 0x78, - 0xa7, 0x7f, 0x4e, 0x9c, 0xe2, 0xc6, 0xf4, 0x89, 0x12, 0x56, 0xe1, 0x29, 0x11, 0x1d, 0xd9, 0x05, - 0xed, 0x62, 0x83, 0xd5, 0x2a, 0xd6, 0x59, 0x35, 0xce, 0x47, 0x66, 0xef, 0x3a, 0xe9, 0xb7, 0x08, - 0x7f, 0xb7, 0xfa, 0x61, 0xf4, 0x73, 0xbe, 0x37, 0x37, 0x8c, 0x6a, 0xdd, 0x30, 0x2b, 0x35, 0x31, - 0x1a, 0x3f, 0xd7, 0x83, 0xbe, 0x2c, 0xb6, 0x0e, 0xb2, 0xbd, 0x09, 0x4f, 0x7b, 0xec, 0x7a, 0xfa, - 0x40, 0x86, 0x4b, 0x58, 0xc5, 0xbf, 0x66, 0x3b, 0x93, 0xbe, 0xa0, 0x36, 0xf8, 0x74, 0xf5, 0x77, - 0xc0, 0x3c, 0xcf, 0x7e, 0x37, 0xe9, 0x15, 0xf9, 0x51, 0x0d, 0x8e, 0x84, 0x3a, 0x66, 0xe3, 0x21, - 0x7b, 0x77, 0x4a, 0x1b, 0xd4, 0x33, 0x5d, 0xdc, 0x5c, 0x9f, 0x4a, 0xdf, 0x88, 0x14, 0x52, 0x71, - 0x0d, 0xd9, 0x56, 0xe1, 0x70, 0xa0, 0x6b, 0xaf, 0x48, 0x54, 0x5a, 0x41, 0xc2, 0xc4, 0x84, 0xfd, - 0xae, 0xed, 0x1a, 0x56, 0xec, 0x78, 0x75, 0x16, 0x63, 0x27, 0x18, 0xc1, 0xc8, 0x68, 0x91, 0xcf, - 0x69, 0x70, 0x5c, 0x98, 0x9d, 0x9a, 0xd4, 0xdd, 0x1d, 0x49, 0x7d, 0x14, 0x3b, 0x59, 0x6d, 0x2b, - 0xfc, 0x43, 0x38, 0x2c, 0x19, 0x4a, 0x54, 0x42, 0x4f, 0x47, 0x46, 0xfb, 0x8c, 0x60, 0x22, 0x56, - 0x17, 0xfa, 0x25, 0xb4, 0xdc, 0x45, 0xe7, 0x5e, 0xdd, 0xa5, 0xe5, 0x7b, 0x4d, 0xf7, 0xde, 0x3a, - 0xaf, 0xe0, 0xb4, 0xbf, 0x2e, 0x3c, 0x8f, 0x26, 0x1d, 0xdb, 0x18, 0x4d, 0xfa, 0x10, 0x0c, 0x9a, - 0x4e, 0xd1, 0xf6, 0xde, 0x17, 0xed, 0xa6, 0x8b, 0x79, 0x19, 0x98, 0xb2, 0x89, 0xfe, 0x3c, 0x6e, - 0x2c, 0x45, 0x68, 0xe0, 0xbe, 0x9b, 0x74, 0x68, 0xf3, 0x98, 0xfd, 0xa7, 0x54, 0xc4, 0x4e, 0x53, - 0x7c, 0x8e, 0x7e, 0x15, 0x23, 0xe5, 0x02, 0xa5, 0xf3, 0xa6, 0xc3, 0x77, 0xf6, 0x30, 0x67, 0xf6, - 0xc5, 0xf8, 0x64, 0xa1, 0xff, 0x45, 0xc3, 0x38, 0x99, 0x44, 0x00, 0x79, 0x78, 0x06, 0xc0, 0x35, - 0x69, 0x43, 0x1e, 0x71, 0x69, 0x47, 0xbb, 0x0b, 0xfd, 0x5e, 0x09, 0xdf, 0x38, 0x2a, 0xc0, 0xa0, - 0xcc, 0xdf, 0x5b, 0x7b, 0x10, 0xa9, 0xe9, 0x8b, 0xaf, 0xc3, 0x55, 0x93, 0x36, 0x58, 0x6f, 0x03, - 0x46, 0xab, 0x6b, 0x2f, 0x33, 0x95, 0x5e, 0xcf, 0xb5, 0x70, 0xf7, 0x61, 0x2a, 0x03, 0xc9, 0xd5, - 0xd5, 0x3b, 0x05, 0x10, 0x5e, 0xce, 0xb5, 0xa4, 0x5f, 0xf3, 0x55, 0x13, 0x36, 0x2b, 0x06, 0xe5, - 0x33, 0xe2, 0xd0, 0x2f, 0xb6, 0x8e, 0x0c, 0xdd, 0x7b, 0xd7, 0x29, 0x2d, 0x96, 0xf1, 0x7d, 0x6b, - 0x62, 0x69, 0x99, 0xa4, 0x96, 0x74, 0xc7, 0xd6, 0xa3, 0x85, 0xfa, 0x75, 0x8c, 0x44, 0x78, 0x2b, - 0x7e, 0xc9, 0x74, 0xaa, 0x86, 0x5b, 0xf2, 0x6d, 0x93, 0x1e, 0x84, 0x81, 0x72, 0xd3, 0x71, 0x8b, - 0xeb, 0x46, 0xc9, 0xb5, 0x39, 0x80, 0xa7, 0xab, 0x00, 0x5e, 0xd1, 0x02, 0x2b, 0xd1, 0xff, 0xae, - 0x0b, 0x46, 0x42, 0xad, 0x89, 0x0e, 0x81, 0x55, 0x95, 0xfa, 0x75, 0x55, 0x72, 0x07, 0xfa, 0x8d, - 0x4d, 0xc3, 0xdc, 0xce, 0xdd, 0x8f, 0x16, 0x01, 0x32, 0x0f, 0x3d, 0xcc, 0x35, 0x74, 0xb8, 0x32, - 0xe0, 0x8d, 0xc9, 0x2b, 0x30, 0x88, 0x28, 0x81, 0xe2, 0x86, 0x6d, 0x95, 0x7d, 0x47, 0x40, 0x99, - 0x8e, 0xa9, 0x90, 0xc6, 0x2d, 0xdb, 0x2a, 0x93, 0xfb, 0x30, 0x4c, 0x1f, 0xd6, 0x69, 0xc9, 0x9b, - 0xe0, 0x9c, 0xc3, 0xde, 0x8e, 0x88, 0x0e, 0x09, 0x2a, 0xcc, 0x53, 0x91, 0xbb, 0x00, 0x65, 0x73, - 0x1d, 0x4f, 0x9a, 0x26, 0x77, 0x77, 0xb6, 0xc8, 0x6a, 0x51, 0xd0, 0x7f, 0x18, 0x73, 0x86, 0x18, - 0xeb, 0x40, 0x23, 0x7d, 0x03, 0x88, 0xd0, 0x4d, 0x55, 0xbe, 0xc5, 0x14, 0xe9, 0x93, 0x0a, 0x30, - 0x0c, 0x41, 0xb2, 0xb0, 0x67, 0x2d, 0xdc, 0x87, 0x7e, 0x04, 0x7d, 0x06, 0x56, 0xf5, 0x12, 0xd0, - 0xb9, 0x96, 0x0e, 0xa5, 0x87, 0x7b, 0x27, 0x07, 0x7b, 0x7d, 0x55, 0xf8, 0x22, 0x8e, 0x69, 0xf9, - 0xfb, 0x66, 0x98, 0x6e, 0x86, 0xfa, 0x2f, 0x88, 0x65, 0x44, 0xa2, 0x8a, 0x71, 0x98, 0x6b, 0x90, - 0x17, 0x7d, 0xb3, 0xcd, 0x7f, 0x3f, 0x23, 0x4a, 0xf7, 0x91, 0x62, 0x07, 0xa8, 0xb0, 0x6f, 0x2d, - 0xbe, 0x5f, 0x19, 0xde, 0x42, 0xae, 0xd6, 0xcb, 0xe1, 0x4d, 0xc7, 0x35, 0x4b, 0x72, 0xf0, 0x2f, - 0xc0, 0x50, 0xe0, 0x05, 0x21, 0xd0, 0xed, 0xc5, 0x0b, 0x8c, 0x1d, 0xec, 0xb7, 0x37, 0xc6, 0x2d, - 0x60, 0x56, 0x77, 0x81, 0x3f, 0xe8, 0x0e, 0x46, 0xc6, 0x94, 0x3e, 0xe4, 0x6a, 0x19, 0x1c, 0x59, - 0xaa, 0x82, 0x51, 0x08, 0xd0, 0x29, 0xf8, 0x1a, 0x7b, 0x0b, 0x8f, 0x25, 0xd3, 0xb5, 0x5f, 0x35, - 0x9a, 0x16, 0x0b, 0x3f, 0x52, 0x90, 0x3f, 0xd0, 0x60, 0x22, 0xfc, 0x06, 0xbb, 0x7f, 0x01, 0x46, - 0xab, 0x86, 0xe3, 0xd2, 0x86, 0x38, 0x78, 0xa5, 0x22, 0x40, 0x8f, 0xf0, 0xf2, 0x59, 0x51, 0x4c, - 0x4e, 0xc2, 0x78, 0x59, 0xae, 0x3d, 0x7c, 0xd5, 0xf9, 0x29, 0xce, 0x58, 0xeb, 0x5d, 0xab, 0xc9, - 0x11, 0x18, 0x76, 0xea, 0xb6, 0xeb, 0xab, 0xcc, 0xcf, 0xb1, 0x86, 0xbc, 0xd2, 0x40, 0xb5, 0xd2, - 0xdb, 0x33, 0x27, 0x7c, 0xd5, 0xba, 0x79, 0x35, 0xaf, 0x54, 0x56, 0xd3, 0xe7, 0x31, 0x9e, 0xe0, - 0x8a, 0x7b, 0x7e, 0xa1, 0x61, 0x57, 0x99, 0x48, 0xbe, 0x5d, 0xb8, 0x4d, 0xef, 0xb9, 0x18, 0xdc, - 0x63, 0x1d, 0x64, 0x85, 0xe2, 0x08, 0x59, 0xdc, 0x4f, 0x8b, 0xa1, 0x82, 0x3a, 0x49, 0x5d, 0x94, - 0x8b, 0x75, 0xfd, 0x2d, 0xd3, 0x71, 0xed, 0x86, 0x59, 0x92, 0x39, 0x5c, 0xc9, 0xf6, 0xa5, 0x68, - 0xa9, 0x24, 0x5c, 0xf4, 0x3d, 0x49, 0x24, 0xe4, 0x86, 0xc4, 0x90, 0xc8, 0x3a, 0xd9, 0x0b, 0x15, - 0x0c, 0x48, 0x80, 0xd0, 0xa0, 0xeb, 0x7b, 0xd2, 0x7f, 0x5b, 0x83, 0x31, 0xf6, 0x9a, 0x77, 0xeb, - 0x25, 0x6d, 0xde, 0x1a, 0x94, 0xbc, 0x08, 0x84, 0x77, 0x53, 0x69, 0xd8, 0xcd, 0xba, 0x97, 0xf1, - 0x3a, 0xb4, 0x84, 0x26, 0x3e, 0xca, 0xde, 0xbc, 0x84, 0x2f, 0x56, 0x68, 0x89, 0xec, 0x83, 0xdd, - 0x55, 0xe3, 0x61, 0xd1, 0xa8, 0x50, 0x34, 0xf8, 0xde, 0xaa, 0xf1, 0x70, 0xb6, 0x42, 0xc9, 0x14, - 0x8c, 0x99, 0xb5, 0x92, 0xd5, 0xf4, 0xf8, 0x35, 0xde, 0x2e, 0x6e, 0xf0, 0x4e, 0xf0, 0x66, 0xe4, - 0x1e, 0x7c, 0x55, 0x30, 0xde, 0xc6, 0xde, 0x3d, 0xc3, 0x13, 0xf5, 0xe5, 0x26, 0x02, 0x3b, 0x8e, - 0x2e, 0x8c, 0x60, 0xb9, 0xd8, 0x1c, 0xd0, 0x7f, 0x45, 0xc3, 0x93, 0x04, 0x89, 0x70, 0x31, 0x5c, - 0xd3, 0x32, 0xdd, 0x2d, 0xa5, 0xe3, 0xd6, 0x12, 0xec, 0xe5, 0xf2, 0x21, 0x4b, 0x5e, 0xea, 0xeb, - 0x09, 0xae, 0x92, 0xe0, 0xc5, 0xe8, 0xab, 0x30, 0xe6, 0x46, 0x0b, 0xf5, 0xcf, 0xe6, 0x02, 0xb6, - 0xe9, 0x67, 0x51, 0x2e, 0xf1, 0x61, 0x53, 0x96, 0xe2, 0xe1, 0xe4, 0xb1, 0x2c, 0xa1, 0xb3, 0xd5, - 0x9a, 0xbc, 0x06, 0xa3, 0x42, 0x18, 0xa9, 0xbb, 0x5c, 0xe4, 0x00, 0x0e, 0xa1, 0xd4, 0xf2, 0xa4, - 0x08, 0x6b, 0xfa, 0x7c, 0xd0, 0x08, 0x52, 0x11, 0xaf, 0xc8, 0x2d, 0x18, 0xf0, 0x0f, 0x5e, 0x17, - 0x33, 0xb8, 0xe7, 0x15, 0x0d, 0xae, 0x00, 0x0d, 0x39, 0xbc, 0x12, 0xd1, 0x35, 0x67, 0xd6, 0x0c, - 0xa1, 0x95, 0x76, 0xa7, 0xc3, 0x7a, 0x05, 0xef, 0xb7, 0x87, 0x1a, 0x49, 0x4f, 0x19, 0x3a, 0x9b, - 0x4a, 0x1d, 0x3a, 0x4e, 0x03, 0xc7, 0x27, 0x7c, 0x34, 0xf5, 0x00, 0x8e, 0xc7, 0x5e, 0x60, 0xb8, - 0x61, 0xd7, 0xca, 0x26, 0xbf, 0x3c, 0xb7, 0xd3, 0x10, 0xf0, 0x77, 0xba, 0xe0, 0x70, 0xe4, 0x6c, - 0x3d, 0xdc, 0xdf, 0xff, 0xe3, 0xfb, 0x2b, 0x05, 0x18, 0x74, 0x1b, 0x66, 0xa5, 0x42, 0x1b, 0xcb, - 0xdb, 0x38, 0x31, 0x0d, 0xd0, 0x68, 0x7f, 0x8f, 0xe5, 0x08, 0xec, 0x36, 0x1d, 0x76, 0x81, 0x81, - 0xe5, 0xc0, 0x7d, 0x73, 0x03, 0x1f, 0xbe, 0x77, 0x50, 0x14, 0x15, 0xc4, 0x8f, 0xd0, 0x75, 0x97, - 0xdd, 0xe1, 0xeb, 0x2e, 0x9f, 0xd1, 0x02, 0xb7, 0x10, 0x53, 0xcd, 0x45, 0xe2, 0x72, 0x83, 0x57, - 0x2e, 0xae, 0x64, 0xba, 0x72, 0x11, 0xa6, 0x2b, 0x2f, 0x5e, 0x2c, 0x21, 0x23, 0x78, 0xb8, 0xe8, - 0xda, 0x55, 0xb3, 0x74, 0xf3, 0x21, 0x2d, 0x35, 0xbd, 0xca, 0x0b, 0x94, 0x2e, 0x35, 0x2d, 0xd7, - 0xac, 0x5b, 0x26, 0x6d, 0x28, 0x05, 0xa2, 0x1f, 0xd3, 0xf0, 0x48, 0x4d, 0x85, 0x5e, 0xeb, 0x43, - 0x05, 0x55, 0x59, 0xda, 0xa1, 0x99, 0xfa, 0x28, 0x1c, 0x3b, 0x0d, 0xfd, 0x12, 0x1f, 0x46, 0xc6, - 0x61, 0xd4, 0xfb, 0x5b, 0xbc, 0x5f, 0x73, 0xea, 0xb4, 0x64, 0xae, 0x9b, 0xb4, 0x3c, 0xba, 0x8b, - 0xec, 0x86, 0xae, 0xb9, 0xe6, 0xd6, 0xa8, 0x46, 0xfa, 0xa0, 0x7b, 0x85, 0x5a, 0xd6, 0x68, 0xee, - 0xd8, 0xab, 0x30, 0x1e, 0x77, 0xbd, 0xce, 0x23, 0xe0, 0x6b, 0xcb, 0x08, 0x8f, 0xee, 0x22, 0x63, - 0x30, 0xe2, 0x45, 0xf9, 0xd7, 0xec, 0x86, 0xe3, 0xae, 0xda, 0x73, 0xd4, 0x71, 0x47, 0x35, 0x51, - 0xe8, 0x3d, 0xad, 0xda, 0xec, 0xd5, 0x68, 0x6e, 0xe6, 0x4f, 0x3e, 0x0d, 0x3d, 0x4c, 0x23, 0xe4, - 0x77, 0x34, 0x18, 0x8b, 0xf9, 0x3e, 0x00, 0x39, 0xdb, 0x16, 0x09, 0x1f, 0xfb, 0xb9, 0x81, 0xfc, - 0xb9, 0xcc, 0xed, 0xb8, 0xc2, 0xf5, 0x99, 0x1f, 0xff, 0xcb, 0xef, 0x7c, 0x3e, 0xf7, 0x22, 0x39, - 0x36, 0xad, 0xf0, 0x25, 0x0e, 0x64, 0xf2, 0x4f, 0x35, 0x20, 0x51, 0x40, 0x3e, 0xb9, 0xd8, 0x11, - 0x8a, 0x9f, 0xf3, 0x7f, 0x69, 0x1b, 0x5f, 0x00, 0xd0, 0xaf, 0x31, 0x19, 0x2e, 0x90, 0x73, 0x2a, - 0x32, 0x4c, 0x3b, 0x51, 0xce, 0xbf, 0xa1, 0xc1, 0x9e, 0x08, 0x7d, 0x72, 0x21, 0x3b, 0x4f, 0x42, - 0x9c, 0x8b, 0x9d, 0x34, 0x45, 0x69, 0xae, 0x32, 0x69, 0xce, 0x93, 0xb3, 0x9d, 0x49, 0x43, 0xfe, - 0x48, 0x83, 0xd1, 0xf0, 0x17, 0x07, 0xc8, 0x79, 0x65, 0xfb, 0x08, 0x7d, 0xc4, 0x20, 0x7f, 0xa1, - 0x83, 0x96, 0x28, 0xc9, 0x15, 0x26, 0xc9, 0x39, 0x72, 0x46, 0x49, 0x12, 0x1a, 0xe6, 0xf9, 0x8f, - 0x35, 0x18, 0x09, 0xc1, 0xf8, 0x49, 0x7b, 0x3b, 0x8f, 0xff, 0x08, 0x42, 0xfe, 0x7c, 0xf6, 0x86, - 0x28, 0xc5, 0x02, 0x93, 0xe2, 0x3a, 0xb9, 0xaa, 0x24, 0x45, 0xe8, 0x63, 0x07, 0xd3, 0x8f, 0x70, - 0x74, 0x1e, 0xb3, 0x71, 0x09, 0x7f, 0x95, 0x80, 0x64, 0x66, 0x2b, 0xc3, 0xb8, 0x24, 0x7d, 0x02, - 0x21, 0xe3, 0xb8, 0x84, 0x3f, 0xdf, 0x40, 0xfe, 0x59, 0x83, 0xbd, 0xb1, 0xd0, 0x72, 0x72, 0x45, - 0x9d, 0xa7, 0x98, 0x6f, 0x13, 0xe4, 0xaf, 0x76, 0xda, 0x1c, 0xe5, 0xba, 0xcb, 0xe4, 0xba, 0x45, - 0x16, 0xb2, 0xc9, 0xe5, 0xa7, 0x35, 0xfd, 0x48, 0xc6, 0xb3, 0xc7, 0xe4, 0x3d, 0x0d, 0x26, 0xe2, - 0x31, 0xf4, 0xa4, 0x43, 0x56, 0xe5, 0xe8, 0x5d, 0xeb, 0xb8, 0x3d, 0xca, 0x7a, 0x83, 0xc9, 0x7a, - 0x85, 0x5c, 0xea, 0x5c, 0x56, 0x87, 0x7c, 0x45, 0x83, 0x41, 0xff, 0x47, 0x09, 0xc8, 0xe9, 0xb6, - 0x6c, 0xc5, 0x7c, 0xac, 0x21, 0x7f, 0x26, 0x63, 0x2b, 0x14, 0x61, 0x8e, 0x89, 0x70, 0x99, 0x5c, - 0x54, 0x12, 0x21, 0xf0, 0xb9, 0x85, 0xe9, 0x47, 0xec, 0xf1, 0x31, 0xf9, 0x92, 0x06, 0x43, 0x81, - 0xcf, 0x2a, 0x90, 0x6c, 0xcc, 0xc8, 0x01, 0x39, 0x9b, 0xb5, 0x19, 0x0a, 0x71, 0x89, 0x09, 0x71, - 0x86, 0x9c, 0xca, 0x2e, 0x84, 0x43, 0xbe, 0xa0, 0xc1, 0x80, 0x0f, 0xcf, 0x4b, 0x4e, 0xb5, 0x0f, - 0x1b, 0x11, 0x1c, 0x72, 0xfe, 0x74, 0xb6, 0x46, 0xc8, 0xf7, 0x09, 0xc6, 0xf7, 0x31, 0x72, 0x34, - 0x8d, 0x6f, 0xa7, 0x6e, 0xbb, 0xd3, 0xb8, 0xaa, 0x21, 0xbf, 0xa5, 0x01, 0xf8, 0xb0, 0xdb, 0x33, - 0x19, 0xba, 0x15, 0xac, 0x9e, 0xca, 0xd4, 0x06, 0x39, 0xbd, 0xcc, 0x38, 0x3d, 0x4b, 0x4e, 0xab, - 0x72, 0x1a, 0x98, 0xc3, 0x5f, 0xd2, 0x60, 0x24, 0x04, 0x9b, 0x56, 0x08, 0x22, 0xf1, 0x90, 0x6f, - 0x85, 0x20, 0x92, 0x80, 0xd0, 0xd6, 0xcf, 0x30, 0x21, 0xa6, 0xc9, 0xf1, 0xb6, 0x42, 0xac, 0x37, - 0x2d, 0xab, 0x28, 0x74, 0xfe, 0xb5, 0x28, 0x66, 0xfe, 0x6c, 0x46, 0x1e, 0xd4, 0x33, 0xc4, 0x78, - 0x20, 0xb6, 0x7e, 0x9d, 0xb1, 0x7e, 0x91, 0x9c, 0xcf, 0xc2, 0x7a, 0x60, 0x0c, 0xbe, 0xac, 0xc1, - 0x50, 0xe0, 0x7b, 0x05, 0x0a, 0x93, 0x34, 0xee, 0x73, 0x12, 0x0a, 0x93, 0x34, 0xf6, 0xb3, 0x08, - 0x6a, 0x29, 0x15, 0x13, 0xc1, 0x16, 0x6d, 0x03, 0x02, 0x7c, 0x4b, 0x83, 0xd1, 0x30, 0x46, 0x4c, - 0x21, 0x74, 0x27, 0x00, 0xb0, 0x15, 0x42, 0x77, 0x12, 0x7a, 0x57, 0xbf, 0xcd, 0x24, 0xb9, 0x49, - 0x6e, 0xa8, 0x49, 0x12, 0x98, 0x0b, 0xd3, 0x8f, 0x02, 0x9b, 0x0c, 0x8f, 0xc9, 0x7f, 0x68, 0x30, - 0x99, 0x84, 0xdd, 0x25, 0xd7, 0xdb, 0x47, 0xa8, 0x74, 0xf4, 0x77, 0x7e, 0x76, 0x1b, 0x14, 0x50, - 0xdc, 0xfb, 0x4c, 0xdc, 0x7b, 0x64, 0xa9, 0x13, 0x71, 0x51, 0x54, 0x99, 0x82, 0x89, 0x7d, 0xdb, - 0xc7, 0xe4, 0x3b, 0xde, 0x02, 0x26, 0x82, 0xc5, 0x57, 0x59, 0xc0, 0x24, 0x7d, 0x47, 0x40, 0x65, - 0x01, 0x93, 0x08, 0xfe, 0xcf, 0x2c, 0x66, 0x71, 0x6d, 0x0b, 0x91, 0x1b, 0xa9, 0xe3, 0xfb, 0x35, - 0x0d, 0x46, 0xc3, 0x9f, 0x04, 0x54, 0x30, 0xdb, 0x84, 0x0f, 0x15, 0xe6, 0x2f, 0x74, 0xd0, 0x12, - 0x05, 0xbc, 0xc8, 0x04, 0x3c, 0x4d, 0x66, 0xd2, 0x04, 0x14, 0x43, 0x18, 0x92, 0xe2, 0xbb, 0x1a, - 0xec, 0x6f, 0xcd, 0x87, 0xd5, 0x86, 0x51, 0x73, 0x4c, 0x5a, 0xfb, 0x48, 0x67, 0xa1, 0xfa, 0x78, - 0xb9, 0x82, 0xdd, 0xa2, 0xc2, 0x7c, 0xfc, 0x2b, 0x34, 0xcb, 0xe0, 0xad, 0x7b, 0x45, 0xb3, 0x8c, - 0x05, 0x6a, 0x2b, 0x9a, 0x65, 0x3c, 0x3c, 0x5b, 0x6d, 0xe5, 0xc3, 0x23, 0x6f, 0x18, 0x5c, 0x10, - 0x70, 0x9f, 0xff, 0xaa, 0xc1, 0x64, 0x12, 0x16, 0x5c, 0xc1, 0xcf, 0xb4, 0x01, 0xa3, 0x2b, 0xf8, - 0x99, 0x76, 0x40, 0x74, 0xfd, 0x0e, 0x93, 0x74, 0x81, 0xcc, 0xa7, 0x49, 0xda, 0x3a, 0x82, 0x6a, - 0x23, 0xef, 0x5f, 0x6b, 0x30, 0x16, 0x83, 0x89, 0x26, 0x97, 0x32, 0x30, 0x1a, 0x89, 0x7d, 0x97, - 0x3b, 0x6b, 0x8c, 0x02, 0xce, 0x33, 0x01, 0xaf, 0x92, 0xcb, 0x8a, 0x02, 0xc6, 0xc7, 0xc1, 0xef, - 0x69, 0x30, 0x11, 0x8f, 0xca, 0x53, 0x58, 0x10, 0xa5, 0x02, 0x46, 0x15, 0x16, 0x44, 0xe9, 0x70, - 0x40, 0xfd, 0x15, 0x26, 0xe1, 0x6d, 0xb2, 0x98, 0x45, 0xc2, 0xf4, 0xf9, 0xf8, 0xd9, 0x1c, 0x1c, - 0x48, 0x07, 0x03, 0x92, 0x85, 0x8c, 0x31, 0x2e, 0x49, 0xfc, 0x97, 0xb6, 0x4d, 0x07, 0xd5, 0xf0, - 0x29, 0xa6, 0x86, 0xfb, 0x64, 0xa5, 0x73, 0x35, 0x24, 0xc7, 0xcd, 0xff, 0x0a, 0x4c, 0xe4, 0x50, - 0xf4, 0xbc, 0x9e, 0xd5, 0x40, 0x23, 0x31, 0x74, 0x76, 0x1b, 0x14, 0xb6, 0x25, 0xbe, 0x62, 0x3c, - 0xfd, 0x1f, 0x0d, 0x0e, 0x86, 0xad, 0x30, 0x1c, 0x8f, 0x3e, 0xf2, 0x79, 0x90, 0x55, 0x03, 0x99, - 0x22, 0xd4, 0xef, 0x6b, 0xb0, 0x27, 0x02, 0xef, 0x52, 0xd8, 0x28, 0x4d, 0x42, 0x72, 0x2a, 0x6c, - 0x94, 0x26, 0xa2, 0xc9, 0xf4, 0xb3, 0x4c, 0xd2, 0x13, 0x64, 0x4a, 0xd5, 0x69, 0x23, 0xbb, 0xdf, - 0xd4, 0x60, 0x34, 0x82, 0x35, 0x3c, 0x9f, 0x99, 0x11, 0xf5, 0x3c, 0x22, 0x09, 0x65, 0xa6, 0xb6, - 0x03, 0x12, 0x95, 0x20, 0xe0, 0x93, 0xbf, 0xab, 0xc1, 0xbe, 0x04, 0x5c, 0x18, 0xb9, 0x96, 0x99, - 0xb5, 0x20, 0x2a, 0x2d, 0x7f, 0xbd, 0x73, 0x02, 0x28, 0xe2, 0x22, 0x13, 0xf1, 0x06, 0x99, 0xcd, - 0x24, 0xa2, 0x70, 0x39, 0x01, 0x49, 0xff, 0x5c, 0x83, 0xf1, 0xb8, 0x7b, 0xfa, 0xe4, 0x72, 0x86, - 0xc4, 0x34, 0x82, 0x68, 0xcb, 0x5f, 0xe9, 0xb0, 0x75, 0x96, 0xed, 0x09, 0x59, 0x10, 0x9e, 0x50, - 0xbf, 0xa9, 0xc1, 0x98, 0xd8, 0x3f, 0xf7, 0xa1, 0x05, 0x14, 0x76, 0x82, 0xa2, 0xb0, 0x03, 0x85, - 0x9d, 0xa0, 0x18, 0x40, 0x82, 0xda, 0x4e, 0x50, 0x95, 0x35, 0x2c, 0x32, 0x0c, 0x00, 0xf9, 0x55, - 0x0d, 0xfa, 0x25, 0xca, 0x80, 0x9c, 0x6c, 0xdb, 0x6b, 0x18, 0xaa, 0x90, 0x9f, 0xc9, 0xd2, 0x04, - 0xd9, 0x3c, 0xce, 0xd8, 0x7c, 0x9e, 0x1c, 0x49, 0x63, 0xb3, 0x2e, 0xb9, 0xfa, 0x33, 0x0d, 0xc6, - 0x62, 0x90, 0x70, 0x24, 0xcb, 0x41, 0x53, 0x84, 0xef, 0xcb, 0x9d, 0x35, 0xce, 0xb2, 0xed, 0x2e, - 0x25, 0x88, 0x98, 0xca, 0xbf, 0x69, 0x90, 0x4f, 0xc6, 0xda, 0x91, 0xb9, 0x0e, 0x78, 0x0b, 0x01, - 0x1a, 0xf3, 0x37, 0xb6, 0x45, 0x23, 0xcb, 0x8c, 0x4f, 0x14, 0x33, 0x30, 0xe3, 0x7f, 0x3e, 0x07, - 0xcf, 0x2a, 0x40, 0xd9, 0xc8, 0xed, 0x0c, 0x7c, 0xb7, 0x43, 0x75, 0xe6, 0xef, 0xec, 0x0c, 0x31, - 0xd4, 0xc6, 0x0a, 0xd3, 0xc6, 0x12, 0xb9, 0x9d, 0xea, 0x1e, 0x24, 0x1c, 0x50, 0x4d, 0x2f, 0x7f, - 0xa3, 0xc1, 0x58, 0x0c, 0xb8, 0x4d, 0xc1, 0xb8, 0x93, 0x91, 0x79, 0x0a, 0xc6, 0x9d, 0x02, 0xcb, - 0xd3, 0x6f, 0x32, 0x39, 0xaf, 0x91, 0x2b, 0xa9, 0xa3, 0x2e, 0x71, 0xf8, 0xbe, 0x2f, 0x13, 0x04, - 0x24, 0xfb, 0xb6, 0x06, 0xfb, 0x12, 0xf0, 0x6f, 0x0a, 0xd1, 0x2c, 0x1d, 0xc8, 0xa7, 0x10, 0xcd, - 0xda, 0xa0, 0xf8, 0x54, 0x8f, 0x2c, 0x3c, 0x22, 0x89, 0x22, 0x7e, 0xa0, 0xc1, 0x44, 0x3c, 0x50, - 0x4e, 0x21, 0x79, 0x4c, 0xc5, 0xfb, 0x29, 0x24, 0x8f, 0xe9, 0x60, 0x3f, 0xfd, 0x16, 0x93, 0x6f, - 0x8e, 0x5c, 0xcf, 0x34, 0x8a, 0xf8, 0x31, 0x87, 0xc8, 0x40, 0x26, 0x20, 0xfc, 0x14, 0x06, 0x32, - 0x1d, 0x0f, 0xad, 0x30, 0x90, 0x6d, 0xc0, 0x85, 0x6a, 0x03, 0xc9, 0x6f, 0xed, 0x88, 0x3b, 0x70, - 0x71, 0xdb, 0x6b, 0x7b, 0xa2, 0x68, 0x23, 0xc5, 0x6d, 0xa5, 0x18, 0xe8, 0x9c, 0x42, 0x32, 0x9c, - 0x88, 0x80, 0xd3, 0xcf, 0x31, 0x81, 0x4e, 0x92, 0xe9, 0x34, 0x81, 0x62, 0x60, 0x46, 0xe4, 0x2f, - 0x34, 0x98, 0x5c, 0x6e, 0x01, 0x97, 0x3e, 0x16, 0xc2, 0x28, 0x5d, 0xe8, 0xf0, 0x43, 0xba, 0xc2, - 0x42, 0x7d, 0x53, 0xdc, 0x46, 0x0d, 0x82, 0xdf, 0x14, 0x1c, 0x64, 0x32, 0xa4, 0x4f, 0xc1, 0x41, - 0xa6, 0x60, 0xfd, 0xf4, 0x0b, 0x4c, 0xa6, 0x53, 0xe4, 0xa4, 0xf2, 0x00, 0x09, 0x5c, 0x1a, 0x79, - 0x5f, 0x83, 0x89, 0x78, 0xf4, 0x91, 0x82, 0xc7, 0x48, 0xc5, 0x3d, 0x29, 0x78, 0x8c, 0x74, 0xd8, - 0x93, 0xfe, 0x12, 0x13, 0x6b, 0x96, 0x5c, 0x4b, 0x13, 0x2b, 0x00, 0x06, 0xf2, 0xc3, 0xa0, 0x7c, - 0xd7, 0x23, 0xbc, 0x21, 0x8b, 0xc1, 0xfe, 0x28, 0x0c, 0x59, 0x32, 0x5a, 0x49, 0x61, 0xc8, 0x52, - 0x60, 0x4c, 0x6a, 0x43, 0x16, 0x0b, 0x74, 0x22, 0xef, 0x6a, 0xb0, 0x27, 0x02, 0x3d, 0x51, 0x98, - 0x4e, 0x49, 0x60, 0x26, 0x85, 0xe9, 0x94, 0x88, 0x74, 0x51, 0xdb, 0xfc, 0x8b, 0x62, 0x61, 0xa6, - 0x1f, 0xf9, 0xe0, 0x53, 0x8f, 0xc9, 0x3f, 0x68, 0xb0, 0x2f, 0x01, 0x6c, 0xa1, 0xe0, 0xd1, 0xd3, - 0x91, 0x30, 0x0a, 0x1e, 0xbd, 0x0d, 0xce, 0x43, 0xcd, 0x67, 0x88, 0x7f, 0x99, 0x12, 0x03, 0x05, - 0x21, 0xff, 0xa8, 0xc1, 0xfe, 0x44, 0x40, 0x05, 0x99, 0xcd, 0x62, 0x49, 0xb1, 0x80, 0x8f, 0xfc, - 0xdc, 0x76, 0x48, 0x64, 0xb9, 0x6e, 0x10, 0x30, 0x49, 0x06, 0x4a, 0xf4, 0xd6, 0x6d, 0x0e, 0xf9, - 0xa2, 0x06, 0xc3, 0x41, 0xa0, 0x46, 0xfa, 0xe2, 0x2d, 0x16, 0xee, 0x91, 0xbe, 0x78, 0x8b, 0xc7, - 0x81, 0xe8, 0xa7, 0x19, 0xdb, 0x53, 0xe4, 0xc5, 0xd4, 0x35, 0xa6, 0xe9, 0xda, 0x45, 0x8e, 0xb0, - 0x30, 0x19, 0x73, 0xdf, 0xd2, 0x10, 0xd2, 0x1e, 0x01, 0x53, 0x28, 0xcc, 0xa4, 0x24, 0x18, 0x87, - 0xc2, 0x4c, 0x4a, 0xc4, 0x6e, 0xa8, 0xdd, 0xba, 0xe1, 0x22, 0xc8, 0x5c, 0x68, 0xfa, 0x51, 0x00, - 0x35, 0xc2, 0xb2, 0xf7, 0x89, 0x78, 0x70, 0x86, 0x82, 0x3b, 0x4f, 0x05, 0x86, 0x28, 0xb8, 0xf3, - 0x74, 0x54, 0x88, 0xda, 0x6e, 0xc6, 0x86, 0xa4, 0x51, 0x0c, 0x40, 0x48, 0xd8, 0xba, 0x24, 0x06, - 0x1c, 0xac, 0xe0, 0xc3, 0x93, 0xf1, 0xc8, 0x0a, 0x3e, 0x3c, 0x05, 0x8f, 0xac, 0xb6, 0x2e, 0xf1, - 0x23, 0x96, 0x8b, 0xf6, 0x3a, 0x06, 0x60, 0xc7, 0x17, 0x9d, 0xfe, 0x49, 0x83, 0xfd, 0x89, 0x38, - 0x64, 0x05, 0xe7, 0xd0, 0x0e, 0xec, 0xac, 0xe0, 0x1c, 0xda, 0xc2, 0xa0, 0xf5, 0x59, 0x26, 0xeb, - 0x25, 0x72, 0x21, 0x35, 0xa9, 0x8d, 0x11, 0xb4, 0x28, 0xbf, 0xd0, 0xf0, 0x0d, 0x0d, 0x46, 0xc3, - 0x20, 0x13, 0x85, 0xbd, 0xd1, 0x04, 0xe8, 0x4c, 0xfe, 0x42, 0x07, 0x2d, 0xb3, 0x08, 0xd3, 0xfa, - 0x4f, 0x4a, 0xd8, 0x3c, 0xb0, 0x06, 0xf9, 0xaa, 0x06, 0xe3, 0x31, 0x40, 0x0d, 0x95, 0x3b, 0x62, - 0x71, 0xc0, 0x12, 0x85, 0xeb, 0x27, 0xb1, 0xd0, 0x12, 0xb5, 0xd3, 0xef, 0x35, 0xd6, 0x54, 0xc0, - 0x87, 0xe4, 0x66, 0xf5, 0x2f, 0xe6, 0xe0, 0x70, 0x5b, 0x60, 0x00, 0x59, 0xcc, 0x7c, 0x6a, 0x90, - 0x84, 0x45, 0xc9, 0xbf, 0xbc, 0x13, 0xa4, 0x50, 0xf0, 0x1f, 0x62, 0x82, 0xbf, 0x46, 0xee, 0x67, - 0x3b, 0x8c, 0x2a, 0xb5, 0x08, 0xa6, 0x9e, 0x46, 0xfc, 0xb7, 0x06, 0x7a, 0x7b, 0x6c, 0x01, 0x79, - 0x59, 0xd1, 0x08, 0x15, 0x00, 0x0f, 0xf9, 0xdb, 0x3b, 0x42, 0x2b, 0x4b, 0xca, 0x62, 0x30, 0x4a, - 0xfc, 0x70, 0xa6, 0xe8, 0x45, 0xf6, 0x16, 0xba, 0x61, 0x6e, 0xe3, 0xeb, 0xef, 0x1f, 0xd0, 0xde, - 0x7d, 0xff, 0x80, 0xf6, 0xed, 0xf7, 0x0f, 0x68, 0x3f, 0xfb, 0xc1, 0x81, 0x5d, 0xef, 0x7e, 0x70, - 0x60, 0xd7, 0xdf, 0x7e, 0x70, 0x60, 0xd7, 0x1b, 0x77, 0x7d, 0x58, 0x89, 0x45, 0x41, 0xfc, 0x8e, - 0xb1, 0xe6, 0xb4, 0xba, 0x3a, 0x5e, 0xb2, 0x1b, 0xd4, 0xff, 0xb8, 0x61, 0x98, 0x35, 0xdc, 0xe8, - 0x75, 0x5a, 0x7c, 0x30, 0x5c, 0xc5, 0x5a, 0x2f, 0xfb, 0xe7, 0x98, 0xa7, 0xfe, 0x37, 0x00, 0x00, - 0xff, 0xff, 0x67, 0x3b, 0xf9, 0xb8, 0x12, 0x74, 0x00, 0x00, + // 5833 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5d, 0x7d, 0x8c, 0x1c, 0xc9, + 0x55, 0x77, 0xcf, 0x7e, 0x78, 0xf7, 0xed, 0xa7, 0x6b, 0xd7, 0xeb, 0xf5, 0xdc, 0x9d, 0x3f, 0xda, + 0x71, 0xce, 0xe7, 0x9c, 0x77, 0xed, 0xf5, 0xf7, 0xb7, 0xf7, 0xc3, 0x6b, 0xef, 0xd9, 0x6b, 0x3b, + 0xb3, 0xeb, 0xbb, 0xe4, 0x02, 0x4c, 0x7a, 0x67, 0x6a, 0x67, 0x3b, 0xee, 0x99, 0x1e, 0x4f, 0xf7, + 0xec, 0x79, 0x31, 0x46, 0x40, 0x40, 0x89, 0x40, 0x02, 0xa4, 0x08, 0x10, 0x02, 0x21, 0xe0, 0x4f, + 0xa4, 0x08, 0x89, 0x08, 0x81, 0x12, 0x29, 0x51, 0x08, 0x42, 0x21, 0xe1, 0x23, 0x40, 0x08, 0x28, + 0x82, 0x23, 0xba, 0x0b, 0x44, 0x39, 0x81, 0xc4, 0x5f, 0x48, 0x08, 0x14, 0x50, 0x57, 0xbd, 0xaa, + 0xe9, 0xef, 0xa9, 0x9e, 0xdd, 0xd3, 0x25, 0xf0, 0xd7, 0x4e, 0x57, 0xd7, 0x7b, 0xf5, 0xde, 0xab, + 0x57, 0xaf, 0x5e, 0x7d, 0xfc, 0x7a, 0xe1, 0xfd, 0x66, 0xed, 0x63, 0xb4, 0xe4, 0x9a, 0x9b, 0x74, + 0x9a, 0x3e, 0x29, 0x6d, 0x18, 0xb5, 0x0a, 0x9d, 0xde, 0x3c, 0xb5, 0x46, 0x5d, 0xe3, 0xd4, 0xf4, + 0xe3, 0x26, 0x6d, 0x6c, 0x4d, 0xd5, 0x1b, 0xb6, 0x6b, 0x93, 0xbc, 0xac, 0x37, 0x25, 0xea, 0x4d, + 0x61, 0xbd, 0xfc, 0xf3, 0x15, 0xdb, 0xae, 0x58, 0x74, 0xda, 0xa8, 0x9b, 0xd3, 0x46, 0xad, 0x66, + 0xbb, 0x86, 0x6b, 0xda, 0x35, 0x87, 0x53, 0xe6, 0x5f, 0x4a, 0x69, 0x41, 0xb2, 0xe2, 0x55, 0x8f, + 0xa5, 0x54, 0xad, 0xd0, 0x1a, 0x75, 0x4c, 0xc1, 0xf4, 0x68, 0xab, 0xa6, 0xdd, 0x30, 0x4a, 0x56, + 0xab, 0x1e, 0x7f, 0xc4, 0x6a, 0xe3, 0x15, 0xbb, 0x62, 0xb3, 0x9f, 0xd3, 0xde, 0x2f, 0x5e, 0xaa, + 0xdf, 0x07, 0x58, 0x69, 0xae, 0x19, 0xa5, 0x92, 0xdd, 0xac, 0xb9, 0x64, 0x02, 0x7a, 0xdd, 0x86, + 0x51, 0xa6, 0x8d, 0x49, 0xed, 0x90, 0x76, 0xac, 0xbf, 0x80, 0x4f, 0xe4, 0x25, 0x18, 0x75, 0x64, + 0xad, 0x62, 0xcd, 0xae, 0x95, 0xe8, 0x64, 0xee, 0x90, 0x76, 0x6c, 0xa8, 0x30, 0xd2, 0x2a, 0xbf, + 0xe7, 0x15, 0xeb, 0x1f, 0x85, 0xe7, 0x3f, 0xe8, 0xd9, 0xaa, 0xc5, 0xf5, 0x7e, 0xa3, 0x4c, 0x1b, + 0x4e, 0x81, 0x3e, 0x6e, 0x52, 0xc7, 0x25, 0x47, 0x60, 0xc8, 0xc7, 0xca, 0x2c, 0x63, 0x4b, 0x83, + 0xad, 0xc2, 0xa5, 0x32, 0x79, 0x0e, 0xfa, 0xab, 0x46, 0xe3, 0x11, 0x65, 0x15, 0x72, 0xac, 0x42, + 0x1f, 0x2f, 0x58, 0x2a, 0xeb, 0x5f, 0xd4, 0xe0, 0x85, 0x84, 0x26, 0x9c, 0xba, 0x5d, 0x73, 0x28, + 0xb9, 0x07, 0xb0, 0xd6, 0xdc, 0x2a, 0xda, 0xac, 0x74, 0x52, 0x3b, 0xd4, 0x75, 0x6c, 0x60, 0x66, + 0x7a, 0x2a, 0xb9, 0xd7, 0xa6, 0x42, 0x9c, 0x16, 0x0c, 0xd7, 0x28, 0xf4, 0xaf, 0x35, 0xb7, 0x38, + 0x5f, 0xf2, 0x00, 0x06, 0x1c, 0x6a, 0x59, 0x82, 0x61, 0xae, 0x33, 0x86, 0xe0, 0xf1, 0xe0, 0x1c, + 0xf5, 0xdf, 0xd5, 0xe0, 0x68, 0xa8, 0xce, 0x9a, 0x6d, 0x3f, 0x5a, 0xa6, 0xae, 0x51, 0x36, 0x5c, + 0xe3, 0x35, 0xd3, 0xdd, 0x58, 0x66, 0xfa, 0x92, 0x15, 0xe8, 0xab, 0x62, 0x29, 0x33, 0xd5, 0xc0, + 0xcc, 0xf9, 0x0c, 0x0d, 0xfb, 0x99, 0x16, 0x24, 0xa3, 0x54, 0xfb, 0x92, 0x71, 0xe8, 0x31, 0x9d, + 0xb9, 0xe6, 0xd6, 0x64, 0xd7, 0x21, 0xed, 0x58, 0x5f, 0x81, 0x3f, 0xe8, 0xcf, 0x43, 0x9e, 0x19, + 0xfd, 0x26, 0xb6, 0xf8, 0xc0, 0x68, 0x18, 0x55, 0xd1, 0xab, 0x7a, 0x11, 0x9e, 0x8b, 0x7d, 0x8b, + 0x1d, 0x72, 0x03, 0x7a, 0xeb, 0xac, 0x04, 0x55, 0xd0, 0xd3, 0x54, 0xe0, 0xb4, 0x73, 0xdd, 0x5f, + 0x7e, 0xf3, 0xe0, 0xae, 0x02, 0xd2, 0xe9, 0x9f, 0xd2, 0xe0, 0x40, 0xa8, 0xd3, 0x17, 0x68, 0xdd, + 0x76, 0x4c, 0x37, 0x9b, 0x67, 0xdd, 0x05, 0x68, 0x3d, 0x33, 0xd5, 0x07, 0x66, 0xde, 0xaf, 0x66, + 0x50, 0x26, 0x91, 0x56, 0xf0, 0xd1, 0xeb, 0xef, 0x68, 0x70, 0x30, 0x51, 0x2a, 0xd4, 0x9d, 0x42, + 0x5f, 0x19, 0xcb, 0xd0, 0x15, 0x97, 0xd2, 0xda, 0x6b, 0xc3, 0x6e, 0x4a, 0x14, 0xdc, 0xac, 0xb9, + 0x8d, 0xad, 0x82, 0x64, 0x9d, 0xff, 0x28, 0x0c, 0x05, 0x5e, 0x91, 0x51, 0xe8, 0x7a, 0x44, 0xb7, + 0xd0, 0x08, 0xde, 0x4f, 0x72, 0x11, 0x7a, 0x36, 0x0d, 0xab, 0x49, 0x51, 0xed, 0x23, 0x69, 0x62, + 0x20, 0xaf, 0x02, 0xa7, 0xb8, 0x94, 0xbb, 0xa0, 0xe9, 0x07, 0x70, 0x64, 0x8b, 0x3e, 0x9e, 0x33, + 0x2c, 0xa3, 0x56, 0xa2, 0xd2, 0x07, 0xd6, 0x71, 0x58, 0x46, 0xdf, 0xa3, 0x25, 0x6e, 0x42, 0xdf, + 0x1a, 0x96, 0xa1, 0x25, 0x52, 0x45, 0x40, 0x7a, 0x74, 0x04, 0x49, 0xaa, 0x9f, 0x47, 0x5f, 0x9b, + 0xad, 0x54, 0x1a, 0xb4, 0x62, 0xb8, 0xf4, 0x55, 0xdb, 0x6a, 0x56, 0xa9, 0x70, 0x83, 0x49, 0xd8, + 0x2d, 0xba, 0x97, 0xeb, 0x2e, 0x1e, 0xf5, 0x26, 0x2a, 0x10, 0x21, 0x44, 0xf9, 0x1e, 0xc2, 0x1e, + 0x43, 0xbc, 0x2a, 0x6e, 0xb2, 0x77, 0x42, 0xd0, 0x63, 0x69, 0x82, 0xf2, 0x91, 0x8a, 0xcc, 0x46, + 0x8d, 0x20, 0x77, 0x47, 0xff, 0x70, 0x7c, 0xb3, 0xd2, 0x6f, 0xf3, 0xd0, 0x87, 0x12, 0xf2, 0xd6, + 0xfa, 0x0b, 0xf2, 0x99, 0xbc, 0x00, 0x20, 0x07, 0x2a, 0x0f, 0x3c, 0xfd, 0x85, 0x7e, 0x31, 0x52, + 0x1d, 0xfd, 0x3f, 0x45, 0x28, 0x8c, 0xf2, 0x46, 0x9d, 0x5c, 0xd8, 0xdf, 0xd2, 0x49, 0x8c, 0x8d, + 0xa0, 0x6e, 0x17, 0xd2, 0x74, 0x93, 0x8c, 0x67, 0x39, 0xad, 0x30, 0x59, 0xc9, 0x6e, 0x94, 0x0b, + 0xfb, 0x8c, 0xd8, 0xb7, 0x0e, 0x59, 0x83, 0xc9, 0x56, 0xab, 0xa8, 0x80, 0x68, 0x34, 0x97, 0xd1, + 0xa0, 0x13, 0x92, 0x93, 0xbf, 0xd8, 0xd1, 0x6f, 0xc0, 0xe1, 0xa0, 0xea, 0x01, 0x2a, 0xb4, 0x6d, + 0x20, 0xd0, 0x69, 0xa1, 0x89, 0xc4, 0x02, 0x3d, 0x8d, 0x03, 0x5a, 0x70, 0x11, 0x7a, 0xb9, 0xe8, + 0x18, 0xbb, 0x52, 0x25, 0xf7, 0x9b, 0x47, 0x44, 0x30, 0x4e, 0xad, 0x9f, 0x84, 0x49, 0xd6, 0xda, + 0x02, 0xad, 0xd9, 0xd5, 0x05, 0x5a, 0x32, 0xab, 0x86, 0x25, 0xc4, 0x1c, 0x87, 0x9e, 0xb2, 0x57, + 0x8c, 0x22, 0xf2, 0x07, 0xfd, 0x2c, 0xec, 0x8f, 0xa1, 0x40, 0xb1, 0x26, 0x61, 0x77, 0x99, 0x17, + 0x31, 0xa2, 0xee, 0x82, 0x78, 0xd4, 0x4f, 0xc7, 0x90, 0x49, 0x67, 0x9b, 0x80, 0x5e, 0xc6, 0x5c, + 0xb8, 0x1a, 0x3e, 0xe9, 0x2e, 0x86, 0xf7, 0x10, 0x11, 0x36, 0xf6, 0x2a, 0x0c, 0xb3, 0x7a, 0x45, + 0x6c, 0x43, 0xb8, 0xce, 0x4b, 0xe9, 0x21, 0xc4, 0xc7, 0x0a, 0x8d, 0x31, 0x54, 0xf6, 0x17, 0xea, + 0xf3, 0x69, 0x3d, 0x20, 0x65, 0x0e, 0x0e, 0x02, 0x2d, 0x3c, 0x08, 0x4c, 0x38, 0x92, 0xca, 0x04, + 0x75, 0x98, 0x83, 0xdd, 0x9d, 0x8e, 0x69, 0x41, 0xa8, 0xbf, 0x1e, 0xc9, 0x3c, 0x44, 0x9c, 0xcc, + 0x32, 0x07, 0xc9, 0xde, 0xce, 0xf9, 0x7b, 0xdb, 0x48, 0x9a, 0xe0, 0xa4, 0x06, 0xd7, 0x03, 0x33, + 0x89, 0x72, 0x08, 0x97, 0x44, 0xfa, 0x03, 0xd8, 0xc7, 0x9b, 0xa8, 0xdb, 0x2e, 0x57, 0xd0, 0xef, + 0x17, 0x8e, 0x6b, 0xb8, 0x4d, 0x47, 0x64, 0x7e, 0xfc, 0xa9, 0x5d, 0x00, 0xfa, 0x21, 0x74, 0xea, + 0x00, 0x47, 0x39, 0xe9, 0xef, 0xe6, 0x15, 0x85, 0xc1, 0xd3, 0xe7, 0x59, 0xc9, 0xa1, 0x20, 0xc8, + 0xf4, 0xb3, 0x30, 0x11, 0xe2, 0xae, 0x34, 0xae, 0x3f, 0x1c, 0x51, 0x53, 0xca, 0x74, 0x0d, 0x7a, + 0x79, 0x35, 0x34, 0xa0, 0xaa, 0x48, 0x48, 0xa5, 0x7f, 0x23, 0x87, 0x83, 0xcb, 0x7b, 0x27, 0x33, + 0x2c, 0x15, 0xa9, 0xbc, 0x5e, 0xb7, 0xcc, 0xaa, 0xc9, 0x93, 0x8e, 0xee, 0x02, 0x7f, 0x20, 0x0b, + 0x00, 0x2c, 0xab, 0x2c, 0x3a, 0x66, 0x99, 0xb2, 0x8c, 0x6b, 0x78, 0xe6, 0x68, 0x9a, 0x50, 0xac, + 0xd1, 0x15, 0xb3, 0x4c, 0x0b, 0xfd, 0xb6, 0xf8, 0x49, 0x8a, 0xb0, 0x9f, 0xb1, 0x2b, 0x96, 0x9a, + 0xd5, 0xa6, 0x65, 0x78, 0x94, 0xc5, 0x9a, 0xed, 0xad, 0x3c, 0x0c, 0x6b, 0xb2, 0xdb, 0x13, 0x64, + 0xee, 0x88, 0x97, 0xbc, 0x7c, 0xf3, 0xcd, 0x83, 0xcf, 0x95, 0x6c, 0xa7, 0x6a, 0x3b, 0x4e, 0xf9, + 0xd1, 0x94, 0x69, 0x4f, 0x57, 0x0d, 0x77, 0x63, 0xea, 0x2e, 0xad, 0x18, 0xa5, 0xad, 0x05, 0x5a, + 0x2a, 0xec, 0x63, 0x5c, 0xe6, 0x25, 0x93, 0x7b, 0xc8, 0x23, 0xb6, 0x81, 0xc7, 0x4d, 0xa3, 0xe6, + 0x9a, 0xee, 0xd6, 0x64, 0x4f, 0xe7, 0x0d, 0x7c, 0x10, 0x79, 0xe8, 0x7f, 0xa8, 0x61, 0x00, 0x0a, + 0x19, 0x16, 0xfb, 0xed, 0x0e, 0x8c, 0xae, 0x35, 0xb7, 0x9c, 0x62, 0xbd, 0x61, 0x96, 0x68, 0xd1, + 0xa2, 0x9b, 0xd4, 0x42, 0xa7, 0x3a, 0x9c, 0x66, 0xac, 0xbb, 0x5e, 0xc5, 0xc2, 0xb0, 0x47, 0xfa, + 0xc0, 0xa3, 0x64, 0xcf, 0x64, 0x19, 0xf6, 0x78, 0xa9, 0x78, 0x90, 0x5b, 0x4e, 0x95, 0xdb, 0x08, + 0xa3, 0x6d, 0xb1, 0xd3, 0x3f, 0xad, 0xc1, 0xf0, 0x62, 0xd3, 0xb2, 0x5a, 0xee, 0xb2, 0x5d, 0x37, + 0x23, 0x1f, 0x81, 0x3d, 0x55, 0xb3, 0x8c, 0xf2, 0x19, 0xb5, 0x72, 0xd1, 0xb5, 0xd7, 0x30, 0x6b, + 0x3b, 0x9e, 0x1a, 0xb5, 0xcc, 0x32, 0x13, 0x6c, 0xb6, 0x56, 0x5e, 0xbd, 0x3f, 0x87, 0x09, 0xeb, + 0x70, 0xd5, 0x57, 0x6a, 0xaf, 0xe9, 0x9f, 0xd4, 0x30, 0x81, 0x0a, 0x0a, 0xbd, 0xcd, 0x50, 0x40, + 0x66, 0x60, 0xe2, 0x0d, 0xd3, 0xdd, 0x28, 0x46, 0x05, 0xe7, 0xeb, 0x08, 0xe2, 0xbd, 0x5d, 0x0e, + 0x8a, 0x52, 0xc6, 0xd4, 0x28, 0x22, 0x09, 0x76, 0xfb, 0x42, 0x38, 0x84, 0xa4, 0x6a, 0x1f, 0xe4, + 0xd2, 0x0a, 0x23, 0x55, 0x74, 0xad, 0xd0, 0x7b, 0x95, 0x41, 0x9b, 0xac, 0x54, 0x2e, 0x51, 0x29, + 0x23, 0xd6, 0xbc, 0xbe, 0x79, 0x28, 0xe8, 0x1b, 0x59, 0x54, 0x12, 0x61, 0xe8, 0x67, 0xe4, 0x6a, + 0x48, 0x8c, 0x16, 0x67, 0x6e, 0xeb, 0xb6, 0xe1, 0x6c, 0xb4, 0x26, 0xcd, 0x54, 0xb5, 0x22, 0xd3, + 0x54, 0x2e, 0x66, 0x9a, 0x3a, 0x0c, 0x83, 0x3c, 0x34, 0x6d, 0x30, 0xc6, 0x93, 0x5d, 0xac, 0xc7, + 0x07, 0x58, 0x19, 0x6f, 0x4b, 0xb7, 0xc4, 0xf2, 0x27, 0x46, 0x0c, 0x54, 0x77, 0x09, 0x7a, 0x03, + 0xeb, 0xf0, 0x53, 0x69, 0xea, 0xae, 0x36, 0xcc, 0x6a, 0x95, 0x96, 0x3d, 0x76, 0x77, 0xbd, 0x40, + 0xc1, 0x78, 0x16, 0x90, 0x81, 0xdc, 0x5a, 0x58, 0x65, 0x9b, 0x12, 0xad, 0x36, 0x77, 0x4c, 0x65, + 0xdd, 0x82, 0xf7, 0xf1, 0x54, 0x82, 0x97, 0xcc, 0x96, 0xcb, 0x0d, 0xea, 0x38, 0x19, 0x5b, 0x7a, + 0x11, 0x46, 0x44, 0x33, 0x06, 0x67, 0x80, 0x6d, 0x0d, 0x1b, 0x01, 0xb6, 0xfa, 0xaf, 0xe5, 0x60, + 0x6f, 0xac, 0xc6, 0xde, 0x4a, 0x8d, 0x79, 0x1b, 0xe7, 0xcd, 0x42, 0xeb, 0xae, 0x76, 0xa1, 0x95, + 0x53, 0x78, 0x49, 0x82, 0x0c, 0xcc, 0x39, 0x75, 0x6a, 0x49, 0xe4, 0x31, 0x58, 0x37, 0x2d, 0xcb, + 0x58, 0xb3, 0xf8, 0x7c, 0xa4, 0xca, 0x40, 0x10, 0xb5, 0xf6, 0x0f, 0xba, 0x7d, 0xfb, 0x07, 0x5e, + 0xf4, 0x68, 0x79, 0x13, 0x9f, 0x32, 0x70, 0x06, 0xf3, 0x1c, 0xc6, 0x5b, 0xad, 0x96, 0xcc, 0xf2, + 0x64, 0x2f, 0x5f, 0xad, 0x96, 0xcc, 0xb2, 0xfe, 0x31, 0xcc, 0xb5, 0xa2, 0xbd, 0xbd, 0xf3, 0x9e, + 0xd5, 0x80, 0xa3, 0x6d, 0xfa, 0x7d, 0xe7, 0xdb, 0xbc, 0xea, 0x1b, 0xc2, 0xc1, 0xb8, 0xad, 0x94, + 0xe4, 0xfc, 0x97, 0xe6, 0x1b, 0x7b, 0x61, 0x7a, 0x99, 0x81, 0xf5, 0xcb, 0xc0, 0xe5, 0x73, 0xa5, + 0xb6, 0xb3, 0x74, 0x9f, 0x98, 0x31, 0xc8, 0x12, 0x0c, 0xaf, 0x51, 0xc7, 0x2d, 0xae, 0x35, 0xb7, + 0x90, 0x4d, 0x4e, 0x9d, 0xcd, 0xa0, 0x47, 0x3a, 0xd7, 0xdc, 0xe2, 0xac, 0xee, 0xc0, 0x08, 0x63, + 0xc5, 0x76, 0xd2, 0x38, 0xaf, 0x2e, 0x75, 0x5e, 0x43, 0x1e, 0xed, 0x0a, 0xb5, 0x2c, 0xc6, 0x4c, + 0x9f, 0xc7, 0x81, 0xba, 0x40, 0x1b, 0xe6, 0x26, 0xcb, 0x24, 0x3a, 0x30, 0xe1, 0x4f, 0xe6, 0xb0, + 0xdb, 0x93, 0xb9, 0xfc, 0x9f, 0x37, 0xe4, 0xef, 0x0b, 0x37, 0x6a, 0xd9, 0x60, 0x27, 0xd2, 0xda, + 0xd4, 0x84, 0xb4, 0x6b, 0xfb, 0x09, 0xa9, 0xfe, 0x79, 0x0d, 0x0e, 0x25, 0xcb, 0xfd, 0x03, 0x90, + 0x35, 0xfe, 0x7a, 0x17, 0x4c, 0xc5, 0xc6, 0xb7, 0x55, 0x7b, 0xde, 0xa8, 0x95, 0xa8, 0xf5, 0xb0, + 0xbe, 0x6a, 0xcf, 0x56, 0xbd, 0x70, 0xb4, 0x73, 0x53, 0xfa, 0x02, 0x0c, 0xac, 0x19, 0x0e, 0x2d, + 0x1a, 0x8c, 0x6f, 0x96, 0xf0, 0x0e, 0x1e, 0x1d, 0x17, 0x87, 0x2c, 0xc2, 0xe0, 0xe3, 0xa6, 0xed, + 0x4a, 0x36, 0xdd, 0xea, 0x6c, 0x06, 0x18, 0x21, 0xf2, 0xb9, 0x0b, 0x7d, 0x8e, 0xdb, 0x30, 0x5c, + 0x5a, 0xe1, 0x6b, 0x88, 0xe1, 0x99, 0x93, 0x69, 0x86, 0xe4, 0x66, 0xb1, 0xd8, 0x81, 0xca, 0x0a, + 0xd2, 0x15, 0x24, 0x07, 0x72, 0x17, 0x46, 0x1a, 0x74, 0x9d, 0x36, 0x68, 0xad, 0x44, 0x71, 0x58, + 0xf4, 0xaa, 0x3b, 0xda, 0xb0, 0xa4, 0xe5, 0xe3, 0xe2, 0x1f, 0x72, 0x70, 0xc6, 0xd7, 0x3d, 0x21, + 0x2f, 0x7b, 0x57, 0x3b, 0x29, 0x6c, 0xde, 0xae, 0x1d, 0x30, 0x6f, 0xf7, 0xbb, 0x61, 0xde, 0x9e, + 0xce, 0xcd, 0xbb, 0x8e, 0x1b, 0x3f, 0xf1, 0xd6, 0xdd, 0xb9, 0x84, 0xae, 0x01, 0xc7, 0x63, 0x26, + 0xf6, 0x8e, 0xda, 0x53, 0x4e, 0xeb, 0xbe, 0x9b, 0x83, 0xe7, 0x70, 0xea, 0x6f, 0x35, 0xf4, 0x7d, + 0x92, 0xdc, 0x5d, 0x66, 0x8b, 0x8f, 0x8a, 0x59, 0xcb, 0xe2, 0x55, 0x48, 0x12, 0xc8, 0x0c, 0xbb, + 0x3b, 0xc9, 0x0c, 0x0f, 0x8a, 0xcc, 0xd0, 0xf3, 0x9c, 0xbe, 0xb9, 0xfe, 0x77, 0xde, 0x3c, 0xc8, + 0x0b, 0xe2, 0x93, 0xc4, 0xde, 0x84, 0x24, 0x71, 0x77, 0x2b, 0x49, 0xdc, 0xc4, 0xbd, 0xbf, 0x24, + 0x3f, 0xc2, 0x89, 0xe0, 0x7e, 0x28, 0x6d, 0x3b, 0xaf, 0x90, 0xb6, 0xc5, 0xf5, 0x9d, 0x4c, 0xde, + 0x7e, 0x1c, 0x3e, 0xa0, 0xe4, 0x57, 0xef, 0x56, 0xfb, 0x3f, 0xa7, 0x45, 0x12, 0xa0, 0xf7, 0x70, + 0x19, 0xf8, 0x24, 0x92, 0x47, 0x25, 0x2c, 0x06, 0x77, 0xdc, 0x0e, 0x3f, 0x2b, 0x0e, 0x40, 0x7c, + 0x29, 0xdc, 0x7b, 0xb6, 0x9b, 0xf1, 0x49, 0x0d, 0xc0, 0x97, 0x30, 0xbc, 0x87, 0xe3, 0x5c, 0xff, + 0x82, 0x06, 0xe3, 0x0f, 0x68, 0xa3, 0x4e, 0xdd, 0xa6, 0x61, 0x71, 0x8b, 0xac, 0xb8, 0x86, 0x4b, + 0xc9, 0x03, 0x18, 0x10, 0x6a, 0xd7, 0xd6, 0x6d, 0xdc, 0x82, 0x48, 0x3d, 0xca, 0x0e, 0xb1, 0x59, + 0xaa, 0xad, 0xdb, 0x05, 0x34, 0x9d, 0xf7, 0x9b, 0x3c, 0x84, 0xc1, 0xf5, 0x66, 0xad, 0x6c, 0xd6, + 0x2a, 0x9c, 0x25, 0xdf, 0xa6, 0x9a, 0xc9, 0xc0, 0x72, 0x91, 0x93, 0x17, 0x06, 0x90, 0x8f, 0xc7, + 0x56, 0xff, 0x6c, 0x17, 0x8c, 0x2f, 0x36, 0x2d, 0x2b, 0xdc, 0xb1, 0x64, 0x21, 0xb4, 0x7f, 0xf2, + 0x72, 0xfa, 0x1e, 0x78, 0x90, 0x5a, 0xee, 0xb0, 0x7d, 0x18, 0x86, 0xeb, 0x42, 0x0a, 0xbf, 0xdc, + 0x27, 0x33, 0xc8, 0xcd, 0x2c, 0x7a, 0x7b, 0x57, 0x61, 0x48, 0x72, 0x62, 0x06, 0xf9, 0x90, 0x67, + 0x10, 0xb7, 0xd9, 0xa0, 0x0e, 0x67, 0xdc, 0xc5, 0x18, 0x9f, 0x4e, 0x63, 0x7c, 0xf3, 0x49, 0xdd, + 0x6c, 0x6c, 0x2d, 0x72, 0xaa, 0x96, 0x9d, 0x6f, 0xef, 0xf2, 0x6c, 0xc2, 0x0a, 0x19, 0xe7, 0x39, + 0xee, 0xb3, 0x38, 0xfd, 0x66, 0x08, 0xc1, 0xcc, 0xb1, 0xf9, 0xea, 0x21, 0x76, 0x6b, 0xb1, 0x67, + 0x67, 0xb6, 0x16, 0xe7, 0x7a, 0xa1, 0xdb, 0x53, 0x59, 0xb7, 0x70, 0x6d, 0x1b, 0x33, 0x2a, 0x31, + 0x12, 0xbc, 0x12, 0xde, 0xd9, 0x3b, 0xd9, 0x6e, 0x1b, 0x2c, 0xd2, 0x95, 0x72, 0x7f, 0xef, 0x32, + 0xee, 0x0b, 0x45, 0x6a, 0xa8, 0x2c, 0x02, 0xcd, 0x84, 0x00, 0x22, 0x25, 0xbd, 0x1d, 0xf2, 0xb7, + 0xec, 0x82, 0x8a, 0x5d, 0xbb, 0x39, 0x9c, 0xac, 0xc2, 0x15, 0x70, 0xf6, 0x50, 0x12, 0x97, 0x46, + 0x17, 0xbe, 0x41, 0x1e, 0xad, 0xe3, 0x41, 0x91, 0xa5, 0x88, 0x53, 0x70, 0xfe, 0xa8, 0x96, 0x37, + 0xdd, 0xc2, 0xd5, 0x55, 0xeb, 0x30, 0x8a, 0xcd, 0xb0, 0xec, 0x8a, 0x4f, 0x96, 0xb3, 0x2e, 0x7d, + 0x31, 0x72, 0x41, 0xe2, 0x81, 0xed, 0x98, 0xec, 0x4e, 0x54, 0x26, 0x3e, 0x1f, 0x83, 0xf7, 0x27, + 0xf0, 0x59, 0xaa, 0x05, 0x7b, 0x7b, 0xfb, 0x17, 0x8c, 0x1c, 0x98, 0x0e, 0xb5, 0x75, 0x73, 0x7d, + 0x9d, 0xf7, 0xf8, 0xbb, 0xd7, 0xe8, 0x2b, 0xe8, 0x1c, 0xa1, 0x0b, 0x3c, 0xf2, 0xf2, 0x4e, 0x16, + 0x63, 0xd5, 0x22, 0xbd, 0xe7, 0x33, 0xba, 0x1c, 0x80, 0x3d, 0xde, 0x4c, 0x48, 0x71, 0xf8, 0x4d, + 0xa9, 0x45, 0x51, 0xc1, 0x07, 0x8f, 0x73, 0x39, 0x0b, 0xfd, 0x11, 0xbc, 0xd8, 0xb6, 0x73, 0xe4, + 0x4e, 0x8a, 0x6c, 0xd6, 0x1b, 0x4c, 0xef, 0x4b, 0x0d, 0xb7, 0xfe, 0xc6, 0x34, 0xd1, 0xd8, 0xc7, + 0x73, 0xb0, 0x27, 0xd2, 0x1f, 0x64, 0x1f, 0xec, 0x36, 0x9d, 0xa2, 0x65, 0xd7, 0x2a, 0x8c, 0x73, + 0x5f, 0xa1, 0xd7, 0x74, 0xee, 0xda, 0xb5, 0xca, 0xf6, 0x53, 0xe6, 0x05, 0x18, 0xa0, 0x35, 0xb7, + 0xb1, 0x15, 0xd9, 0x6a, 0x69, 0xbf, 0x66, 0x66, 0x74, 0x3c, 0xec, 0xde, 0x83, 0x51, 0x2a, 0x84, + 0x2e, 0x62, 0x0a, 0x9e, 0x21, 0x80, 0x8f, 0x48, 0xe2, 0x65, 0x46, 0xab, 0x3f, 0x83, 0x93, 0xea, + 0x3e, 0x2a, 0x37, 0x2f, 0x03, 0xb6, 0x3f, 0x91, 0x3a, 0x23, 0x85, 0xb9, 0x05, 0x3b, 0xe1, 0x1a, + 0x0e, 0xeb, 0xb8, 0xe4, 0x40, 0x25, 0x8c, 0x55, 0xd1, 0x43, 0x63, 0xe9, 0xa5, 0xb8, 0xdd, 0xdb, + 0xc8, 0x51, 0xd0, 0x43, 0xf9, 0x7c, 0x24, 0x22, 0x6f, 0xc2, 0x3c, 0xab, 0x24, 0x72, 0x13, 0x23, + 0x6f, 0x22, 0x0f, 0x14, 0x7b, 0x39, 0x20, 0x76, 0x27, 0xd3, 0x7e, 0x40, 0xf4, 0x59, 0x5c, 0x29, + 0x27, 0xe4, 0x4c, 0x6a, 0x92, 0x1f, 0x49, 0x65, 0x21, 0x6f, 0x4d, 0x06, 0xdc, 0xa3, 0x83, 0x0c, + 0x2e, 0x18, 0x15, 0xe4, 0x1a, 0x25, 0x31, 0xa4, 0x61, 0xc3, 0xa5, 0xc0, 0x15, 0x47, 0x2f, 0x1a, + 0xcd, 0x76, 0x78, 0xc5, 0xb1, 0x75, 0x6f, 0x52, 0xdc, 0x1a, 0x13, 0x8c, 0xf5, 0x8b, 0x78, 0x5d, + 0x28, 0x7e, 0x46, 0x43, 0x49, 0xc6, 0xa1, 0x87, 0x5f, 0x6e, 0xd5, 0xd8, 0xe5, 0x56, 0xfe, 0xa0, + 0xef, 0xc7, 0xfb, 0x04, 0xcb, 0x76, 0xb9, 0x69, 0x51, 0x96, 0xf5, 0x89, 0x3b, 0x6f, 0xaf, 0xe3, + 0xfd, 0x87, 0xc0, 0x2b, 0x79, 0xd7, 0x20, 0x60, 0xcf, 0xd4, 0xeb, 0x26, 0xb7, 0xf8, 0x8d, 0x5e, + 0xce, 0x00, 0xed, 0xb7, 0x0f, 0xf6, 0xf2, 0x6e, 0x0b, 0x4d, 0x98, 0x7a, 0x19, 0xaf, 0x45, 0xbc, + 0xbb, 0x41, 0xfd, 0xb1, 0xff, 0xfc, 0xa5, 0x40, 0xdf, 0x30, 0x1a, 0xe5, 0x07, 0xb6, 0x59, 0x73, + 0x95, 0xee, 0xad, 0x9d, 0x81, 0x89, 0x3a, 0xe5, 0x8b, 0x82, 0xba, 0x6d, 0x5b, 0x45, 0xd7, 0xac, + 0x52, 0xc7, 0x35, 0xaa, 0x75, 0x16, 0x83, 0xbb, 0x0a, 0xe3, 0xf8, 0xf6, 0x81, 0x6d, 0x5b, 0xab, + 0xe2, 0x9d, 0xfe, 0xd3, 0xe2, 0x58, 0x33, 0xa6, 0x4d, 0xd4, 0x70, 0x0d, 0x9e, 0x13, 0x93, 0x1f, + 0xbb, 0x9b, 0x5c, 0x6c, 0xb0, 0x5a, 0xc5, 0x3a, 0xab, 0xc6, 0xe5, 0x50, 0x0b, 0xa9, 0x93, 0x7e, + 0x37, 0xf0, 0xb7, 0xa5, 0x1f, 0xc6, 0xe0, 0xe6, 0x7b, 0x33, 0x6f, 0x54, 0xeb, 0x86, 0x59, 0xa9, + 0x89, 0x2e, 0xf8, 0x5e, 0x37, 0x06, 0xb0, 0xd8, 0x3a, 0x28, 0xeb, 0x26, 0x3c, 0xef, 0xc9, 0xe8, + 0x19, 0x01, 0xa5, 0x2c, 0x61, 0x15, 0xff, 0xe2, 0xeb, 0x6c, 0xfa, 0x1a, 0xd8, 0xe0, 0x63, 0xd4, + 0xdf, 0x00, 0x0b, 0x37, 0xfb, 0xdd, 0xa4, 0x57, 0xe4, 0x27, 0x34, 0x38, 0x1a, 0x6a, 0x98, 0x75, + 0x82, 0x6c, 0xdd, 0x29, 0x6d, 0x50, 0xcf, 0x5f, 0x71, 0xfb, 0x7a, 0x2a, 0x7d, 0x5b, 0x50, 0x68, + 0xc5, 0x2d, 0x64, 0x5b, 0x85, 0xc3, 0x81, 0xa6, 0xbd, 0x22, 0x51, 0x69, 0x05, 0x19, 0x93, 0x1f, + 0x81, 0xfd, 0xae, 0xed, 0x1a, 0x56, 0x6c, 0x27, 0x65, 0x98, 0x42, 0x27, 0x18, 0x97, 0x48, 0x17, + 0x91, 0x5f, 0xd0, 0xe0, 0x84, 0x70, 0x30, 0x35, 0x55, 0xbb, 0x3b, 0x52, 0xf5, 0x18, 0x36, 0xb2, + 0xda, 0x56, 0xe3, 0x2a, 0x1c, 0x96, 0x02, 0x25, 0x6a, 0xde, 0xa3, 0xee, 0x9e, 0x2f, 0x88, 0x96, + 0x63, 0x0d, 0xa0, 0x5f, 0x46, 0x1f, 0x5d, 0x72, 0xee, 0xd7, 0x5d, 0x5a, 0xbe, 0xdf, 0x74, 0xef, + 0xaf, 0xf3, 0x0a, 0x4e, 0xfb, 0x8b, 0xb0, 0x0b, 0xe8, 0xbc, 0xb1, 0xc4, 0xe8, 0xbc, 0x87, 0x60, + 0xd0, 0x74, 0x8a, 0xb6, 0xf7, 0xbe, 0x68, 0x37, 0x5d, 0xcc, 0xaa, 0xc0, 0x94, 0x24, 0xfa, 0x8b, + 0xb8, 0xeb, 0x13, 0xe1, 0x81, 0x9b, 0x62, 0x32, 0x5e, 0x2d, 0x60, 0xee, 0x9e, 0x52, 0x11, 0x1b, + 0x4d, 0x09, 0x29, 0xfa, 0x35, 0x9c, 0x08, 0x17, 0x29, 0x5d, 0x30, 0x1d, 0xbe, 0xed, 0x86, 0x19, + 0xaf, 0x6f, 0x0a, 0x4f, 0x56, 0xfa, 0xbb, 0x1a, 0x4e, 0x83, 0x49, 0x0c, 0x50, 0x86, 0x17, 0x00, + 0x5c, 0x93, 0x36, 0xe4, 0x71, 0x91, 0x76, 0xac, 0xbb, 0xd0, 0xef, 0x95, 0xf0, 0x5d, 0x9d, 0x02, + 0x0c, 0xca, 0xec, 0xbb, 0xb5, 0x6d, 0x90, 0x9a, 0x9d, 0xf8, 0x1a, 0x5c, 0x35, 0x69, 0x83, 0xb5, + 0x36, 0x60, 0xb4, 0x9a, 0x26, 0xf7, 0x61, 0x40, 0x06, 0x35, 0xd7, 0xc2, 0x0d, 0x83, 0xa9, 0x0c, + 0x2c, 0x57, 0x57, 0xef, 0x16, 0x40, 0xc4, 0x33, 0xd7, 0x92, 0x11, 0xcc, 0x57, 0x4d, 0x38, 0xaa, + 0xe8, 0x94, 0x4f, 0x88, 0x03, 0xb4, 0xd8, 0x3a, 0x72, 0x66, 0xde, 0xbb, 0x4e, 0x69, 0xb1, 0x8c, + 0xef, 0x5b, 0xa3, 0x49, 0xcb, 0xa4, 0xb5, 0xe4, 0x3b, 0xb6, 0x1e, 0x2d, 0xd4, 0x6f, 0xe0, 0x44, + 0x83, 0xf7, 0xbd, 0x97, 0x4d, 0xa7, 0x6a, 0xb8, 0x25, 0xdf, 0x1e, 0xe6, 0x41, 0x18, 0x28, 0x37, + 0x1d, 0xb7, 0xb8, 0x6e, 0x94, 0x5c, 0x9b, 0x43, 0x53, 0xba, 0x0a, 0xe0, 0x15, 0x2d, 0xb2, 0x12, + 0xfd, 0xb7, 0xbb, 0x60, 0x24, 0x44, 0x4d, 0x74, 0x08, 0xac, 0x89, 0xd4, 0x2f, 0x62, 0x92, 0x59, + 0xe8, 0x37, 0x36, 0x0d, 0x33, 0xf3, 0x0d, 0x88, 0x16, 0x15, 0xb9, 0x08, 0x3d, 0x2c, 0x08, 0x64, + 0x49, 0xf1, 0x39, 0x05, 0x59, 0x84, 0x41, 0xbc, 0xe9, 0x5e, 0xdc, 0xb0, 0xad, 0xb2, 0xef, 0x90, + 0xa5, 0xfd, 0xe9, 0x0f, 0x12, 0xde, 0xb6, 0xad, 0x32, 0x79, 0x05, 0x86, 0xe9, 0x93, 0x3a, 0x2d, + 0x79, 0xe3, 0x97, 0xcb, 0xd2, 0xab, 0xce, 0x69, 0x48, 0x90, 0xb2, 0xe8, 0x43, 0xe6, 0x01, 0xca, + 0xe6, 0x3a, 0x1e, 0xe0, 0xf0, 0xed, 0x77, 0xc5, 0x15, 0x50, 0x8b, 0x4c, 0xff, 0x31, 0x9c, 0xdb, + 0x63, 0xba, 0x19, 0xbd, 0xed, 0x75, 0x20, 0x42, 0xf5, 0xaa, 0x7c, 0x8b, 0xa9, 0xcc, 0x07, 0x14, + 0x90, 0x02, 0x82, 0x65, 0x61, 0xcf, 0x5a, 0xb8, 0x0d, 0xfd, 0x28, 0x0e, 0x7e, 0xac, 0xea, 0x25, + 0x8a, 0x73, 0x2d, 0x6b, 0xc9, 0x50, 0xf5, 0x2b, 0x39, 0xd8, 0xeb, 0xab, 0xc2, 0x17, 0x5b, 0xcc, + 0x9e, 0xff, 0xcf, 0xfd, 0x49, 0xff, 0x65, 0x91, 0xcd, 0x27, 0x5a, 0x10, 0x7b, 0xb1, 0x06, 0x79, + 0xd1, 0x20, 0xdb, 0x41, 0xf7, 0xb7, 0xae, 0x74, 0x6d, 0x26, 0xd6, 0xfe, 0x85, 0x7d, 0x6b, 0xf1, + 0xed, 0xca, 0x69, 0x28, 0x14, 0x12, 0xbd, 0x54, 0xda, 0x74, 0x5c, 0xb3, 0x24, 0xfb, 0xf6, 0x22, + 0x0c, 0x05, 0x5e, 0x10, 0x02, 0xdd, 0x5e, 0x5c, 0xc7, 0x18, 0xcf, 0x7e, 0x7b, 0x5d, 0xd8, 0x82, + 0x06, 0x75, 0x17, 0xf8, 0x83, 0xee, 0xe0, 0x0c, 0x96, 0xd2, 0x86, 0x5c, 0xb4, 0x82, 0x23, 0x4b, + 0x55, 0x6e, 0xc9, 0x07, 0xf8, 0x14, 0x7c, 0xc4, 0x5e, 0xfe, 0xbf, 0x6c, 0xba, 0xf6, 0xab, 0x46, + 0xd3, 0x62, 0xd3, 0x84, 0x54, 0xe4, 0x8f, 0x35, 0x98, 0x08, 0xbf, 0xc1, 0xe6, 0x5f, 0x82, 0xd1, + 0xaa, 0xe1, 0xb8, 0xb4, 0x21, 0xce, 0x28, 0xa9, 0x98, 0x48, 0x47, 0x78, 0xf9, 0xac, 0x28, 0x26, + 0xa7, 0x60, 0xbc, 0x2c, 0x97, 0x00, 0xbe, 0xea, 0xfc, 0x28, 0x64, 0xac, 0xf5, 0xae, 0x45, 0x72, + 0x14, 0x86, 0x9d, 0xba, 0xed, 0xfa, 0x2a, 0xf3, 0xc3, 0xa0, 0x21, 0xaf, 0x34, 0x50, 0xad, 0xf4, + 0xc6, 0xcc, 0x49, 0x5f, 0xb5, 0x6e, 0x5e, 0xcd, 0x2b, 0x95, 0xd5, 0xf4, 0x05, 0x8c, 0xfb, 0xb8, + 0xf0, 0x5d, 0x58, 0x6c, 0xd8, 0x55, 0xa6, 0x92, 0x6f, 0xaf, 0x6b, 0xd3, 0x7b, 0x2e, 0x06, 0x77, + 0x32, 0x07, 0x59, 0xa1, 0x38, 0x6d, 0x15, 0xd7, 0xa8, 0x62, 0xb8, 0xa0, 0x4d, 0x52, 0xd7, 0xc6, + 0x62, 0x79, 0x7d, 0xdb, 0x74, 0x5c, 0xbb, 0x61, 0x96, 0x64, 0xae, 0x55, 0xb2, 0x7d, 0xa9, 0x54, + 0x2a, 0x0b, 0x17, 0x43, 0x4b, 0x12, 0x0b, 0xb9, 0x2f, 0x30, 0x24, 0x52, 0x42, 0xf6, 0x42, 0x05, + 0x85, 0x10, 0x60, 0x34, 0xe8, 0xfa, 0x9e, 0xf4, 0x3f, 0xd0, 0x60, 0x8c, 0xbd, 0xe6, 0xcd, 0x7a, + 0xc9, 0x95, 0xb7, 0x14, 0x24, 0x2f, 0x03, 0xe1, 0xcd, 0x54, 0x1a, 0x76, 0xb3, 0xee, 0xa5, 0xa3, + 0x0e, 0x2d, 0xa1, 0x8b, 0x8f, 0xb2, 0x37, 0xb7, 0xf0, 0xc5, 0x0a, 0x2d, 0x91, 0x7d, 0xb0, 0xbb, + 0x6a, 0x3c, 0x29, 0x1a, 0x15, 0x8a, 0x0e, 0xdf, 0x5b, 0x35, 0x9e, 0xcc, 0x56, 0x28, 0x99, 0x82, + 0x31, 0xb3, 0x56, 0xb2, 0x9a, 0x9e, 0xbc, 0xc6, 0x1b, 0xc5, 0x0d, 0xde, 0x08, 0x5e, 0xe9, 0xdb, + 0x83, 0xaf, 0x0a, 0xc6, 0x1b, 0xd8, 0xba, 0xe7, 0x78, 0xa2, 0xbe, 0x5c, 0xcb, 0xb3, 0x53, 0xde, + 0xc2, 0x08, 0x96, 0x8b, 0x35, 0xba, 0xfe, 0x9b, 0x1a, 0xee, 0xd7, 0x4b, 0x8c, 0x85, 0xe1, 0x9a, + 0x96, 0xe9, 0x6e, 0x29, 0x9d, 0x59, 0x96, 0x60, 0x2f, 0xd7, 0x0f, 0x45, 0xf2, 0x52, 0x54, 0x4f, + 0x71, 0x95, 0x44, 0x2c, 0xc6, 0x5e, 0x85, 0x31, 0x37, 0x5a, 0xa8, 0x7f, 0x3c, 0x17, 0xf0, 0x4d, + 0xbf, 0x88, 0x12, 0x8b, 0x01, 0x9b, 0xb2, 0x14, 0x4f, 0xf8, 0x0e, 0xb6, 0x9d, 0x0e, 0x5b, 0x24, + 0xe4, 0x35, 0x18, 0x15, 0x1a, 0x48, 0x83, 0xe5, 0x22, 0x07, 0x5a, 0x88, 0xe0, 0x95, 0x87, 0x30, + 0x58, 0xd3, 0x17, 0x78, 0x46, 0x90, 0x8b, 0x78, 0x45, 0x6e, 0xc3, 0x80, 0xbf, 0xc7, 0xba, 0x98, + 0x97, 0xbd, 0xa8, 0xe8, 0x65, 0x05, 0x68, 0xc8, 0x3e, 0x95, 0x40, 0xa2, 0x39, 0xb3, 0x66, 0x08, + 0x53, 0xb4, 0x3b, 0x57, 0xd5, 0x2b, 0x78, 0xd9, 0x3a, 0x44, 0x24, 0xc3, 0x63, 0xe8, 0xd8, 0x27, + 0xb5, 0xbf, 0x38, 0x0f, 0xec, 0x94, 0xf0, 0xa9, 0xcf, 0x63, 0x38, 0x11, 0x7b, 0xf4, 0x3f, 0x6f, + 0xd7, 0xca, 0x26, 0xbf, 0x25, 0xb6, 0xd3, 0xc8, 0xe3, 0xdf, 0xe8, 0x82, 0xc3, 0x91, 0x53, 0xe9, + 0x70, 0x7b, 0x3f, 0xb8, 0xf7, 0x3b, 0x6e, 0xc1, 0xa0, 0xdb, 0x30, 0x2b, 0x15, 0xda, 0x78, 0x90, + 0xf5, 0x80, 0x31, 0x40, 0xd8, 0xfe, 0x9e, 0xc7, 0x51, 0xd8, 0x6d, 0x3a, 0xec, 0x38, 0x9f, 0x65, + 0xa5, 0x7d, 0x73, 0x03, 0xef, 0xbc, 0x79, 0x50, 0x14, 0x15, 0xc4, 0x8f, 0xd0, 0x75, 0x90, 0xdd, + 0x09, 0xd7, 0x41, 0xfa, 0x5a, 0xd7, 0x41, 0x3e, 0xa1, 0x05, 0x2e, 0xd5, 0xa5, 0x3a, 0x85, 0x04, + 0x7d, 0x06, 0xaf, 0x24, 0x5c, 0xcd, 0x74, 0x25, 0x21, 0xcc, 0x57, 0x5e, 0x4c, 0x58, 0x46, 0x41, + 0xf0, 0x74, 0xce, 0xb5, 0xab, 0x66, 0xe9, 0xe6, 0x13, 0x5a, 0x6a, 0x7a, 0x95, 0x17, 0x29, 0x5d, + 0x6e, 0x5a, 0xae, 0x59, 0xb7, 0x4c, 0xda, 0x50, 0x9a, 0x63, 0x36, 0xf1, 0x48, 0x4a, 0x85, 0x1d, + 0x2a, 0x36, 0x0f, 0x50, 0x95, 0xa5, 0x59, 0x7c, 0xd1, 0x47, 0xa6, 0x5f, 0x10, 0xd8, 0x55, 0x66, + 0x90, 0x15, 0xd7, 0x78, 0x44, 0x6f, 0x35, 0x8c, 0xd6, 0x6d, 0xb7, 0x49, 0xd8, 0x5d, 0xf1, 0x9e, + 0x29, 0x15, 0xcb, 0x6d, 0x7c, 0xd4, 0x3f, 0x23, 0xa1, 0xa9, 0x11, 0x52, 0x14, 0xf0, 0x2a, 0xf4, + 0xb0, 0xca, 0xb8, 0x98, 0x4c, 0x0d, 0x51, 0x9c, 0x09, 0xa7, 0xe7, 0x54, 0x64, 0x05, 0x5a, 0x87, + 0x22, 0x45, 0xce, 0x48, 0x01, 0x21, 0x23, 0xcf, 0x35, 0x38, 0xaf, 0x61, 0x1a, 0x78, 0xd6, 0x57, + 0x31, 0x9b, 0x60, 0x4f, 0xb3, 0x4d, 0x77, 0xc3, 0x6e, 0x98, 0x3f, 0xca, 0xae, 0xc4, 0x45, 0x34, + 0x6e, 0x04, 0x35, 0x6e, 0xf8, 0x6d, 0x91, 0x0b, 0xda, 0xe2, 0x43, 0xb8, 0x1c, 0x8f, 0xe3, 0x8a, + 0xc6, 0x38, 0x0b, 0xbd, 0x78, 0xdd, 0x8f, 0xf7, 0xd4, 0x0b, 0xd8, 0x53, 0x7b, 0xa3, 0x3d, 0xb5, + 0x54, 0x73, 0x0b, 0x58, 0x59, 0x6e, 0x03, 0x45, 0x39, 0x3b, 0x6d, 0x05, 0xf6, 0x52, 0x88, 0x43, + 0xc9, 0xd4, 0xf2, 0x0e, 0x2d, 0xe1, 0xfb, 0x59, 0x8c, 0xaa, 0x98, 0x45, 0xc8, 0x51, 0x46, 0xc8, + 0x99, 0x8b, 0x9b, 0xa3, 0xbd, 0x8c, 0x8d, 0xa3, 0xb2, 0xf3, 0x18, 0x63, 0x2d, 0xa4, 0x3e, 0x7e, + 0x06, 0xfa, 0x25, 0x0e, 0x8e, 0x8c, 0xc3, 0xa8, 0xf7, 0xb7, 0xf8, 0xb0, 0xe6, 0xd4, 0x69, 0xc9, + 0x5c, 0x37, 0x69, 0x79, 0x74, 0x17, 0xd9, 0x0d, 0x5d, 0x73, 0xcd, 0xad, 0x51, 0x8d, 0xf4, 0x41, + 0xf7, 0x0a, 0xb5, 0xac, 0xd1, 0xdc, 0xf1, 0x57, 0x61, 0x3c, 0xee, 0x92, 0xa3, 0xc7, 0xc0, 0x47, + 0xcb, 0x18, 0x8f, 0xee, 0x22, 0x63, 0x30, 0xe2, 0xe5, 0x92, 0xaf, 0xd9, 0x0d, 0xc7, 0x5d, 0xb5, + 0xe7, 0xa8, 0xe3, 0x8e, 0x6a, 0xa2, 0xd0, 0x7b, 0x5a, 0xb5, 0xd9, 0xab, 0xd1, 0xdc, 0xcc, 0x9f, + 0x53, 0xe8, 0x61, 0x76, 0x24, 0x9f, 0xd5, 0x60, 0x2c, 0xe6, 0x3b, 0x08, 0xe4, 0x5c, 0x5b, 0xc4, + 0x7f, 0xec, 0x67, 0x15, 0xf2, 0xe7, 0x33, 0xd3, 0xf1, 0x5e, 0xd3, 0x67, 0x7e, 0xea, 0x6f, 0xbe, + 0xfd, 0xa9, 0xdc, 0xcb, 0xe4, 0xf8, 0xb4, 0xc2, 0x17, 0x47, 0x50, 0xc8, 0xbf, 0xd0, 0x80, 0x44, + 0x3f, 0x3c, 0x40, 0x2e, 0x75, 0xf4, 0xb5, 0x02, 0x2e, 0xff, 0xe5, 0x6d, 0x7c, 0xe9, 0x40, 0xbf, + 0xce, 0x74, 0xb8, 0x48, 0xce, 0xab, 0xe8, 0x30, 0xed, 0x44, 0x25, 0xff, 0x8a, 0x06, 0x7b, 0x22, + 0xfc, 0xc9, 0xc5, 0xec, 0x32, 0x09, 0x75, 0x2e, 0x75, 0x42, 0x8a, 0xda, 0x5c, 0x63, 0xda, 0x5c, + 0x20, 0xe7, 0x3a, 0xd3, 0x86, 0xfc, 0x89, 0x06, 0xa3, 0xe1, 0x2f, 0x2b, 0x90, 0x0b, 0xca, 0xfe, + 0x11, 0xfa, 0x58, 0x43, 0xfe, 0x62, 0x07, 0x94, 0xa8, 0xc9, 0x55, 0xa6, 0xc9, 0x79, 0x72, 0x56, + 0x49, 0x13, 0x1a, 0x96, 0xf9, 0xcf, 0x34, 0x18, 0x09, 0x7d, 0xae, 0x80, 0xb4, 0xf7, 0xf3, 0xf8, + 0x8f, 0x3d, 0xe4, 0x2f, 0x64, 0x27, 0x44, 0x2d, 0x16, 0x99, 0x16, 0x37, 0xc8, 0x35, 0x25, 0x2d, + 0x42, 0x1f, 0x75, 0x98, 0x7e, 0x8a, 0xbd, 0xf3, 0x8c, 0xf5, 0x4b, 0xf8, 0xeb, 0x0b, 0x24, 0xb3, + 0x58, 0x19, 0xfa, 0x25, 0xe9, 0x53, 0x0f, 0x19, 0xfb, 0x25, 0xfc, 0x99, 0x0a, 0xf2, 0x2f, 0x1a, + 0xec, 0x8d, 0x85, 0xd0, 0x93, 0xab, 0xea, 0x32, 0xc5, 0x7c, 0x83, 0x21, 0x7f, 0xad, 0x53, 0x72, + 0xd4, 0xeb, 0x1e, 0xd3, 0xeb, 0x36, 0x59, 0xcc, 0xa6, 0x97, 0x9f, 0xd7, 0xf4, 0x53, 0x99, 0x5a, + 0x3d, 0x23, 0x6f, 0x6a, 0x30, 0x11, 0xff, 0xad, 0x00, 0xd2, 0xa1, 0xa8, 0xb2, 0xf7, 0xae, 0x77, + 0x4c, 0x8f, 0xba, 0xce, 0x33, 0x5d, 0xaf, 0x92, 0xcb, 0x9d, 0xeb, 0xea, 0x90, 0x2f, 0x68, 0x30, + 0xe8, 0xff, 0xf8, 0x02, 0x39, 0xd3, 0x56, 0xac, 0x98, 0x8f, 0x52, 0xe4, 0xcf, 0x66, 0xa4, 0x42, + 0x15, 0xe6, 0x98, 0x0a, 0x57, 0xc8, 0x25, 0x25, 0x15, 0x02, 0x9f, 0x95, 0x98, 0x7e, 0xca, 0x1e, + 0x9f, 0x91, 0xcf, 0x69, 0x30, 0x14, 0xf8, 0x7c, 0x04, 0xc9, 0x26, 0x8c, 0xec, 0x90, 0x73, 0x59, + 0xc9, 0x50, 0x89, 0xcb, 0x4c, 0x89, 0xb3, 0xe4, 0x74, 0x76, 0x25, 0x1c, 0xf2, 0x3b, 0x1a, 0x0c, + 0xf8, 0xd0, 0xcc, 0xe4, 0x74, 0xfb, 0x69, 0x23, 0x82, 0xc2, 0xce, 0x9f, 0xc9, 0x46, 0x84, 0x72, + 0x9f, 0x64, 0x72, 0x1f, 0x27, 0xc7, 0xd2, 0xe4, 0x76, 0xea, 0xb6, 0x3b, 0x8d, 0xcb, 0x68, 0xf2, + 0x19, 0x0d, 0xc0, 0x87, 0x5c, 0x9f, 0xc9, 0xd0, 0xac, 0x10, 0xf5, 0x74, 0x26, 0x1a, 0x94, 0xf4, + 0x0a, 0x93, 0xf4, 0x1c, 0x39, 0xa3, 0x2a, 0x69, 0x60, 0x0c, 0x7f, 0x4e, 0x83, 0x91, 0x10, 0x68, + 0x5c, 0x61, 0x12, 0x89, 0x07, 0xbc, 0x2b, 0x4c, 0x22, 0x09, 0xf8, 0x74, 0xfd, 0x2c, 0x53, 0x62, + 0x9a, 0x9c, 0x68, 0xab, 0xc4, 0x7a, 0xd3, 0xb2, 0x8a, 0xc2, 0xe6, 0x5f, 0x8a, 0x7e, 0x31, 0xe0, + 0x5c, 0x46, 0x19, 0xd4, 0x33, 0xc4, 0x78, 0x18, 0xba, 0x7e, 0x83, 0x89, 0x7e, 0x89, 0x5c, 0xc8, + 0x22, 0x7a, 0xa0, 0x0f, 0x3e, 0xaf, 0xc1, 0x50, 0xe0, 0x6b, 0x0d, 0x0a, 0x83, 0x34, 0xee, 0xb3, + 0x19, 0x0a, 0x83, 0x34, 0xf6, 0xa3, 0x10, 0x6a, 0x29, 0x15, 0x53, 0xc1, 0x16, 0xb4, 0x01, 0x05, + 0xbe, 0xae, 0xc1, 0x68, 0x18, 0x7d, 0xa7, 0x30, 0x75, 0x27, 0xc0, 0xcf, 0x15, 0xa6, 0xee, 0x24, + 0x28, 0xb3, 0x7e, 0x87, 0x69, 0x72, 0x93, 0xcc, 0xab, 0x69, 0x12, 0x18, 0x0b, 0xd3, 0x4f, 0x03, + 0xbb, 0x5a, 0xcf, 0xc8, 0x7f, 0x68, 0x30, 0x99, 0x04, 0x64, 0x26, 0x37, 0xda, 0xcf, 0x50, 0xe9, + 0xd8, 0xf7, 0xfc, 0xec, 0x36, 0x38, 0xa0, 0xba, 0x0f, 0x99, 0xba, 0xf7, 0xc9, 0x72, 0x27, 0xea, + 0xa2, 0xaa, 0x32, 0x05, 0x13, 0xa7, 0x03, 0xcf, 0xc8, 0xb7, 0xbd, 0x05, 0x4c, 0xe4, 0x4b, 0x04, + 0x2a, 0x0b, 0x98, 0xa4, 0xaf, 0x28, 0xa8, 0x2c, 0x60, 0x12, 0x3f, 0x7d, 0x90, 0x59, 0xcd, 0xe2, + 0xda, 0x16, 0x82, 0x6c, 0x52, 0xfb, 0xf7, 0x4b, 0x1a, 0x8c, 0x86, 0x3f, 0x7d, 0xa8, 0xe0, 0xb6, + 0x09, 0x1f, 0x64, 0xcc, 0x5f, 0xec, 0x80, 0x12, 0x15, 0xbc, 0xc4, 0x14, 0x3c, 0x43, 0x66, 0xd2, + 0x14, 0x14, 0x5d, 0x18, 0xd2, 0xe2, 0x3b, 0x1a, 0xec, 0x6f, 0x8d, 0x87, 0xd5, 0x86, 0x51, 0x73, + 0x4c, 0x5a, 0x7b, 0x4f, 0x47, 0xa1, 0x7a, 0x7f, 0xb9, 0x42, 0xdc, 0xa2, 0xc2, 0x78, 0xfc, 0x5b, + 0x74, 0xcb, 0x20, 0x82, 0x42, 0xd1, 0x2d, 0x63, 0x61, 0xed, 0x8a, 0x6e, 0x19, 0x0f, 0x66, 0x57, + 0x5b, 0xf9, 0xf0, 0x99, 0x37, 0x0c, 0x14, 0x09, 0x84, 0xcf, 0x7f, 0xd3, 0x60, 0x32, 0x09, 0x39, + 0xaf, 0x10, 0x67, 0xda, 0x40, 0xf7, 0x15, 0xe2, 0x4c, 0x3b, 0xd8, 0xbe, 0x7e, 0x97, 0x69, 0xba, + 0x48, 0x16, 0xd2, 0x34, 0x6d, 0x1d, 0x74, 0xb6, 0xd1, 0xf7, 0x1b, 0x1a, 0x8c, 0xc5, 0xa0, 0xcd, + 0xc9, 0xe5, 0x0c, 0x82, 0x46, 0xe6, 0xbe, 0x2b, 0x9d, 0x11, 0xa3, 0x82, 0x0b, 0x4c, 0xc1, 0x6b, + 0xe4, 0x8a, 0xa2, 0x82, 0xf1, 0xf3, 0xe0, 0xbf, 0x6a, 0x30, 0x11, 0x0f, 0xa0, 0x54, 0x58, 0x10, + 0xa5, 0x22, 0x78, 0x15, 0x16, 0x44, 0xe9, 0xc8, 0x4d, 0xfd, 0x83, 0x4c, 0xc3, 0x3b, 0x64, 0x29, + 0x8b, 0x86, 0xe9, 0xe3, 0xf1, 0xe7, 0x73, 0x70, 0x20, 0x1d, 0xb7, 0x49, 0x16, 0x33, 0xce, 0x71, + 0x49, 0xea, 0xdf, 0xda, 0x36, 0x1f, 0x34, 0xc3, 0x47, 0x98, 0x19, 0x1e, 0x92, 0x95, 0xce, 0xcd, + 0x90, 0x3c, 0x6f, 0xfe, 0x77, 0x60, 0x20, 0x87, 0x66, 0xcf, 0x1b, 0x59, 0x1d, 0x34, 0x32, 0x87, + 0xce, 0x6e, 0x83, 0xc3, 0xb6, 0xd4, 0x57, 0x9c, 0x4f, 0xff, 0x47, 0x83, 0x83, 0x61, 0x2f, 0x0c, + 0xcf, 0x47, 0xef, 0xf9, 0x38, 0xc8, 0x6a, 0x81, 0x4c, 0x33, 0xd4, 0x1f, 0x69, 0xb0, 0x27, 0x02, + 0xd5, 0x53, 0xd8, 0x28, 0x4d, 0x02, 0xdd, 0x2a, 0x6c, 0x94, 0x26, 0x22, 0x03, 0xf5, 0x73, 0x4c, + 0xd3, 0x93, 0x64, 0x4a, 0x35, 0x68, 0xa3, 0xb8, 0x5f, 0xd5, 0x60, 0x34, 0x02, 0x16, 0xbd, 0x90, + 0x59, 0x10, 0xf5, 0x3c, 0x22, 0x09, 0x31, 0xa8, 0xb6, 0x03, 0x12, 0xd5, 0x20, 0x10, 0x93, 0xbf, + 0xa3, 0xc1, 0xbe, 0x04, 0x8c, 0x1f, 0xb9, 0x9e, 0x59, 0xb4, 0x20, 0xc2, 0x30, 0x7f, 0xa3, 0x73, + 0x06, 0xa8, 0xe2, 0x12, 0x53, 0x71, 0x9e, 0xcc, 0x66, 0x52, 0x51, 0x84, 0x9c, 0x80, 0xa6, 0x7f, + 0xa5, 0xc1, 0x78, 0x1c, 0x28, 0x83, 0x5c, 0xc9, 0x90, 0x98, 0x46, 0xd0, 0x89, 0xf9, 0xab, 0x1d, + 0x52, 0x67, 0xd9, 0x9e, 0x90, 0x05, 0xe1, 0x01, 0xf5, 0x7b, 0x1a, 0x8c, 0x89, 0xfd, 0x73, 0x1f, + 0x34, 0x44, 0x61, 0x27, 0x28, 0x8a, 0x31, 0x51, 0xd8, 0x09, 0x8a, 0x41, 0x9f, 0xa8, 0xed, 0x04, + 0x55, 0x19, 0x61, 0x91, 0x01, 0x3e, 0xc8, 0x6f, 0x69, 0xd0, 0x2f, 0x21, 0x25, 0xe4, 0x54, 0xdb, + 0x56, 0xc3, 0xb8, 0x94, 0xfc, 0x4c, 0x16, 0x12, 0x14, 0xf3, 0x04, 0x13, 0xf3, 0x45, 0x72, 0x34, + 0x4d, 0xcc, 0xba, 0x94, 0xea, 0x2f, 0x35, 0x18, 0x8b, 0x41, 0x35, 0x92, 0x2c, 0x07, 0x4d, 0x11, + 0xb9, 0xaf, 0x74, 0x46, 0x9c, 0x65, 0xdb, 0x5d, 0x6a, 0x10, 0x71, 0x95, 0x7f, 0xd7, 0x20, 0x9f, + 0x8c, 0x9b, 0x24, 0x73, 0x1d, 0xc8, 0x16, 0x02, 0xa7, 0xe6, 0xe7, 0xb7, 0xc5, 0x23, 0xcb, 0x88, + 0x4f, 0x54, 0x33, 0x30, 0xe2, 0x7f, 0x29, 0x07, 0x47, 0x14, 0x70, 0x8b, 0xe4, 0x4e, 0x06, 0xb9, + 0xdb, 0x21, 0x74, 0xf3, 0x77, 0x77, 0x86, 0x19, 0x5a, 0x63, 0x85, 0x59, 0x63, 0x99, 0xdc, 0x49, + 0x0d, 0x0f, 0xf2, 0x7a, 0x82, 0x9a, 0x5d, 0xfe, 0x4e, 0x83, 0xb1, 0x18, 0x24, 0xa3, 0x82, 0x73, + 0x27, 0xc3, 0x30, 0x15, 0x9c, 0x3b, 0x05, 0x83, 0xa9, 0xdf, 0x64, 0x7a, 0x5e, 0x27, 0x57, 0x53, + 0x7b, 0x5d, 0x7e, 0x48, 0xc1, 0xf7, 0x69, 0x89, 0x80, 0x66, 0xdf, 0xd2, 0x60, 0x5f, 0x02, 0xd8, + 0x51, 0x61, 0x36, 0x4b, 0x47, 0x6d, 0x2a, 0xcc, 0x66, 0x6d, 0x20, 0x9b, 0xaa, 0x47, 0x16, 0x1e, + 0x93, 0x44, 0x15, 0xdf, 0xd6, 0x60, 0x22, 0x1e, 0x15, 0xa9, 0x90, 0x3c, 0xa6, 0x82, 0x3b, 0x15, + 0x92, 0xc7, 0x74, 0x64, 0xa7, 0x7e, 0x9b, 0xe9, 0x37, 0x47, 0x6e, 0x64, 0xea, 0x45, 0xfc, 0x1a, + 0x47, 0xa4, 0x23, 0x13, 0xe0, 0x9c, 0x0a, 0x1d, 0x99, 0x8e, 0x6d, 0x57, 0xe8, 0xc8, 0x36, 0x48, + 0x52, 0xb5, 0x8e, 0xe4, 0x57, 0xca, 0xc4, 0xa5, 0xcb, 0xb8, 0xed, 0xb5, 0x3d, 0x51, 0xc0, 0x99, + 0xe2, 0xb6, 0x52, 0x0c, 0x4e, 0x52, 0x21, 0x19, 0x4e, 0x84, 0x3b, 0xea, 0xe7, 0x99, 0x42, 0xa7, + 0xc8, 0x74, 0x9a, 0x42, 0x31, 0x48, 0x33, 0xf2, 0xd7, 0x1a, 0x4c, 0x3e, 0x68, 0x61, 0xd7, 0xbe, + 0x2f, 0x94, 0x51, 0xba, 0xd0, 0xe1, 0x47, 0xf5, 0x85, 0x95, 0xfa, 0xaa, 0xb8, 0xf3, 0x1c, 0x04, + 0x3d, 0x2a, 0x04, 0xc8, 0x64, 0x28, 0xa7, 0x42, 0x80, 0x4c, 0xc1, 0x78, 0xea, 0x17, 0x99, 0x4e, + 0xa7, 0xc9, 0x29, 0xe5, 0x0e, 0x12, 0xd0, 0x44, 0xf2, 0x96, 0x06, 0x13, 0xf1, 0x58, 0x34, 0x85, + 0x88, 0x91, 0x8a, 0x82, 0x53, 0x88, 0x18, 0xe9, 0x20, 0x38, 0xfd, 0x16, 0x53, 0x6b, 0x96, 0x5c, + 0x4f, 0x53, 0x2b, 0x00, 0x0d, 0xf3, 0x83, 0xe2, 0x7c, 0xd7, 0x23, 0xbc, 0x2e, 0x8b, 0x41, 0x82, + 0x29, 0x74, 0x59, 0x32, 0x76, 0x4d, 0xa1, 0xcb, 0x52, 0x40, 0x6d, 0x6a, 0x5d, 0x16, 0x0b, 0x7b, + 0x23, 0x5f, 0xd3, 0x60, 0x4f, 0x04, 0xbf, 0xa4, 0x30, 0x9c, 0x92, 0xa0, 0x6d, 0x0a, 0xc3, 0x29, + 0x11, 0x2e, 0xa5, 0xb6, 0xf9, 0x17, 0x05, 0x54, 0x4d, 0x3f, 0xf5, 0x81, 0xe9, 0x9e, 0x91, 0x7f, + 0xd4, 0x60, 0x5f, 0x02, 0xa4, 0x47, 0x21, 0xa2, 0xa7, 0xc3, 0xa9, 0x14, 0x22, 0x7a, 0x1b, 0x34, + 0x91, 0x5a, 0xcc, 0x10, 0xff, 0x1a, 0x26, 0x06, 0x70, 0x44, 0xfe, 0x49, 0x83, 0xfd, 0x89, 0xb0, + 0x1d, 0x32, 0x9b, 0xc5, 0x93, 0x62, 0x61, 0x45, 0xf9, 0xb9, 0xed, 0xb0, 0xc8, 0x72, 0xdd, 0x20, + 0xe0, 0x92, 0x0c, 0xa2, 0xea, 0xad, 0xdb, 0x1c, 0xf2, 0x69, 0x0d, 0x86, 0x83, 0x70, 0xa0, 0xf4, + 0xc5, 0x5b, 0x2c, 0xa8, 0x28, 0x7d, 0xf1, 0x16, 0x8f, 0x36, 0xd2, 0xcf, 0x30, 0xb1, 0xa7, 0xc8, + 0xcb, 0xa9, 0x6b, 0x4c, 0xd3, 0xb5, 0x8b, 0x1c, 0xc7, 0x63, 0x32, 0xe1, 0xbe, 0xae, 0xe1, 0xf7, + 0x0b, 0x22, 0x90, 0x1d, 0x85, 0x91, 0x94, 0x04, 0x16, 0x52, 0x18, 0x49, 0x89, 0x08, 0x21, 0xb5, + 0x5b, 0x37, 0x5c, 0x05, 0x99, 0x0b, 0x4d, 0x3f, 0x0d, 0x60, 0x93, 0x58, 0xf6, 0x3e, 0x11, 0x0f, + 0x01, 0x52, 0x08, 0xe7, 0xa9, 0xf0, 0x23, 0x85, 0x70, 0x9e, 0x8e, 0x3d, 0x52, 0xdb, 0xcd, 0xd8, + 0x90, 0x3c, 0x8a, 0x01, 0xa0, 0x12, 0x5b, 0x97, 0xc4, 0x40, 0xc5, 0x15, 0x62, 0x78, 0x32, 0x3a, + 0x5d, 0x21, 0x86, 0xa7, 0xa0, 0xd3, 0xd5, 0xd6, 0x25, 0x7e, 0xfc, 0x7a, 0xd1, 0x5e, 0xc7, 0x09, + 0xd8, 0xf1, 0xcd, 0x4e, 0xff, 0xac, 0xc1, 0xfe, 0x44, 0x54, 0xba, 0x42, 0x70, 0x68, 0x07, 0x7d, + 0x57, 0x08, 0x0e, 0x6d, 0x41, 0xf1, 0xfa, 0x2c, 0xd3, 0xf5, 0x32, 0xb9, 0x98, 0x9a, 0xd4, 0xc6, + 0x28, 0x5a, 0x94, 0x9f, 0xe3, 0xf8, 0x8a, 0x06, 0xa3, 0x61, 0x28, 0x93, 0xc2, 0xde, 0x68, 0x02, + 0x40, 0x2b, 0x7f, 0xb1, 0x03, 0xca, 0x2c, 0xca, 0xb4, 0xfe, 0x63, 0x14, 0x92, 0x07, 0xd6, 0x20, + 0x5f, 0xd4, 0x60, 0x3c, 0x06, 0x19, 0xa4, 0x72, 0x47, 0x2c, 0x0e, 0xc9, 0xa4, 0x70, 0xfd, 0x24, + 0x16, 0xcb, 0xa4, 0x76, 0xfa, 0xbd, 0xc6, 0x48, 0x05, 0x48, 0x4d, 0x6e, 0x56, 0xff, 0x6a, 0x0e, + 0x0e, 0xb7, 0xc5, 0xa8, 0x90, 0xa5, 0xcc, 0xa7, 0x06, 0x49, 0xe0, 0xa7, 0xfc, 0x2b, 0x3b, 0xc1, + 0x0a, 0x15, 0xff, 0x61, 0xa6, 0xf8, 0x6b, 0xe4, 0x61, 0xb6, 0xc3, 0xa8, 0x52, 0x8b, 0x61, 0xea, + 0x69, 0xc4, 0xf7, 0x34, 0xd0, 0xdb, 0xe3, 0x5c, 0xc8, 0x2b, 0x8a, 0x4e, 0xa8, 0x80, 0xbd, 0xc9, + 0xdf, 0xd9, 0x11, 0x5e, 0x59, 0x52, 0x16, 0x83, 0x71, 0xe2, 0x87, 0x33, 0x45, 0x6f, 0x66, 0x6f, + 0x81, 0x6e, 0xc8, 0x9f, 0x6a, 0x30, 0x1a, 0x46, 0xcd, 0xa8, 0x5c, 0x29, 0x8e, 0xc7, 0xe8, 0xa8, + 0x5c, 0x29, 0x4e, 0x80, 0xe8, 0xa8, 0x5d, 0x12, 0x33, 0xf8, 0x1e, 0x97, 0xe3, 0x91, 0x73, 0x94, + 0xc8, 0xf4, 0x53, 0x44, 0xbe, 0x3c, 0x23, 0xdf, 0xd4, 0x80, 0x44, 0x81, 0x1c, 0x0a, 0x97, 0x1f, + 0x12, 0x11, 0x38, 0x0a, 0x97, 0x1f, 0x92, 0x71, 0x36, 0x6a, 0x37, 0xad, 0x10, 0xea, 0xe2, 0x67, + 0x20, 0x54, 0x6a, 0x3c, 0xf3, 0x29, 0xf7, 0x75, 0x0d, 0xc6, 0x62, 0xb0, 0x33, 0xa4, 0x13, 0x09, + 0x33, 0x4c, 0x8c, 0x29, 0x70, 0x1d, 0xb5, 0x1d, 0x90, 0x18, 0xfd, 0x9c, 0x96, 0x82, 0x73, 0x1b, + 0x5f, 0x7e, 0xeb, 0x80, 0xf6, 0xb5, 0xb7, 0x0e, 0x68, 0xdf, 0x7a, 0xeb, 0x80, 0xf6, 0x8b, 0x6f, + 0x1f, 0xd8, 0xf5, 0xb5, 0xb7, 0x0f, 0xec, 0xfa, 0xfb, 0xb7, 0x0f, 0xec, 0x7a, 0xfd, 0x5e, 0xc5, + 0x74, 0x37, 0x9a, 0x6b, 0x53, 0x25, 0xbb, 0x3a, 0xbd, 0x24, 0xf8, 0xdf, 0x35, 0xd6, 0x9c, 0x56, + 0x6b, 0x27, 0x4a, 0x76, 0x83, 0xfa, 0x1f, 0x37, 0x0c, 0xb3, 0x86, 0x07, 0x0d, 0x4e, 0x4b, 0x14, + 0x77, 0xab, 0x4e, 0x9d, 0xb5, 0x5e, 0xf6, 0x4f, 0x68, 0x4f, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x1e, 0xed, 0xe6, 0xe6, 0x7a, 0x77, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -6956,6 +7277,12 @@ type QueryClient interface { // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(ctx context.Context, in *QueryTraderDerivativeConditionalOrdersRequest, opts ...grpc.CallOption) (*QueryTraderDerivativeConditionalOrdersResponse, error) MarketAtomicExecutionFeeMultiplier(ctx context.Context, in *QueryMarketAtomicExecutionFeeMultiplierRequest, opts ...grpc.CallOption) (*QueryMarketAtomicExecutionFeeMultiplierResponse, error) + // Retrieves the active stake grant for a grantee + ActiveStakeGrant(ctx context.Context, in *QueryActiveStakeGrantRequest, opts ...grpc.CallOption) (*QueryActiveStakeGrantResponse, error) + // Retrieves the grant authorization amount for a granter and grantee + GrantAuthorization(ctx context.Context, in *QueryGrantAuthorizationRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationResponse, error) + // Retrieves the grant authorization amount for a granter and grantee + GrantAuthorizations(ctx context.Context, in *QueryGrantAuthorizationsRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationsResponse, error) } type queryClient struct { @@ -7479,6 +7806,33 @@ func (c *queryClient) MarketAtomicExecutionFeeMultiplier(ctx context.Context, in return out, nil } +func (c *queryClient) ActiveStakeGrant(ctx context.Context, in *QueryActiveStakeGrantRequest, opts ...grpc.CallOption) (*QueryActiveStakeGrantResponse, error) { + out := new(QueryActiveStakeGrantResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/ActiveStakeGrant", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) GrantAuthorization(ctx context.Context, in *QueryGrantAuthorizationRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationResponse, error) { + out := new(QueryGrantAuthorizationResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/GrantAuthorization", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) GrantAuthorizations(ctx context.Context, in *QueryGrantAuthorizationsRequest, opts ...grpc.CallOption) (*QueryGrantAuthorizationsResponse, error) { + out := new(QueryGrantAuthorizationsResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Query/GrantAuthorizations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // QueryServer is the server API for Query service. type QueryServer interface { // Retrieves exchange params @@ -7599,6 +7953,12 @@ type QueryServer interface { // Retrieves a trader's derivative conditional orders TraderDerivativeConditionalOrders(context.Context, *QueryTraderDerivativeConditionalOrdersRequest) (*QueryTraderDerivativeConditionalOrdersResponse, error) MarketAtomicExecutionFeeMultiplier(context.Context, *QueryMarketAtomicExecutionFeeMultiplierRequest) (*QueryMarketAtomicExecutionFeeMultiplierResponse, error) + // Retrieves the active stake grant for a grantee + ActiveStakeGrant(context.Context, *QueryActiveStakeGrantRequest) (*QueryActiveStakeGrantResponse, error) + // Retrieves the grant authorization amount for a granter and grantee + GrantAuthorization(context.Context, *QueryGrantAuthorizationRequest) (*QueryGrantAuthorizationResponse, error) + // Retrieves the grant authorization amount for a granter and grantee + GrantAuthorizations(context.Context, *QueryGrantAuthorizationsRequest) (*QueryGrantAuthorizationsResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. @@ -7776,6 +8136,15 @@ func (*UnimplementedQueryServer) TraderDerivativeConditionalOrders(ctx context.C func (*UnimplementedQueryServer) MarketAtomicExecutionFeeMultiplier(ctx context.Context, req *QueryMarketAtomicExecutionFeeMultiplierRequest) (*QueryMarketAtomicExecutionFeeMultiplierResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method MarketAtomicExecutionFeeMultiplier not implemented") } +func (*UnimplementedQueryServer) ActiveStakeGrant(ctx context.Context, req *QueryActiveStakeGrantRequest) (*QueryActiveStakeGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ActiveStakeGrant not implemented") +} +func (*UnimplementedQueryServer) GrantAuthorization(ctx context.Context, req *QueryGrantAuthorizationRequest) (*QueryGrantAuthorizationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GrantAuthorization not implemented") +} +func (*UnimplementedQueryServer) GrantAuthorizations(ctx context.Context, req *QueryGrantAuthorizationsRequest) (*QueryGrantAuthorizationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GrantAuthorizations not implemented") +} func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) @@ -8807,6 +9176,60 @@ func _Query_MarketAtomicExecutionFeeMultiplier_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _Query_ActiveStakeGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryActiveStakeGrantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).ActiveStakeGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/ActiveStakeGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).ActiveStakeGrant(ctx, req.(*QueryActiveStakeGrantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_GrantAuthorization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGrantAuthorizationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).GrantAuthorization(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/GrantAuthorization", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).GrantAuthorization(ctx, req.(*QueryGrantAuthorizationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_GrantAuthorizations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGrantAuthorizationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).GrantAuthorizations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Query/GrantAuthorizations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).GrantAuthorizations(ctx, req.(*QueryGrantAuthorizationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.exchange.v1beta1.Query", HandlerType: (*QueryServer)(nil), @@ -9039,6 +9462,18 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "MarketAtomicExecutionFeeMultiplier", Handler: _Query_MarketAtomicExecutionFeeMultiplier_Handler, }, + { + MethodName: "ActiveStakeGrant", + Handler: _Query_ActiveStakeGrant_Handler, + }, + { + MethodName: "GrantAuthorization", + Handler: _Query_GrantAuthorization_Handler, + }, + { + MethodName: "GrantAuthorizations", + Handler: _Query_GrantAuthorizations_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/exchange/v1beta1/query.proto", @@ -10557,6 +10992,13 @@ func (m *TrimmedSpotLimitOrder) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x32 + } if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) @@ -11189,6 +11631,13 @@ func (m *TrimmedDerivativeLimitOrder) MarshalToSizedBuffer(dAtA []byte) (int, er _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x3a + } if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) @@ -13831,6 +14280,13 @@ func (m *TrimmedDerivativeConditionalOrder) MarshalToSizedBuffer(dAtA []byte) (i _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x42 + } if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) @@ -14001,12 +14457,236 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) MarshalToSizedBuffer(d 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 +func (m *QueryActiveStakeGrantRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActiveStakeGrantRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActiveStakeGrantRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryActiveStakeGrantResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryActiveStakeGrantResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryActiveStakeGrantResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.EffectiveGrant != nil { + { + size, err := m.EffectiveGrant.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Grant != nil { + { + size, err := m.Grant.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 *QueryGrantAuthorizationRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGrantAuthorizationRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGrantAuthorizationRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grantee) > 0 { + i -= len(m.Grantee) + copy(dAtA[i:], m.Grantee) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Grantee))) + i-- + dAtA[i] = 0x12 + } + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryGrantAuthorizationResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGrantAuthorizationResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGrantAuthorizationResponse) 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 = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryGrantAuthorizationsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGrantAuthorizationsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGrantAuthorizationsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Granter))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryGrantAuthorizationsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryGrantAuthorizationsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryGrantAuthorizationsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Grants) > 0 { + for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size := m.TotalGrantAmount.Size() + i -= size + if _, err := m.TotalGrantAmount.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) @@ -14660,6 +15340,10 @@ func (m *TrimmedSpotLimitOrder) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -14911,6 +15595,10 @@ func (m *TrimmedDerivativeLimitOrder) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -15973,6 +16661,10 @@ func (m *TrimmedDerivativeConditionalOrder) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -16015,50 +16707,138 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Size() (n int) { return n } -func sovQuery(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *QueryActiveStakeGrantRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n } -func sozQuery(x uint64) (n int) { - return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *QueryActiveStakeGrantResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Grant != nil { + l = m.Grant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + if m.EffectiveGrant != nil { + l = m.EffectiveGrant.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n } -func (m *Subaccount) Unmarshal(dAtA []byte) 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: Subaccount: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Subaccount: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Trader", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } + +func (m *QueryGrantAuthorizationRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + l = len(m.Grantee) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Amount.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryGrantAuthorizationsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Granter) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryGrantAuthorizationsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.TotalGrantAmount.Size() + n += 1 + l + sovQuery(uint64(l)) + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.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) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Subaccount) Unmarshal(dAtA []byte) 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: Subaccount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Subaccount: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Trader", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } if iNdEx >= l { return io.ErrUnexpectedEOF } @@ -18797,7 +19577,7 @@ func (m *QuerySpotOrderbookRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.LimitCumulativeNotional = &v if err := m.LimitCumulativeNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -18833,7 +19613,7 @@ func (m *QuerySpotOrderbookRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.LimitCumulativeQuantity = &v if err := m.LimitCumulativeQuantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20147,6 +20927,38 @@ func (m *TrimmedSpotLimitOrder) Unmarshal(dAtA []byte) error { } m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -20477,7 +21289,7 @@ func (m *QuerySpotMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MidPrice = &v if err := m.MidPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20513,7 +21325,7 @@ func (m *QuerySpotMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestBuyPrice = &v if err := m.BestBuyPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20549,7 +21361,7 @@ func (m *QuerySpotMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestSellPrice = &v if err := m.BestSellPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20717,7 +21529,7 @@ func (m *QueryDerivativeMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.MidPrice = &v if err := m.MidPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20753,7 +21565,7 @@ func (m *QueryDerivativeMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestBuyPrice = &v if err := m.BestBuyPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20789,7 +21601,7 @@ func (m *QueryDerivativeMidPriceAndTOBResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.BestSellPrice = &v if err := m.BestSellPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -20926,7 +21738,7 @@ func (m *QueryDerivativeOrderbookRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.LimitCumulativeNotional = &v if err := m.LimitCumulativeNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -21281,7 +22093,7 @@ func (m *QueryTraderSpotOrdersToCancelUpToAmountRequest) Unmarshal(dAtA []byte) if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.ReferencePrice = &v if err := m.ReferencePrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -21484,7 +22296,7 @@ func (m *QueryTraderDerivativeOrdersToCancelUpToAmountRequest) Unmarshal(dAtA [] if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.ReferencePrice = &v if err := m.ReferencePrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -21956,6 +22768,38 @@ func (m *TrimmedDerivativeLimitOrder) Unmarshal(dAtA []byte) error { } m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -25403,7 +26247,7 @@ func (m *QueryTradeRewardPointsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.AccountTradeRewardPoints = append(m.AccountTradeRewardPoints, v) if err := m.AccountTradeRewardPoints[len(m.AccountTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -25677,7 +26521,7 @@ func (m *QueryTradeRewardCampaignResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.PendingTotalTradeRewardPoints = append(m.PendingTotalTradeRewardPoints, v) if err := m.PendingTotalTradeRewardPoints[len(m.PendingTotalTradeRewardPoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -28219,7 +29063,7 @@ func (m *QueryMarketVolatilityResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Volatility = &v if err := m.Volatility.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -28833,6 +29677,38 @@ func (m *TrimmedDerivativeConditionalOrder) Unmarshal(dAtA []byte) error { } m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) @@ -29104,6 +29980,608 @@ func (m *QueryMarketAtomicExecutionFeeMultiplierResponse) Unmarshal(dAtA []byte) } return nil } +func (m *QueryActiveStakeGrantRequest) Unmarshal(dAtA []byte) 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: QueryActiveStakeGrantRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActiveStakeGrantRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = 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 *QueryActiveStakeGrantResponse) Unmarshal(dAtA []byte) 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: QueryActiveStakeGrantResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryActiveStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grant", 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 m.Grant == nil { + m.Grant = &ActiveGrant{} + } + if err := m.Grant.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveGrant", 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 m.EffectiveGrant == nil { + m.EffectiveGrant = &EffectiveGrant{} + } + if err := m.EffectiveGrant.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 *QueryGrantAuthorizationRequest) Unmarshal(dAtA []byte) 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: QueryGrantAuthorizationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grantee", 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.Grantee = 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 *QueryGrantAuthorizationResponse) Unmarshal(dAtA []byte) 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: QueryGrantAuthorizationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var 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 + } + if err := m.Amount.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 *QueryGrantAuthorizationsRequest) Unmarshal(dAtA []byte) 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: QueryGrantAuthorizationsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Granter", 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.Granter = 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 *QueryGrantAuthorizationsResponse) Unmarshal(dAtA []byte) 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: QueryGrantAuthorizationsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryGrantAuthorizationsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalGrantAmount", 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 + } + if err := m.TotalGrantAmount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Grants", 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.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-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 skipQuery(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/exchange/types/spot_orders.go b/chain/exchange/types/spot_orders.go index 29147bd2..ac5b243e 100644 --- a/chain/exchange/types/spot_orders.go +++ b/chain/exchange/types/spot_orders.go @@ -4,6 +4,7 @@ import ( "strconv" "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" ethmath "github.com/ethereum/go-ethereum/common/math" @@ -11,7 +12,7 @@ import ( "golang.org/x/crypto/sha3" ) -func (o *SpotOrder) ToSpotMarketOrder(sender sdk.AccAddress, balanceHold sdk.Dec, orderHash common.Hash) *SpotMarketOrder { +func (o *SpotOrder) ToSpotMarketOrder(sender sdk.AccAddress, balanceHold math.LegacyDec, orderHash common.Hash) *SpotMarketOrder { if o.OrderInfo.FeeRecipient == "" { o.OrderInfo.FeeRecipient = sender.String() } @@ -85,7 +86,7 @@ func (o *SpotMarketOrder) FeeRecipient() common.Address { return o.OrderInfo.FeeRecipientAddress() } -func (o *SpotOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize sdk.Dec) error { +func (o *SpotOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize math.LegacyDec) error { if BreachesMinimumTickSize(o.OrderInfo.Price, minPriceTickSize) { return errors.Wrapf(ErrInvalidPrice, "price %s must be a multiple of the minimum price tick size %s", o.OrderInfo.Price.String(), minPriceTickSize.String()) } @@ -95,6 +96,14 @@ func (o *SpotOrder) CheckTickSize(minPriceTickSize, minQuantityTickSize sdk.Dec) return nil } +func (o *SpotOrder) CheckNotional(minNotional math.LegacyDec) error { + orderNotional := o.GetQuantity().Mul(o.GetPrice()) + if !minNotional.IsNil() && orderNotional.LT(minNotional) { + return errors.Wrapf(ErrInvalidNotional, "order notional (%s) is less than the minimum notional for the market (%s)", orderNotional.String(), minNotional.String()) + } + return nil +} + func (o *SpotOrder) IsBuy() bool { return o.OrderType.IsBuy() } @@ -127,16 +136,14 @@ func (o *SpotMarketOrder) IsConditional() bool { return o.OrderType.IsConditional() } -func (m *SpotLimitOrder) GetUnfilledNotional() sdk.Dec { +func (m *SpotLimitOrder) GetUnfilledNotional() math.LegacyDec { return m.Fillable.Mul(m.OrderInfo.Price) } -func (m *SpotLimitOrder) GetUnfilledFeeAmount(fee sdk.Dec) sdk.Dec { +func (m *SpotLimitOrder) GetUnfilledFeeAmount(fee math.LegacyDec) math.LegacyDec { return m.GetUnfilledNotional().Mul(fee) } -func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (sdk.Dec, string) { - var denom string - var balanceHold sdk.Dec +func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (balanceHold math.LegacyDec, denom string) { if m.IsBuy() { denom = market.QuoteDenom if m.OrderType.IsPostOnly() { @@ -158,16 +165,14 @@ func (m *SpotOrder) GetBalanceHoldAndMarginDenom(market *SpotMarket) (sdk.Dec, s return balanceHold, denom } -func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (sdk.Dec, string) { - var denom string - var balanceHold sdk.Dec +func (m *SpotLimitOrder) GetUnfilledMarginHoldAndMarginDenom(market *SpotMarket, isTransient bool) (balanceHold math.LegacyDec, denom string) { if m.IsBuy() { - var tradeFeeRate sdk.Dec + var tradeFeeRate math.LegacyDec if isTransient { tradeFeeRate = market.TakerFeeRate } else { - tradeFeeRate = sdk.MaxDec(sdk.ZeroDec(), market.MakerFeeRate) + tradeFeeRate = math.LegacyMaxDec(math.LegacyZeroDec(), market.MakerFeeRate) } // for a resting limit buy in the ETH/USDT market, denom is USDT and fillable amount is BalanceHold is (1 + makerFee)*(price * quantity) since (takerFee - makerFee) is already refunded @@ -195,14 +200,14 @@ func (m *SpotOrder) GetMarginDenom(market *SpotMarket) string { } // GetMarketOrderBalanceHold calculates the balance hold for the market order. -func (m *SpotOrder) GetMarketOrderBalanceHold(feeRate, bestPrice sdk.Dec) sdk.Dec { - var balanceHold sdk.Dec +func (m *SpotOrder) GetMarketOrderBalanceHold(feeRate, bestPrice math.LegacyDec) math.LegacyDec { + var balanceHold math.LegacyDec if m.IsBuy() { // required margin for best sell price = bestPrice * quantity * (1 + feeRate) - requiredMarginForBestPrice := bestPrice.Mul(m.OrderInfo.Quantity).Mul(sdk.OneDec().Add(feeRate)) - requiredMarginForWorstPrice := m.OrderInfo.Price.Mul(m.OrderInfo.Quantity).Mul(sdk.OneDec().Add(feeRate)) - requiredMargin := sdk.MaxDec(requiredMarginForBestPrice, requiredMarginForWorstPrice) + requiredMarginForBestPrice := bestPrice.Mul(m.OrderInfo.Quantity).Mul(math.LegacyOneDec().Add(feeRate)) + requiredMarginForWorstPrice := m.OrderInfo.Price.Mul(m.OrderInfo.Quantity).Mul(math.LegacyOneDec().Add(feeRate)) + requiredMargin := math.LegacyMaxDec(requiredMarginForBestPrice, requiredMarginForWorstPrice) balanceHold = requiredMargin } else { // required margin for market sells just equals the quantity being sold @@ -218,6 +223,7 @@ func (m *SpotLimitOrder) ToTrimmed() *TrimmedSpotLimitOrder { Fillable: m.Fillable, IsBuy: m.IsBuy(), OrderHash: common.BytesToHash(m.OrderHash).Hex(), + Cid: m.Cid(), } } diff --git a/chain/exchange/types/stake_grants.go b/chain/exchange/types/stake_grants.go new file mode 100644 index 00000000..f2dc959f --- /dev/null +++ b/chain/exchange/types/stake_grants.go @@ -0,0 +1,21 @@ +package types + +import ( + "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func NewActiveGrant(granter sdk.AccAddress, amount math.Int) *ActiveGrant { + return &ActiveGrant{ + Granter: granter.String(), + Amount: amount, + } +} + +func NewEffectiveGrant(granter string, amount math.Int, isValid bool) *EffectiveGrant { + return &EffectiveGrant{ + Granter: granter, + NetGrantedStake: amount, + IsValid: isValid, + } +} diff --git a/chain/exchange/types/subaccount.go b/chain/exchange/types/subaccount.go index 930b2f65..fb59981b 100644 --- a/chain/exchange/types/subaccount.go +++ b/chain/exchange/types/subaccount.go @@ -3,15 +3,15 @@ package types import ( "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) func NewSubaccountOrderbookMetadata() *SubaccountOrderbookMetadata { return &SubaccountOrderbookMetadata{ VanillaLimitOrderCount: 0, ReduceOnlyLimitOrderCount: 0, - AggregateReduceOnlyQuantity: sdk.ZeroDec(), - AggregateVanillaQuantity: sdk.ZeroDec(), + AggregateReduceOnlyQuantity: math.LegacyZeroDec(), + AggregateVanillaQuantity: math.LegacyZeroDec(), VanillaConditionalOrderCount: 0, ReduceOnlyConditionalOrderCount: 0, } @@ -26,6 +26,7 @@ func NewSubaccountOrder(o *DerivativeLimitOrder) *SubaccountOrder { Price: o.OrderInfo.Price, Quantity: o.Fillable, IsReduceOnly: o.IsReduceOnly(), + Cid: o.Cid(), } } diff --git a/chain/exchange/types/trading_rewards.go b/chain/exchange/types/trading_rewards.go index 8233e48f..9353574d 100644 --- a/chain/exchange/types/trading_rewards.go +++ b/chain/exchange/types/trading_rewards.go @@ -3,10 +3,10 @@ package types import ( "sort" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) -type TradingRewardPoints map[string]sdk.Dec +type TradingRewardPoints map[string]math.LegacyDec func NewTradingRewardPoints() TradingRewardPoints { tradingRewardPoints := make(TradingRewardPoints) @@ -23,7 +23,7 @@ func (l TradingRewardPoints) GetSortedAccountKeys() []string { return accountKeys } -func (l TradingRewardPoints) AddPointsForAddress(addr string, newPoints sdk.Dec) { +func (l TradingRewardPoints) AddPointsForAddress(addr string, newPoints math.LegacyDec) { if !newPoints.IsPositive() { return } diff --git a/chain/exchange/types/tx.pb.go b/chain/exchange/types/tx.pb.go index e57b3cd5..4a78fb8f 100644 --- a/chain/exchange/types/tx.pb.go +++ b/chain/exchange/types/tx.pb.go @@ -5,12 +5,14 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types1 "github.com/InjectiveLabs/sdk-go/chain/oracle/types" _ "github.com/cosmos/cosmos-proto" 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/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/cosmos-sdk/x/distribution/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -34,6 +36,178 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package +type MsgUpdateSpotMarket struct { + // current admin address of the associated market + Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"` + // id of the market to be updated + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // (optional) updated ticker value + NewTicker string `protobuf:"bytes,3,opt,name=new_ticker,json=newTicker,proto3" json:"new_ticker,omitempty"` + // (optional) updated min price tick size value + NewMinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=new_min_price_tick_size,json=newMinPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_price_tick_size"` + // (optional) updated min quantity tick size value + NewMinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=new_min_quantity_tick_size,json=newMinQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_quantity_tick_size"` + // (optional) updated min notional + NewMinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=new_min_notional,json=newMinNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_notional"` +} + +func (m *MsgUpdateSpotMarket) Reset() { *m = MsgUpdateSpotMarket{} } +func (m *MsgUpdateSpotMarket) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateSpotMarket) ProtoMessage() {} +func (*MsgUpdateSpotMarket) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{0} +} +func (m *MsgUpdateSpotMarket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateSpotMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateSpotMarket.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateSpotMarket) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateSpotMarket.Merge(m, src) +} +func (m *MsgUpdateSpotMarket) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateSpotMarket) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateSpotMarket.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateSpotMarket proto.InternalMessageInfo + +type MsgUpdateSpotMarketResponse struct { +} + +func (m *MsgUpdateSpotMarketResponse) Reset() { *m = MsgUpdateSpotMarketResponse{} } +func (m *MsgUpdateSpotMarketResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateSpotMarketResponse) ProtoMessage() {} +func (*MsgUpdateSpotMarketResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{1} +} +func (m *MsgUpdateSpotMarketResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateSpotMarketResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateSpotMarketResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateSpotMarketResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateSpotMarketResponse.Merge(m, src) +} +func (m *MsgUpdateSpotMarketResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateSpotMarketResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateSpotMarketResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateSpotMarketResponse proto.InternalMessageInfo + +type MsgUpdateDerivativeMarket struct { + // current admin address of the associated market + Admin string `protobuf:"bytes,1,opt,name=admin,proto3" json:"admin,omitempty"` + // id of the market to be updated + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // (optional) updated value for ticker + NewTicker string `protobuf:"bytes,3,opt,name=new_ticker,json=newTicker,proto3" json:"new_ticker,omitempty"` + // (optional) updated value for min_price_tick_size + NewMinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=new_min_price_tick_size,json=newMinPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_price_tick_size"` + // (optional) updated value min_quantity_tick_size + NewMinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=new_min_quantity_tick_size,json=newMinQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_quantity_tick_size"` + // (optional) updated min notional + NewMinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=new_min_notional,json=newMinNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_min_notional"` + // (optional) updated value for initial_margin_ratio + NewInitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=new_initial_margin_ratio,json=newInitialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_initial_margin_ratio"` + // (optional) updated value for maintenance_margin_ratio + NewMaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=new_maintenance_margin_ratio,json=newMaintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"new_maintenance_margin_ratio"` +} + +func (m *MsgUpdateDerivativeMarket) Reset() { *m = MsgUpdateDerivativeMarket{} } +func (m *MsgUpdateDerivativeMarket) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateDerivativeMarket) ProtoMessage() {} +func (*MsgUpdateDerivativeMarket) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{2} +} +func (m *MsgUpdateDerivativeMarket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateDerivativeMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateDerivativeMarket.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateDerivativeMarket) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateDerivativeMarket.Merge(m, src) +} +func (m *MsgUpdateDerivativeMarket) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateDerivativeMarket) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateDerivativeMarket.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateDerivativeMarket proto.InternalMessageInfo + +type MsgUpdateDerivativeMarketResponse struct { +} + +func (m *MsgUpdateDerivativeMarketResponse) Reset() { *m = MsgUpdateDerivativeMarketResponse{} } +func (m *MsgUpdateDerivativeMarketResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateDerivativeMarketResponse) ProtoMessage() {} +func (*MsgUpdateDerivativeMarketResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{3} +} +func (m *MsgUpdateDerivativeMarketResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateDerivativeMarketResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateDerivativeMarketResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateDerivativeMarketResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateDerivativeMarketResponse.Merge(m, src) +} +func (m *MsgUpdateDerivativeMarketResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateDerivativeMarketResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateDerivativeMarketResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateDerivativeMarketResponse proto.InternalMessageInfo + type MsgUpdateParams struct { // authority is the address of the governance account. Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` @@ -47,7 +221,7 @@ func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParams) ProtoMessage() {} func (*MsgUpdateParams) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{0} + return fileDescriptor_bd45b74cb6d81462, []int{4} } func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -97,7 +271,7 @@ func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParamsResponse) ProtoMessage() {} func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{1} + return fileDescriptor_bd45b74cb6d81462, []int{5} } func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -140,7 +314,7 @@ func (m *MsgDeposit) Reset() { *m = MsgDeposit{} } func (m *MsgDeposit) String() string { return proto.CompactTextString(m) } func (*MsgDeposit) ProtoMessage() {} func (*MsgDeposit) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{2} + return fileDescriptor_bd45b74cb6d81462, []int{6} } func (m *MsgDeposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -177,7 +351,7 @@ func (m *MsgDepositResponse) Reset() { *m = MsgDepositResponse{} } func (m *MsgDepositResponse) String() string { return proto.CompactTextString(m) } func (*MsgDepositResponse) ProtoMessage() {} func (*MsgDepositResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{3} + return fileDescriptor_bd45b74cb6d81462, []int{7} } func (m *MsgDepositResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -219,7 +393,7 @@ func (m *MsgWithdraw) Reset() { *m = MsgWithdraw{} } func (m *MsgWithdraw) String() string { return proto.CompactTextString(m) } func (*MsgWithdraw) ProtoMessage() {} func (*MsgWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{4} + return fileDescriptor_bd45b74cb6d81462, []int{8} } func (m *MsgWithdraw) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -256,7 +430,7 @@ func (m *MsgWithdrawResponse) Reset() { *m = MsgWithdrawResponse{} } func (m *MsgWithdrawResponse) String() string { return proto.CompactTextString(m) } func (*MsgWithdrawResponse) ProtoMessage() {} func (*MsgWithdrawResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{5} + return fileDescriptor_bd45b74cb6d81462, []int{9} } func (m *MsgWithdrawResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -296,7 +470,7 @@ func (m *MsgCreateSpotLimitOrder) Reset() { *m = MsgCreateSpotLimitOrder func (m *MsgCreateSpotLimitOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotLimitOrder) ProtoMessage() {} func (*MsgCreateSpotLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{6} + return fileDescriptor_bd45b74cb6d81462, []int{10} } func (m *MsgCreateSpotLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -329,13 +503,14 @@ var xxx_messageInfo_MsgCreateSpotLimitOrder proto.InternalMessageInfo // type. type MsgCreateSpotLimitOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateSpotLimitOrderResponse) Reset() { *m = MsgCreateSpotLimitOrderResponse{} } func (m *MsgCreateSpotLimitOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotLimitOrderResponse) ProtoMessage() {} func (*MsgCreateSpotLimitOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{7} + return fileDescriptor_bd45b74cb6d81462, []int{11} } func (m *MsgCreateSpotLimitOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -375,7 +550,7 @@ func (m *MsgBatchCreateSpotLimitOrders) Reset() { *m = MsgBatchCreateSpo func (m *MsgBatchCreateSpotLimitOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCreateSpotLimitOrders) ProtoMessage() {} func (*MsgBatchCreateSpotLimitOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{8} + return fileDescriptor_bd45b74cb6d81462, []int{12} } func (m *MsgBatchCreateSpotLimitOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -407,14 +582,16 @@ var xxx_messageInfo_MsgBatchCreateSpotLimitOrders proto.InternalMessageInfo // MsgBatchCreateSpotLimitOrdersResponse defines the // Msg/BatchCreateSpotLimitOrders response type. type MsgBatchCreateSpotLimitOrdersResponse struct { - OrderHashes []string `protobuf:"bytes,1,rep,name=order_hashes,json=orderHashes,proto3" json:"order_hashes,omitempty"` + OrderHashes []string `protobuf:"bytes,1,rep,name=order_hashes,json=orderHashes,proto3" json:"order_hashes,omitempty"` + CreatedOrdersCids []string `protobuf:"bytes,2,rep,name=created_orders_cids,json=createdOrdersCids,proto3" json:"created_orders_cids,omitempty"` + FailedOrdersCids []string `protobuf:"bytes,3,rep,name=failed_orders_cids,json=failedOrdersCids,proto3" json:"failed_orders_cids,omitempty"` } func (m *MsgBatchCreateSpotLimitOrdersResponse) Reset() { *m = MsgBatchCreateSpotLimitOrdersResponse{} } func (m *MsgBatchCreateSpotLimitOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCreateSpotLimitOrdersResponse) ProtoMessage() {} func (*MsgBatchCreateSpotLimitOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{9} + return fileDescriptor_bd45b74cb6d81462, []int{13} } func (m *MsgBatchCreateSpotLimitOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -454,17 +631,20 @@ type MsgInstantSpotMarketLaunch struct { // type of coin to use as the quote currency QuoteDenom string `protobuf:"bytes,4,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` // min_price_tick_size defines the minimum tick size of the order's price - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` } func (m *MsgInstantSpotMarketLaunch) Reset() { *m = MsgInstantSpotMarketLaunch{} } func (m *MsgInstantSpotMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgInstantSpotMarketLaunch) ProtoMessage() {} func (*MsgInstantSpotMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{10} + return fileDescriptor_bd45b74cb6d81462, []int{14} } func (m *MsgInstantSpotMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -502,7 +682,7 @@ func (m *MsgInstantSpotMarketLaunchResponse) Reset() { *m = MsgInstantSp func (m *MsgInstantSpotMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgInstantSpotMarketLaunchResponse) ProtoMessage() {} func (*MsgInstantSpotMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{11} + return fileDescriptor_bd45b74cb6d81462, []int{15} } func (m *MsgInstantSpotMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -549,29 +729,32 @@ type MsgInstantPerpetualMarketLaunch struct { OracleType types1.OracleType `protobuf:"varint,7,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` // maker_fee_rate defines the trade fee rate for makers on the perpetual // market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the trade fee rate for takers on the perpetual // market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // initial_margin_ratio defines the initial margin ratio for the perpetual // market - InitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio"` + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` // maintenance_margin_ratio defines the maintenance margin ratio for the // perpetual market - MaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio"` + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` } func (m *MsgInstantPerpetualMarketLaunch) Reset() { *m = MsgInstantPerpetualMarketLaunch{} } func (m *MsgInstantPerpetualMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgInstantPerpetualMarketLaunch) ProtoMessage() {} func (*MsgInstantPerpetualMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{12} + return fileDescriptor_bd45b74cb6d81462, []int{16} } func (m *MsgInstantPerpetualMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -611,7 +794,7 @@ func (m *MsgInstantPerpetualMarketLaunchResponse) Reset() { func (m *MsgInstantPerpetualMarketLaunchResponse) String() string { return proto.CompactTextString(m) } func (*MsgInstantPerpetualMarketLaunchResponse) ProtoMessage() {} func (*MsgInstantPerpetualMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{13} + return fileDescriptor_bd45b74cb6d81462, []int{17} } func (m *MsgInstantPerpetualMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -656,10 +839,10 @@ type MsgInstantBinaryOptionsMarketLaunch struct { OracleScaleFactor uint32 `protobuf:"varint,6,opt,name=oracle_scale_factor,json=oracleScaleFactor,proto3" json:"oracle_scale_factor,omitempty"` // maker_fee_rate defines the trade fee rate for makers on the perpetual // market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the trade fee rate for takers on the perpetual // market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // expiration timestamp ExpirationTimestamp int64 `protobuf:"varint,9,opt,name=expiration_timestamp,json=expirationTimestamp,proto3" json:"expiration_timestamp,omitempty"` // expiration timestamp @@ -670,17 +853,20 @@ type MsgInstantBinaryOptionsMarketLaunch struct { QuoteDenom string `protobuf:"bytes,12,opt,name=quote_denom,json=quoteDenom,proto3" json:"quote_denom,omitempty"` // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` } func (m *MsgInstantBinaryOptionsMarketLaunch) Reset() { *m = MsgInstantBinaryOptionsMarketLaunch{} } func (m *MsgInstantBinaryOptionsMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgInstantBinaryOptionsMarketLaunch) ProtoMessage() {} func (*MsgInstantBinaryOptionsMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{14} + return fileDescriptor_bd45b74cb6d81462, []int{18} } func (m *MsgInstantBinaryOptionsMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -722,7 +908,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) String() string { } func (*MsgInstantBinaryOptionsMarketLaunchResponse) ProtoMessage() {} func (*MsgInstantBinaryOptionsMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{15} + return fileDescriptor_bd45b74cb6d81462, []int{19} } func (m *MsgInstantBinaryOptionsMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -771,29 +957,32 @@ type MsgInstantExpiryFuturesMarketLaunch struct { Expiry int64 `protobuf:"varint,8,opt,name=expiry,proto3" json:"expiry,omitempty"` // maker_fee_rate defines the trade fee rate for makers on the expiry futures // market - MakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maker_fee_rate"` + MakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=maker_fee_rate,json=makerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maker_fee_rate"` // taker_fee_rate defines the trade fee rate for takers on the expiry futures // market - TakerFeeRate github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,10,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"taker_fee_rate"` + TakerFeeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,10,opt,name=taker_fee_rate,json=takerFeeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"taker_fee_rate"` // initial_margin_ratio defines the initial margin ratio for the derivative // market - InitialMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"initial_margin_ratio"` + InitialMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=initial_margin_ratio,json=initialMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"initial_margin_ratio"` // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market - MaintenanceMarginRatio github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"maintenance_margin_ratio"` + MaintenanceMarginRatio cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=maintenance_margin_ratio,json=maintenanceMarginRatio,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"maintenance_margin_ratio"` // min_price_tick_size defines the minimum tick size of the order's price and // margin - MinPriceTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price_tick_size"` + MinPriceTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=min_price_tick_size,json=minPriceTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price_tick_size"` // min_quantity_tick_size defines the minimum tick size of the order's // quantity - MinQuantityTickSize github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_quantity_tick_size"` + MinQuantityTickSize cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_quantity_tick_size"` + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + MinNotional cosmossdk_io_math.LegacyDec `protobuf:"bytes,15,opt,name=min_notional,json=minNotional,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_notional"` } func (m *MsgInstantExpiryFuturesMarketLaunch) Reset() { *m = MsgInstantExpiryFuturesMarketLaunch{} } func (m *MsgInstantExpiryFuturesMarketLaunch) String() string { return proto.CompactTextString(m) } func (*MsgInstantExpiryFuturesMarketLaunch) ProtoMessage() {} func (*MsgInstantExpiryFuturesMarketLaunch) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{16} + return fileDescriptor_bd45b74cb6d81462, []int{20} } func (m *MsgInstantExpiryFuturesMarketLaunch) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -835,7 +1024,7 @@ func (m *MsgInstantExpiryFuturesMarketLaunchResponse) String() string { } func (*MsgInstantExpiryFuturesMarketLaunchResponse) ProtoMessage() {} func (*MsgInstantExpiryFuturesMarketLaunchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{17} + return fileDescriptor_bd45b74cb6d81462, []int{21} } func (m *MsgInstantExpiryFuturesMarketLaunchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -875,7 +1064,7 @@ func (m *MsgCreateSpotMarketOrder) Reset() { *m = MsgCreateSpotMarketOrd func (m *MsgCreateSpotMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotMarketOrder) ProtoMessage() {} func (*MsgCreateSpotMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{18} + return fileDescriptor_bd45b74cb6d81462, []int{22} } func (m *MsgCreateSpotMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -909,13 +1098,14 @@ var xxx_messageInfo_MsgCreateSpotMarketOrder proto.InternalMessageInfo type MsgCreateSpotMarketOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Results *SpotMarketOrderResults `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateSpotMarketOrderResponse) Reset() { *m = MsgCreateSpotMarketOrderResponse{} } func (m *MsgCreateSpotMarketOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateSpotMarketOrderResponse) ProtoMessage() {} func (*MsgCreateSpotMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{19} + return fileDescriptor_bd45b74cb6d81462, []int{23} } func (m *MsgCreateSpotMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -945,16 +1135,16 @@ func (m *MsgCreateSpotMarketOrderResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgCreateSpotMarketOrderResponse proto.InternalMessageInfo type SpotMarketOrderResults struct { - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` } func (m *SpotMarketOrderResults) Reset() { *m = SpotMarketOrderResults{} } func (m *SpotMarketOrderResults) String() string { return proto.CompactTextString(m) } func (*SpotMarketOrderResults) ProtoMessage() {} func (*SpotMarketOrderResults) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{20} + return fileDescriptor_bd45b74cb6d81462, []int{24} } func (m *SpotMarketOrderResults) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -993,7 +1183,7 @@ func (m *MsgCreateDerivativeLimitOrder) Reset() { *m = MsgCreateDerivati func (m *MsgCreateDerivativeLimitOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeLimitOrder) ProtoMessage() {} func (*MsgCreateDerivativeLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{21} + return fileDescriptor_bd45b74cb6d81462, []int{25} } func (m *MsgCreateDerivativeLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1026,13 +1216,14 @@ var xxx_messageInfo_MsgCreateDerivativeLimitOrder proto.InternalMessageInfo // Msg/CreateDerivativeMarketOrder response type. type MsgCreateDerivativeLimitOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateDerivativeLimitOrderResponse) Reset() { *m = MsgCreateDerivativeLimitOrderResponse{} } func (m *MsgCreateDerivativeLimitOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeLimitOrderResponse) ProtoMessage() {} func (*MsgCreateDerivativeLimitOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{22} + return fileDescriptor_bd45b74cb6d81462, []int{26} } func (m *MsgCreateDerivativeLimitOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1071,7 +1262,7 @@ func (m *MsgCreateBinaryOptionsLimitOrder) Reset() { *m = MsgCreateBinar func (m *MsgCreateBinaryOptionsLimitOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsLimitOrder) ProtoMessage() {} func (*MsgCreateBinaryOptionsLimitOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{23} + return fileDescriptor_bd45b74cb6d81462, []int{27} } func (m *MsgCreateBinaryOptionsLimitOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1104,6 +1295,7 @@ var xxx_messageInfo_MsgCreateBinaryOptionsLimitOrder proto.InternalMessageInfo // Msg/CreateBinaryOptionsLimitOrder response type. type MsgCreateBinaryOptionsLimitOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateBinaryOptionsLimitOrderResponse) Reset() { @@ -1112,7 +1304,7 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) Reset() { func (m *MsgCreateBinaryOptionsLimitOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsLimitOrderResponse) ProtoMessage() {} func (*MsgCreateBinaryOptionsLimitOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{24} + return fileDescriptor_bd45b74cb6d81462, []int{28} } func (m *MsgCreateBinaryOptionsLimitOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1151,7 +1343,7 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Reset() { *m = MsgBatchCre func (m *MsgBatchCreateDerivativeLimitOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCreateDerivativeLimitOrders) ProtoMessage() {} func (*MsgBatchCreateDerivativeLimitOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{25} + return fileDescriptor_bd45b74cb6d81462, []int{29} } func (m *MsgBatchCreateDerivativeLimitOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1183,7 +1375,9 @@ var xxx_messageInfo_MsgBatchCreateDerivativeLimitOrders proto.InternalMessageInf // MsgBatchCreateDerivativeLimitOrdersResponse defines the // Msg/BatchCreateDerivativeLimitOrders response type. type MsgBatchCreateDerivativeLimitOrdersResponse struct { - OrderHashes []string `protobuf:"bytes,1,rep,name=order_hashes,json=orderHashes,proto3" json:"order_hashes,omitempty"` + OrderHashes []string `protobuf:"bytes,1,rep,name=order_hashes,json=orderHashes,proto3" json:"order_hashes,omitempty"` + CreatedOrdersCids []string `protobuf:"bytes,2,rep,name=created_orders_cids,json=createdOrdersCids,proto3" json:"created_orders_cids,omitempty"` + FailedOrdersCids []string `protobuf:"bytes,3,rep,name=failed_orders_cids,json=failedOrdersCids,proto3" json:"failed_orders_cids,omitempty"` } func (m *MsgBatchCreateDerivativeLimitOrdersResponse) Reset() { @@ -1194,7 +1388,7 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) String() string { } func (*MsgBatchCreateDerivativeLimitOrdersResponse) ProtoMessage() {} func (*MsgBatchCreateDerivativeLimitOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{26} + return fileDescriptor_bd45b74cb6d81462, []int{30} } func (m *MsgBatchCreateDerivativeLimitOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1236,7 +1430,7 @@ func (m *MsgCancelSpotOrder) Reset() { *m = MsgCancelSpotOrder{} } func (m *MsgCancelSpotOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelSpotOrder) ProtoMessage() {} func (*MsgCancelSpotOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{27} + return fileDescriptor_bd45b74cb6d81462, []int{31} } func (m *MsgCancelSpotOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1273,7 +1467,7 @@ func (m *MsgCancelSpotOrderResponse) Reset() { *m = MsgCancelSpotOrderRe func (m *MsgCancelSpotOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelSpotOrderResponse) ProtoMessage() {} func (*MsgCancelSpotOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{28} + return fileDescriptor_bd45b74cb6d81462, []int{32} } func (m *MsgCancelSpotOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1312,7 +1506,7 @@ func (m *MsgBatchCancelSpotOrders) Reset() { *m = MsgBatchCancelSpotOrde func (m *MsgBatchCancelSpotOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelSpotOrders) ProtoMessage() {} func (*MsgBatchCancelSpotOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{29} + return fileDescriptor_bd45b74cb6d81462, []int{33} } func (m *MsgBatchCancelSpotOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1351,7 +1545,7 @@ func (m *MsgBatchCancelSpotOrdersResponse) Reset() { *m = MsgBatchCancel func (m *MsgBatchCancelSpotOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelSpotOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelSpotOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{30} + return fileDescriptor_bd45b74cb6d81462, []int{34} } func (m *MsgBatchCancelSpotOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1391,7 +1585,7 @@ func (m *MsgBatchCancelBinaryOptionsOrders) Reset() { *m = MsgBatchCance func (m *MsgBatchCancelBinaryOptionsOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelBinaryOptionsOrders) ProtoMessage() {} func (*MsgBatchCancelBinaryOptionsOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{31} + return fileDescriptor_bd45b74cb6d81462, []int{35} } func (m *MsgBatchCancelBinaryOptionsOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1434,7 +1628,7 @@ func (m *MsgBatchCancelBinaryOptionsOrdersResponse) String() string { } func (*MsgBatchCancelBinaryOptionsOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelBinaryOptionsOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{32} + return fileDescriptor_bd45b74cb6d81462, []int{36} } func (m *MsgBatchCancelBinaryOptionsOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1484,7 +1678,7 @@ func (m *MsgBatchUpdateOrders) Reset() { *m = MsgBatchUpdateOrders{} } func (m *MsgBatchUpdateOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchUpdateOrders) ProtoMessage() {} func (*MsgBatchUpdateOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{33} + return fileDescriptor_bd45b74cb6d81462, []int{37} } func (m *MsgBatchUpdateOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1515,19 +1709,25 @@ var xxx_messageInfo_MsgBatchUpdateOrders proto.InternalMessageInfo // MsgBatchUpdateOrdersResponse defines the Msg/BatchUpdateOrders response type. type MsgBatchUpdateOrdersResponse struct { - SpotCancelSuccess []bool `protobuf:"varint,1,rep,packed,name=spot_cancel_success,json=spotCancelSuccess,proto3" json:"spot_cancel_success,omitempty"` - DerivativeCancelSuccess []bool `protobuf:"varint,2,rep,packed,name=derivative_cancel_success,json=derivativeCancelSuccess,proto3" json:"derivative_cancel_success,omitempty"` - SpotOrderHashes []string `protobuf:"bytes,3,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` - DerivativeOrderHashes []string `protobuf:"bytes,4,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` - BinaryOptionsCancelSuccess []bool `protobuf:"varint,5,rep,packed,name=binary_options_cancel_success,json=binaryOptionsCancelSuccess,proto3" json:"binary_options_cancel_success,omitempty"` - BinaryOptionsOrderHashes []string `protobuf:"bytes,6,rep,name=binary_options_order_hashes,json=binaryOptionsOrderHashes,proto3" json:"binary_options_order_hashes,omitempty"` + SpotCancelSuccess []bool `protobuf:"varint,1,rep,packed,name=spot_cancel_success,json=spotCancelSuccess,proto3" json:"spot_cancel_success,omitempty"` + DerivativeCancelSuccess []bool `protobuf:"varint,2,rep,packed,name=derivative_cancel_success,json=derivativeCancelSuccess,proto3" json:"derivative_cancel_success,omitempty"` + SpotOrderHashes []string `protobuf:"bytes,3,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` + DerivativeOrderHashes []string `protobuf:"bytes,4,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` + BinaryOptionsCancelSuccess []bool `protobuf:"varint,5,rep,packed,name=binary_options_cancel_success,json=binaryOptionsCancelSuccess,proto3" json:"binary_options_cancel_success,omitempty"` + BinaryOptionsOrderHashes []string `protobuf:"bytes,6,rep,name=binary_options_order_hashes,json=binaryOptionsOrderHashes,proto3" json:"binary_options_order_hashes,omitempty"` + CreatedSpotOrdersCids []string `protobuf:"bytes,7,rep,name=created_spot_orders_cids,json=createdSpotOrdersCids,proto3" json:"created_spot_orders_cids,omitempty"` + FailedSpotOrdersCids []string `protobuf:"bytes,8,rep,name=failed_spot_orders_cids,json=failedSpotOrdersCids,proto3" json:"failed_spot_orders_cids,omitempty"` + CreatedDerivativeOrdersCids []string `protobuf:"bytes,9,rep,name=created_derivative_orders_cids,json=createdDerivativeOrdersCids,proto3" json:"created_derivative_orders_cids,omitempty"` + FailedDerivativeOrdersCids []string `protobuf:"bytes,10,rep,name=failed_derivative_orders_cids,json=failedDerivativeOrdersCids,proto3" json:"failed_derivative_orders_cids,omitempty"` + CreatedBinaryOptionsOrdersCids []string `protobuf:"bytes,11,rep,name=created_binary_options_orders_cids,json=createdBinaryOptionsOrdersCids,proto3" json:"created_binary_options_orders_cids,omitempty"` + FailedBinaryOptionsOrdersCids []string `protobuf:"bytes,12,rep,name=failed_binary_options_orders_cids,json=failedBinaryOptionsOrdersCids,proto3" json:"failed_binary_options_orders_cids,omitempty"` } func (m *MsgBatchUpdateOrdersResponse) Reset() { *m = MsgBatchUpdateOrdersResponse{} } func (m *MsgBatchUpdateOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchUpdateOrdersResponse) ProtoMessage() {} func (*MsgBatchUpdateOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{34} + return fileDescriptor_bd45b74cb6d81462, []int{38} } func (m *MsgBatchUpdateOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1566,7 +1766,7 @@ func (m *MsgCreateDerivativeMarketOrder) Reset() { *m = MsgCreateDerivat func (m *MsgCreateDerivativeMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeMarketOrder) ProtoMessage() {} func (*MsgCreateDerivativeMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{35} + return fileDescriptor_bd45b74cb6d81462, []int{39} } func (m *MsgCreateDerivativeMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1600,6 +1800,7 @@ var xxx_messageInfo_MsgCreateDerivativeMarketOrder proto.InternalMessageInfo type MsgCreateDerivativeMarketOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Results *DerivativeMarketOrderResults `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateDerivativeMarketOrderResponse) Reset() { @@ -1608,7 +1809,7 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Reset() { func (m *MsgCreateDerivativeMarketOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCreateDerivativeMarketOrderResponse) ProtoMessage() {} func (*MsgCreateDerivativeMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{36} + return fileDescriptor_bd45b74cb6d81462, []int{40} } func (m *MsgCreateDerivativeMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1638,18 +1839,18 @@ func (m *MsgCreateDerivativeMarketOrderResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgCreateDerivativeMarketOrderResponse proto.InternalMessageInfo type DerivativeMarketOrderResults struct { - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` - PositionDelta PositionDelta `protobuf:"bytes,4,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta"` - Payout github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=payout,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"payout"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` + PositionDelta PositionDelta `protobuf:"bytes,4,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta"` + Payout cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=payout,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"payout"` } func (m *DerivativeMarketOrderResults) Reset() { *m = DerivativeMarketOrderResults{} } func (m *DerivativeMarketOrderResults) String() string { return proto.CompactTextString(m) } func (*DerivativeMarketOrderResults) ProtoMessage() {} func (*DerivativeMarketOrderResults) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{37} + return fileDescriptor_bd45b74cb6d81462, []int{41} } func (m *DerivativeMarketOrderResults) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1688,7 +1889,7 @@ func (m *MsgCreateBinaryOptionsMarketOrder) Reset() { *m = MsgCreateBina func (m *MsgCreateBinaryOptionsMarketOrder) String() string { return proto.CompactTextString(m) } func (*MsgCreateBinaryOptionsMarketOrder) ProtoMessage() {} func (*MsgCreateBinaryOptionsMarketOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{38} + return fileDescriptor_bd45b74cb6d81462, []int{42} } func (m *MsgCreateBinaryOptionsMarketOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1722,6 +1923,7 @@ var xxx_messageInfo_MsgCreateBinaryOptionsMarketOrder proto.InternalMessageInfo type MsgCreateBinaryOptionsMarketOrderResponse struct { OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` Results *DerivativeMarketOrderResults `protobuf:"bytes,2,opt,name=results,proto3" json:"results,omitempty"` + Cid string `protobuf:"bytes,3,opt,name=cid,proto3" json:"cid,omitempty"` } func (m *MsgCreateBinaryOptionsMarketOrderResponse) Reset() { @@ -1732,7 +1934,7 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) String() string { } func (*MsgCreateBinaryOptionsMarketOrderResponse) ProtoMessage() {} func (*MsgCreateBinaryOptionsMarketOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{39} + return fileDescriptor_bd45b74cb6d81462, []int{43} } func (m *MsgCreateBinaryOptionsMarketOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1775,7 +1977,7 @@ func (m *MsgCancelDerivativeOrder) Reset() { *m = MsgCancelDerivativeOrd func (m *MsgCancelDerivativeOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelDerivativeOrder) ProtoMessage() {} func (*MsgCancelDerivativeOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{40} + return fileDescriptor_bd45b74cb6d81462, []int{44} } func (m *MsgCancelDerivativeOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1813,7 +2015,7 @@ func (m *MsgCancelDerivativeOrderResponse) Reset() { *m = MsgCancelDeriv func (m *MsgCancelDerivativeOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelDerivativeOrderResponse) ProtoMessage() {} func (*MsgCancelDerivativeOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{41} + return fileDescriptor_bd45b74cb6d81462, []int{45} } func (m *MsgCancelDerivativeOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1857,7 +2059,7 @@ func (m *MsgCancelBinaryOptionsOrder) Reset() { *m = MsgCancelBinaryOpti func (m *MsgCancelBinaryOptionsOrder) String() string { return proto.CompactTextString(m) } func (*MsgCancelBinaryOptionsOrder) ProtoMessage() {} func (*MsgCancelBinaryOptionsOrder) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{42} + return fileDescriptor_bd45b74cb6d81462, []int{46} } func (m *MsgCancelBinaryOptionsOrder) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1895,7 +2097,7 @@ func (m *MsgCancelBinaryOptionsOrderResponse) Reset() { *m = MsgCancelBi func (m *MsgCancelBinaryOptionsOrderResponse) String() string { return proto.CompactTextString(m) } func (*MsgCancelBinaryOptionsOrderResponse) ProtoMessage() {} func (*MsgCancelBinaryOptionsOrderResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{43} + return fileDescriptor_bd45b74cb6d81462, []int{47} } func (m *MsgCancelBinaryOptionsOrderResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1936,7 +2138,7 @@ func (m *OrderData) Reset() { *m = OrderData{} } func (m *OrderData) String() string { return proto.CompactTextString(m) } func (*OrderData) ProtoMessage() {} func (*OrderData) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{44} + return fileDescriptor_bd45b74cb6d81462, []int{48} } func (m *OrderData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2011,7 +2213,7 @@ func (m *MsgBatchCancelDerivativeOrders) Reset() { *m = MsgBatchCancelDe func (m *MsgBatchCancelDerivativeOrders) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelDerivativeOrders) ProtoMessage() {} func (*MsgBatchCancelDerivativeOrders) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{45} + return fileDescriptor_bd45b74cb6d81462, []int{49} } func (m *MsgBatchCancelDerivativeOrders) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2052,7 +2254,7 @@ func (m *MsgBatchCancelDerivativeOrdersResponse) Reset() { func (m *MsgBatchCancelDerivativeOrdersResponse) String() string { return proto.CompactTextString(m) } func (*MsgBatchCancelDerivativeOrdersResponse) ProtoMessage() {} func (*MsgBatchCancelDerivativeOrdersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{46} + return fileDescriptor_bd45b74cb6d81462, []int{50} } func (m *MsgBatchCancelDerivativeOrdersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2093,7 +2295,7 @@ func (m *MsgSubaccountTransfer) Reset() { *m = MsgSubaccountTransfer{} } func (m *MsgSubaccountTransfer) String() string { return proto.CompactTextString(m) } func (*MsgSubaccountTransfer) ProtoMessage() {} func (*MsgSubaccountTransfer) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{47} + return fileDescriptor_bd45b74cb6d81462, []int{51} } func (m *MsgSubaccountTransfer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2159,7 +2361,7 @@ func (m *MsgSubaccountTransferResponse) Reset() { *m = MsgSubaccountTran func (m *MsgSubaccountTransferResponse) String() string { return proto.CompactTextString(m) } func (*MsgSubaccountTransferResponse) ProtoMessage() {} func (*MsgSubaccountTransferResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{48} + return fileDescriptor_bd45b74cb6d81462, []int{52} } func (m *MsgSubaccountTransferResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2200,7 +2402,7 @@ func (m *MsgExternalTransfer) Reset() { *m = MsgExternalTransfer{} } func (m *MsgExternalTransfer) String() string { return proto.CompactTextString(m) } func (*MsgExternalTransfer) ProtoMessage() {} func (*MsgExternalTransfer) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{49} + return fileDescriptor_bd45b74cb6d81462, []int{53} } func (m *MsgExternalTransfer) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2265,7 +2467,7 @@ func (m *MsgExternalTransferResponse) Reset() { *m = MsgExternalTransfer func (m *MsgExternalTransferResponse) String() string { return proto.CompactTextString(m) } func (*MsgExternalTransferResponse) ProtoMessage() {} func (*MsgExternalTransferResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{50} + return fileDescriptor_bd45b74cb6d81462, []int{54} } func (m *MsgExternalTransferResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2307,7 +2509,7 @@ func (m *MsgLiquidatePosition) Reset() { *m = MsgLiquidatePosition{} } func (m *MsgLiquidatePosition) String() string { return proto.CompactTextString(m) } func (*MsgLiquidatePosition) ProtoMessage() {} func (*MsgLiquidatePosition) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{51} + return fileDescriptor_bd45b74cb6d81462, []int{55} } func (m *MsgLiquidatePosition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2372,7 +2574,7 @@ func (m *MsgLiquidatePositionResponse) Reset() { *m = MsgLiquidatePositi func (m *MsgLiquidatePositionResponse) String() string { return proto.CompactTextString(m) } func (*MsgLiquidatePositionResponse) ProtoMessage() {} func (*MsgLiquidatePositionResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{52} + return fileDescriptor_bd45b74cb6d81462, []int{56} } func (m *MsgLiquidatePositionResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2412,7 +2614,7 @@ func (m *MsgEmergencySettleMarket) Reset() { *m = MsgEmergencySettleMark func (m *MsgEmergencySettleMarket) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarket) ProtoMessage() {} func (*MsgEmergencySettleMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{53} + return fileDescriptor_bd45b74cb6d81462, []int{57} } func (m *MsgEmergencySettleMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2471,7 +2673,7 @@ func (m *MsgEmergencySettleMarketResponse) Reset() { *m = MsgEmergencySe func (m *MsgEmergencySettleMarketResponse) String() string { return proto.CompactTextString(m) } func (*MsgEmergencySettleMarketResponse) ProtoMessage() {} func (*MsgEmergencySettleMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{54} + return fileDescriptor_bd45b74cb6d81462, []int{58} } func (m *MsgEmergencySettleMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2507,14 +2709,14 @@ type MsgIncreasePositionMargin struct { DestinationSubaccountId string `protobuf:"bytes,3,opt,name=destination_subaccount_id,json=destinationSubaccountId,proto3" json:"destination_subaccount_id,omitempty"` MarketId string `protobuf:"bytes,4,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // amount defines the amount of margin to add to the position - Amount github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"amount"` + Amount cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=amount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"amount"` } func (m *MsgIncreasePositionMargin) Reset() { *m = MsgIncreasePositionMargin{} } func (m *MsgIncreasePositionMargin) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMargin) ProtoMessage() {} func (*MsgIncreasePositionMargin) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{55} + return fileDescriptor_bd45b74cb6d81462, []int{59} } func (m *MsgIncreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2580,7 +2782,7 @@ func (m *MsgIncreasePositionMarginResponse) Reset() { *m = MsgIncreasePo func (m *MsgIncreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } func (*MsgIncreasePositionMarginResponse) ProtoMessage() {} func (*MsgIncreasePositionMarginResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{56} + return fileDescriptor_bd45b74cb6d81462, []int{60} } func (m *MsgIncreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2609,30 +2811,28 @@ func (m *MsgIncreasePositionMarginResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgIncreasePositionMarginResponse proto.InternalMessageInfo -// MsgPrivilegedExecuteContract defines the Msg/Exec message type -type MsgPrivilegedExecuteContract struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - // funds defines the user's bank coins used to fund the execution (e.g. - // 100inj). - Funds string `protobuf:"bytes,2,opt,name=funds,proto3" json:"funds,omitempty"` - // contract_address defines the contract address to execute - ContractAddress string `protobuf:"bytes,3,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` - // data defines the call data used when executing the contract - Data string `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +// A Cosmos-SDK MsgDecreasePositionMargin +type MsgDecreasePositionMargin struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + SourceSubaccountId string `protobuf:"bytes,2,opt,name=source_subaccount_id,json=sourceSubaccountId,proto3" json:"source_subaccount_id,omitempty"` + DestinationSubaccountId string `protobuf:"bytes,3,opt,name=destination_subaccount_id,json=destinationSubaccountId,proto3" json:"destination_subaccount_id,omitempty"` + MarketId string `protobuf:"bytes,4,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // amount defines the amount of margin to withdraw from the position + Amount cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=amount,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"amount"` } -func (m *MsgPrivilegedExecuteContract) Reset() { *m = MsgPrivilegedExecuteContract{} } -func (m *MsgPrivilegedExecuteContract) String() string { return proto.CompactTextString(m) } -func (*MsgPrivilegedExecuteContract) ProtoMessage() {} -func (*MsgPrivilegedExecuteContract) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{57} +func (m *MsgDecreasePositionMargin) Reset() { *m = MsgDecreasePositionMargin{} } +func (m *MsgDecreasePositionMargin) String() string { return proto.CompactTextString(m) } +func (*MsgDecreasePositionMargin) ProtoMessage() {} +func (*MsgDecreasePositionMargin) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{61} } -func (m *MsgPrivilegedExecuteContract) XXX_Unmarshal(b []byte) error { +func (m *MsgDecreasePositionMargin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgPrivilegedExecuteContract) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgDecreasePositionMargin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgPrivilegedExecuteContract.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgDecreasePositionMargin.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -2642,36 +2842,147 @@ func (m *MsgPrivilegedExecuteContract) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *MsgPrivilegedExecuteContract) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgPrivilegedExecuteContract.Merge(m, src) +func (m *MsgDecreasePositionMargin) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDecreasePositionMargin.Merge(m, src) } -func (m *MsgPrivilegedExecuteContract) XXX_Size() int { +func (m *MsgDecreasePositionMargin) XXX_Size() int { return m.Size() } -func (m *MsgPrivilegedExecuteContract) XXX_DiscardUnknown() { - xxx_messageInfo_MsgPrivilegedExecuteContract.DiscardUnknown(m) +func (m *MsgDecreasePositionMargin) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDecreasePositionMargin.DiscardUnknown(m) } -var xxx_messageInfo_MsgPrivilegedExecuteContract proto.InternalMessageInfo +var xxx_messageInfo_MsgDecreasePositionMargin proto.InternalMessageInfo -// MsgPrivilegedExecuteContractResponse defines the Msg/Exec response type. -type MsgPrivilegedExecuteContractResponse struct { - FundsDiff github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=funds_diff,json=fundsDiff,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"funds_diff"` +func (m *MsgDecreasePositionMargin) GetSender() string { + if m != nil { + return m.Sender + } + return "" } -func (m *MsgPrivilegedExecuteContractResponse) Reset() { *m = MsgPrivilegedExecuteContractResponse{} } -func (m *MsgPrivilegedExecuteContractResponse) String() string { return proto.CompactTextString(m) } -func (*MsgPrivilegedExecuteContractResponse) ProtoMessage() {} -func (*MsgPrivilegedExecuteContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{58} +func (m *MsgDecreasePositionMargin) GetSourceSubaccountId() string { + if m != nil { + return m.SourceSubaccountId + } + return "" } -func (m *MsgPrivilegedExecuteContractResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) + +func (m *MsgDecreasePositionMargin) GetDestinationSubaccountId() string { + if m != nil { + return m.DestinationSubaccountId + } + return "" } -func (m *MsgPrivilegedExecuteContractResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgPrivilegedExecuteContractResponse.Marshal(b, m, deterministic) - } else { + +func (m *MsgDecreasePositionMargin) GetMarketId() string { + if m != nil { + return m.MarketId + } + return "" +} + +// MsgDecreasePositionMarginResponse defines the Msg/MsgDecreasePositionMargin +// response type. +type MsgDecreasePositionMarginResponse struct { +} + +func (m *MsgDecreasePositionMarginResponse) Reset() { *m = MsgDecreasePositionMarginResponse{} } +func (m *MsgDecreasePositionMarginResponse) String() string { return proto.CompactTextString(m) } +func (*MsgDecreasePositionMarginResponse) ProtoMessage() {} +func (*MsgDecreasePositionMarginResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{62} +} +func (m *MsgDecreasePositionMarginResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDecreasePositionMarginResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDecreasePositionMarginResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDecreasePositionMarginResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDecreasePositionMarginResponse.Merge(m, src) +} +func (m *MsgDecreasePositionMarginResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgDecreasePositionMarginResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDecreasePositionMarginResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDecreasePositionMarginResponse proto.InternalMessageInfo + +// MsgPrivilegedExecuteContract defines the Msg/Exec message type +type MsgPrivilegedExecuteContract struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + // funds defines the user's bank coins used to fund the execution (e.g. + // 100inj). + Funds string `protobuf:"bytes,2,opt,name=funds,proto3" json:"funds,omitempty"` + // contract_address defines the contract address to execute + ContractAddress string `protobuf:"bytes,3,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // data defines the call data used when executing the contract + Data string `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` +} + +func (m *MsgPrivilegedExecuteContract) Reset() { *m = MsgPrivilegedExecuteContract{} } +func (m *MsgPrivilegedExecuteContract) String() string { return proto.CompactTextString(m) } +func (*MsgPrivilegedExecuteContract) ProtoMessage() {} +func (*MsgPrivilegedExecuteContract) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{63} +} +func (m *MsgPrivilegedExecuteContract) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgPrivilegedExecuteContract) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgPrivilegedExecuteContract.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgPrivilegedExecuteContract) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgPrivilegedExecuteContract.Merge(m, src) +} +func (m *MsgPrivilegedExecuteContract) XXX_Size() int { + return m.Size() +} +func (m *MsgPrivilegedExecuteContract) XXX_DiscardUnknown() { + xxx_messageInfo_MsgPrivilegedExecuteContract.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgPrivilegedExecuteContract proto.InternalMessageInfo + +// MsgPrivilegedExecuteContractResponse defines the Msg/Exec response type. +type MsgPrivilegedExecuteContractResponse struct { + FundsDiff github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=funds_diff,json=fundsDiff,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"funds_diff"` +} + +func (m *MsgPrivilegedExecuteContractResponse) Reset() { *m = MsgPrivilegedExecuteContractResponse{} } +func (m *MsgPrivilegedExecuteContractResponse) String() string { return proto.CompactTextString(m) } +func (*MsgPrivilegedExecuteContractResponse) ProtoMessage() {} +func (*MsgPrivilegedExecuteContractResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{64} +} +func (m *MsgPrivilegedExecuteContractResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgPrivilegedExecuteContractResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgPrivilegedExecuteContractResponse.Marshal(b, m, deterministic) + } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) if err != nil { @@ -2701,7 +3012,7 @@ func (m *MsgRewardsOptOut) Reset() { *m = MsgRewardsOptOut{} } func (m *MsgRewardsOptOut) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOut) ProtoMessage() {} func (*MsgRewardsOptOut) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{59} + return fileDescriptor_bd45b74cb6d81462, []int{65} } func (m *MsgRewardsOptOut) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2730,13 +3041,6 @@ func (m *MsgRewardsOptOut) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRewardsOptOut proto.InternalMessageInfo -func (m *MsgRewardsOptOut) GetSender() string { - if m != nil { - return m.Sender - } - return "" -} - // MsgRewardsOptOutResponse defines the Msg/RewardsOptOut response type. type MsgRewardsOptOutResponse struct { } @@ -2745,7 +3049,7 @@ func (m *MsgRewardsOptOutResponse) Reset() { *m = MsgRewardsOptOutRespon func (m *MsgRewardsOptOutResponse) String() string { return proto.CompactTextString(m) } func (*MsgRewardsOptOutResponse) ProtoMessage() {} func (*MsgRewardsOptOutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{60} + return fileDescriptor_bd45b74cb6d81462, []int{66} } func (m *MsgRewardsOptOutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2785,7 +3089,7 @@ func (m *MsgReclaimLockedFunds) Reset() { *m = MsgReclaimLockedFunds{} } func (m *MsgReclaimLockedFunds) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFunds) ProtoMessage() {} func (*MsgReclaimLockedFunds) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{61} + return fileDescriptor_bd45b74cb6d81462, []int{67} } func (m *MsgReclaimLockedFunds) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2844,7 +3148,7 @@ func (m *MsgReclaimLockedFundsResponse) Reset() { *m = MsgReclaimLockedF func (m *MsgReclaimLockedFundsResponse) String() string { return proto.CompactTextString(m) } func (*MsgReclaimLockedFundsResponse) ProtoMessage() {} func (*MsgReclaimLockedFundsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{62} + return fileDescriptor_bd45b74cb6d81462, []int{68} } func (m *MsgReclaimLockedFundsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2886,7 +3190,7 @@ func (m *MsgSignData) Reset() { *m = MsgSignData{} } func (m *MsgSignData) String() string { return proto.CompactTextString(m) } func (*MsgSignData) ProtoMessage() {} func (*MsgSignData) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{63} + return fileDescriptor_bd45b74cb6d81462, []int{69} } func (m *MsgSignData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2939,7 +3243,7 @@ func (m *MsgSignDoc) Reset() { *m = MsgSignDoc{} } func (m *MsgSignDoc) String() string { return proto.CompactTextString(m) } func (*MsgSignDoc) ProtoMessage() {} func (*MsgSignDoc) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{64} + return fileDescriptor_bd45b74cb6d81462, []int{70} } func (m *MsgSignDoc) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2988,7 +3292,7 @@ type MsgAdminUpdateBinaryOptionsMarket struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // new price at which market will be settled - SettlementPrice *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=settlement_price,json=settlementPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"settlement_price,omitempty"` + SettlementPrice *cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=settlement_price,json=settlementPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"settlement_price,omitempty"` // expiration timestamp ExpirationTimestamp int64 `protobuf:"varint,4,opt,name=expiration_timestamp,json=expirationTimestamp,proto3" json:"expiration_timestamp,omitempty"` // expiration timestamp @@ -3001,7 +3305,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Reset() { *m = MsgAdminUpdat func (m *MsgAdminUpdateBinaryOptionsMarket) String() string { return proto.CompactTextString(m) } func (*MsgAdminUpdateBinaryOptionsMarket) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarket) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{65} + return fileDescriptor_bd45b74cb6d81462, []int{71} } func (m *MsgAdminUpdateBinaryOptionsMarket) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3078,7 +3382,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) String() string { } func (*MsgAdminUpdateBinaryOptionsMarketResponse) ProtoMessage() {} func (*MsgAdminUpdateBinaryOptionsMarketResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_bd45b74cb6d81462, []int{66} + return fileDescriptor_bd45b74cb6d81462, []int{72} } func (m *MsgAdminUpdateBinaryOptionsMarketResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3107,7 +3411,189 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgAdminUpdateBinaryOptionsMarketResponse proto.InternalMessageInfo +// MsgAuthorizeStakeGrants grants stakes to grantees. +type MsgAuthorizeStakeGrants struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Grants []*GrantAuthorization `protobuf:"bytes,2,rep,name=grants,proto3" json:"grants,omitempty"` +} + +func (m *MsgAuthorizeStakeGrants) Reset() { *m = MsgAuthorizeStakeGrants{} } +func (m *MsgAuthorizeStakeGrants) String() string { return proto.CompactTextString(m) } +func (*MsgAuthorizeStakeGrants) ProtoMessage() {} +func (*MsgAuthorizeStakeGrants) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{73} +} +func (m *MsgAuthorizeStakeGrants) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgAuthorizeStakeGrants) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgAuthorizeStakeGrants.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgAuthorizeStakeGrants) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgAuthorizeStakeGrants.Merge(m, src) +} +func (m *MsgAuthorizeStakeGrants) XXX_Size() int { + return m.Size() +} +func (m *MsgAuthorizeStakeGrants) XXX_DiscardUnknown() { + xxx_messageInfo_MsgAuthorizeStakeGrants.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgAuthorizeStakeGrants proto.InternalMessageInfo + +func (m *MsgAuthorizeStakeGrants) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgAuthorizeStakeGrants) GetGrants() []*GrantAuthorization { + if m != nil { + return m.Grants + } + return nil +} + +type MsgAuthorizeStakeGrantsResponse struct { +} + +func (m *MsgAuthorizeStakeGrantsResponse) Reset() { *m = MsgAuthorizeStakeGrantsResponse{} } +func (m *MsgAuthorizeStakeGrantsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgAuthorizeStakeGrantsResponse) ProtoMessage() {} +func (*MsgAuthorizeStakeGrantsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{74} +} +func (m *MsgAuthorizeStakeGrantsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgAuthorizeStakeGrantsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgAuthorizeStakeGrantsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgAuthorizeStakeGrantsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgAuthorizeStakeGrantsResponse.Merge(m, src) +} +func (m *MsgAuthorizeStakeGrantsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgAuthorizeStakeGrantsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgAuthorizeStakeGrantsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgAuthorizeStakeGrantsResponse proto.InternalMessageInfo + +// MsgActivateStakeGrant allows a grantee to activate a stake grant. +type MsgActivateStakeGrant struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Granter string `protobuf:"bytes,2,opt,name=granter,proto3" json:"granter,omitempty"` +} + +func (m *MsgActivateStakeGrant) Reset() { *m = MsgActivateStakeGrant{} } +func (m *MsgActivateStakeGrant) String() string { return proto.CompactTextString(m) } +func (*MsgActivateStakeGrant) ProtoMessage() {} +func (*MsgActivateStakeGrant) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{75} +} +func (m *MsgActivateStakeGrant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgActivateStakeGrant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgActivateStakeGrant.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgActivateStakeGrant) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgActivateStakeGrant.Merge(m, src) +} +func (m *MsgActivateStakeGrant) XXX_Size() int { + return m.Size() +} +func (m *MsgActivateStakeGrant) XXX_DiscardUnknown() { + xxx_messageInfo_MsgActivateStakeGrant.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgActivateStakeGrant proto.InternalMessageInfo + +func (m *MsgActivateStakeGrant) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgActivateStakeGrant) GetGranter() string { + if m != nil { + return m.Granter + } + return "" +} + +type MsgActivateStakeGrantResponse struct { +} + +func (m *MsgActivateStakeGrantResponse) Reset() { *m = MsgActivateStakeGrantResponse{} } +func (m *MsgActivateStakeGrantResponse) String() string { return proto.CompactTextString(m) } +func (*MsgActivateStakeGrantResponse) ProtoMessage() {} +func (*MsgActivateStakeGrantResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_bd45b74cb6d81462, []int{76} +} +func (m *MsgActivateStakeGrantResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgActivateStakeGrantResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgActivateStakeGrantResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgActivateStakeGrantResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgActivateStakeGrantResponse.Merge(m, src) +} +func (m *MsgActivateStakeGrantResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgActivateStakeGrantResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgActivateStakeGrantResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgActivateStakeGrantResponse proto.InternalMessageInfo + func init() { + proto.RegisterType((*MsgUpdateSpotMarket)(nil), "injective.exchange.v1beta1.MsgUpdateSpotMarket") + proto.RegisterType((*MsgUpdateSpotMarketResponse)(nil), "injective.exchange.v1beta1.MsgUpdateSpotMarketResponse") + proto.RegisterType((*MsgUpdateDerivativeMarket)(nil), "injective.exchange.v1beta1.MsgUpdateDerivativeMarket") + proto.RegisterType((*MsgUpdateDerivativeMarketResponse)(nil), "injective.exchange.v1beta1.MsgUpdateDerivativeMarketResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.exchange.v1beta1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.exchange.v1beta1.MsgUpdateParamsResponse") proto.RegisterType((*MsgDeposit)(nil), "injective.exchange.v1beta1.MsgDeposit") @@ -3165,6 +3651,8 @@ func init() { proto.RegisterType((*MsgEmergencySettleMarketResponse)(nil), "injective.exchange.v1beta1.MsgEmergencySettleMarketResponse") proto.RegisterType((*MsgIncreasePositionMargin)(nil), "injective.exchange.v1beta1.MsgIncreasePositionMargin") proto.RegisterType((*MsgIncreasePositionMarginResponse)(nil), "injective.exchange.v1beta1.MsgIncreasePositionMarginResponse") + proto.RegisterType((*MsgDecreasePositionMargin)(nil), "injective.exchange.v1beta1.MsgDecreasePositionMargin") + proto.RegisterType((*MsgDecreasePositionMarginResponse)(nil), "injective.exchange.v1beta1.MsgDecreasePositionMarginResponse") proto.RegisterType((*MsgPrivilegedExecuteContract)(nil), "injective.exchange.v1beta1.MsgPrivilegedExecuteContract") proto.RegisterType((*MsgPrivilegedExecuteContractResponse)(nil), "injective.exchange.v1beta1.MsgPrivilegedExecuteContractResponse") proto.RegisterType((*MsgRewardsOptOut)(nil), "injective.exchange.v1beta1.MsgRewardsOptOut") @@ -3175,6 +3663,10 @@ func init() { proto.RegisterType((*MsgSignDoc)(nil), "injective.exchange.v1beta1.MsgSignDoc") proto.RegisterType((*MsgAdminUpdateBinaryOptionsMarket)(nil), "injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarket") proto.RegisterType((*MsgAdminUpdateBinaryOptionsMarketResponse)(nil), "injective.exchange.v1beta1.MsgAdminUpdateBinaryOptionsMarketResponse") + proto.RegisterType((*MsgAuthorizeStakeGrants)(nil), "injective.exchange.v1beta1.MsgAuthorizeStakeGrants") + proto.RegisterType((*MsgAuthorizeStakeGrantsResponse)(nil), "injective.exchange.v1beta1.MsgAuthorizeStakeGrantsResponse") + proto.RegisterType((*MsgActivateStakeGrant)(nil), "injective.exchange.v1beta1.MsgActivateStakeGrant") + proto.RegisterType((*MsgActivateStakeGrantResponse)(nil), "injective.exchange.v1beta1.MsgActivateStakeGrantResponse") } func init() { @@ -3182,205 +3674,254 @@ func init() { } var fileDescriptor_bd45b74cb6d81462 = []byte{ - // 3167 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x1c, 0xdf, 0x6f, 0x1c, 0x47, - 0x39, 0xeb, 0x1f, 0x67, 0xdf, 0x67, 0x3b, 0x4e, 0xd6, 0x8e, 0x73, 0xb9, 0x24, 0x76, 0x6a, 0x37, - 0x8d, 0xd3, 0x10, 0xbb, 0x49, 0x43, 0xda, 0xa6, 0x84, 0xc4, 0x3f, 0xe2, 0x92, 0x36, 0x26, 0xee, - 0x9e, 0xf9, 0x55, 0x09, 0x8e, 0xf1, 0xee, 0xf8, 0xbc, 0xf5, 0xdd, 0xee, 0x65, 0x67, 0xce, 0x8d, - 0x2b, 0x24, 0xa0, 0xe2, 0xa1, 0x94, 0x1f, 0xa2, 0x50, 0x54, 0x28, 0x14, 0x2a, 0x21, 0x81, 0x04, - 0x08, 0xf5, 0x81, 0x47, 0x9e, 0x51, 0x1f, 0x2b, 0x24, 0xa4, 0x8a, 0x87, 0x00, 0x8d, 0x10, 0x55, - 0xff, 0x00, 0x1e, 0xfa, 0x80, 0xd0, 0xce, 0xcc, 0xce, 0xed, 0xee, 0xed, 0xaf, 0x3b, 0xd7, 0x49, - 0xc8, 0x53, 0x6e, 0x67, 0xbe, 0xef, 0x9b, 0xef, 0xf7, 0xcc, 0xf7, 0xcd, 0xc4, 0x30, 0x65, 0x5a, - 0xcf, 0x63, 0x9d, 0x9a, 0x5b, 0x78, 0x16, 0xdf, 0xd4, 0x37, 0x90, 0x55, 0xc1, 0xb3, 0x5b, 0x67, - 0xd6, 0x30, 0x45, 0x67, 0x66, 0xe9, 0xcd, 0x99, 0xba, 0x63, 0x53, 0x5b, 0x2d, 0x4a, 0xa0, 0x19, - 0x0f, 0x68, 0x46, 0x00, 0x15, 0xc7, 0x75, 0x9b, 0xd4, 0x6c, 0x32, 0xbb, 0x86, 0x48, 0x13, 0x53, - 0xb7, 0x4d, 0x8b, 0xe3, 0x16, 0x67, 0xc4, 0xbc, 0x61, 0x12, 0xea, 0x98, 0x6b, 0x0d, 0x6a, 0xda, - 0x96, 0x84, 0xf3, 0x0f, 0x0a, 0xf8, 0x83, 0x02, 0xbe, 0x46, 0x2a, 0xb3, 0x5b, 0x67, 0xdc, 0x7f, - 0xc4, 0xc4, 0x21, 0x3e, 0x51, 0x66, 0x5f, 0xb3, 0xfc, 0x43, 0x4c, 0x8d, 0x56, 0xec, 0x8a, 0xcd, - 0xc7, 0xdd, 0x5f, 0x62, 0xf4, 0x64, 0x82, 0x68, 0x52, 0x0c, 0x0e, 0x7a, 0xbc, 0x09, 0x6a, 0x3b, - 0x48, 0xaf, 0x36, 0x01, 0xf9, 0x27, 0x07, 0x9b, 0xfc, 0x99, 0x02, 0xc3, 0xcb, 0xa4, 0xf2, 0xb9, - 0xba, 0x81, 0x28, 0x5e, 0x41, 0x0e, 0xaa, 0x11, 0xf5, 0x3c, 0xe4, 0x51, 0x83, 0x6e, 0xd8, 0x8e, - 0x49, 0xb7, 0x0b, 0xca, 0x31, 0x65, 0x3a, 0x3f, 0x5f, 0xf8, 0xcb, 0x1f, 0x4f, 0x8f, 0x0a, 0x06, - 0xe7, 0x0c, 0xc3, 0xc1, 0x84, 0x94, 0xa8, 0x63, 0x5a, 0x15, 0xad, 0x09, 0xaa, 0x5e, 0x86, 0x5c, - 0x9d, 0x51, 0x28, 0x74, 0x1d, 0x53, 0xa6, 0x07, 0xce, 0x4e, 0xce, 0xc4, 0x2b, 0x79, 0x86, 0xaf, - 0x35, 0xdf, 0xf3, 0xce, 0xad, 0x89, 0x3d, 0x9a, 0xc0, 0xbb, 0xb0, 0xf7, 0xa5, 0x7f, 0xbf, 0xfd, - 0x70, 0x93, 0xe2, 0xe4, 0x21, 0x38, 0x18, 0x62, 0x4e, 0xc3, 0xa4, 0x6e, 0x5b, 0x04, 0x4f, 0xbe, - 0xae, 0x00, 0x2c, 0x93, 0xca, 0x22, 0xae, 0xdb, 0xc4, 0xa4, 0xea, 0x18, 0xe4, 0x08, 0xb6, 0x0c, - 0xec, 0x70, 0x86, 0x35, 0xf1, 0xa5, 0x4e, 0xc1, 0x10, 0x69, 0xac, 0x21, 0x5d, 0xb7, 0x1b, 0x16, - 0x2d, 0x9b, 0x06, 0x63, 0x2d, 0xaf, 0x0d, 0x36, 0x07, 0xaf, 0x1a, 0xea, 0x63, 0x90, 0x43, 0x35, - 0xf7, 0x77, 0xa1, 0x9b, 0x31, 0x7e, 0x48, 0x58, 0x78, 0xc6, 0xf5, 0x00, 0xc9, 0xf1, 0x82, 0x6d, - 0x5a, 0x1e, 0xbf, 0x1c, 0xfc, 0xc2, 0xc8, 0xcb, 0x6f, 0x4d, 0xec, 0xf9, 0xe0, 0xad, 0x89, 0x3d, - 0x2e, 0xdf, 0x62, 0xc9, 0xc9, 0x51, 0x50, 0x9b, 0x8c, 0x49, 0x7e, 0x7f, 0xa2, 0xc0, 0xc0, 0x32, - 0xa9, 0x7c, 0xc1, 0xa4, 0x1b, 0x86, 0x83, 0x5e, 0xb8, 0x97, 0x18, 0x3e, 0x00, 0x23, 0x3e, 0xce, - 0x24, 0xc7, 0xdf, 0x56, 0x98, 0xf6, 0x17, 0x1c, 0x8c, 0x28, 0x2e, 0xd5, 0x6d, 0x7a, 0xcd, 0xac, - 0x99, 0xf4, 0xba, 0xe3, 0x72, 0x19, 0xc7, 0xfd, 0x1c, 0xf4, 0xda, 0x2e, 0x80, 0xf0, 0x80, 0xe3, - 0x49, 0x1e, 0xe0, 0x92, 0x64, 0xd4, 0x04, 0x8f, 0x1c, 0x33, 0x9a, 0xc5, 0xa7, 0x61, 0x22, 0x86, - 0x15, 0x8f, 0x5d, 0xf5, 0x28, 0x00, 0x23, 0x50, 0xde, 0x40, 0x64, 0x43, 0xb0, 0x95, 0x67, 0x23, - 0x9f, 0x41, 0x64, 0xe3, 0x42, 0xbf, 0x47, 0x76, 0xf2, 0x55, 0x05, 0x8e, 0x2e, 0x93, 0xca, 0x3c, - 0xa2, 0xfa, 0x46, 0x14, 0x45, 0x12, 0x2b, 0xdd, 0x02, 0xe4, 0x18, 0x41, 0xd7, 0xc1, 0xbb, 0xdb, - 0x15, 0x4f, 0xa0, 0x46, 0xcb, 0xb7, 0x0a, 0xc7, 0x13, 0x59, 0x92, 0x52, 0x3e, 0x00, 0x83, 0x4d, - 0x29, 0x31, 0x29, 0x28, 0xc7, 0xba, 0xa7, 0xf3, 0xda, 0x80, 0x94, 0x13, 0x13, 0x9f, 0xa4, 0xff, - 0xea, 0x82, 0xe2, 0x32, 0xa9, 0x5c, 0xb5, 0x08, 0x45, 0x16, 0x75, 0x49, 0x2e, 0x23, 0x67, 0x13, - 0xd3, 0x6b, 0xa8, 0x61, 0xe9, 0x1b, 0xb1, 0x62, 0x8e, 0x41, 0x8e, 0x9a, 0xfa, 0xa6, 0xb0, 0x62, - 0x5e, 0x13, 0x5f, 0xae, 0x86, 0x5d, 0xff, 0x2a, 0x1b, 0xd8, 0xb2, 0x6b, 0xcc, 0xf3, 0xf2, 0x5a, - 0xde, 0x1d, 0x59, 0x74, 0x07, 0xd4, 0x09, 0x18, 0xb8, 0xd1, 0xb0, 0xa9, 0x37, 0xdf, 0xc3, 0xe6, - 0x81, 0x0d, 0x71, 0x80, 0x2f, 0xc3, 0x48, 0xcd, 0xb4, 0xca, 0x75, 0xc7, 0xd4, 0x71, 0xd9, 0xa5, - 0x59, 0x26, 0xe6, 0x8b, 0xb8, 0xd0, 0xcb, 0x32, 0xcc, 0x8c, 0xab, 0xa4, 0xbf, 0xdd, 0x9a, 0x78, - 0xa8, 0x62, 0xd2, 0x8d, 0xc6, 0xda, 0x8c, 0x6e, 0xd7, 0x44, 0x46, 0x14, 0xff, 0x9c, 0x26, 0xc6, - 0xe6, 0x2c, 0xdd, 0xae, 0x63, 0x32, 0xb3, 0x88, 0x75, 0x6d, 0x5f, 0xcd, 0xb4, 0x56, 0x5c, 0x4a, - 0xab, 0xa6, 0xbe, 0x59, 0x32, 0x5f, 0xc4, 0xaa, 0x0e, 0x63, 0x2e, 0xf9, 0x1b, 0x0d, 0x64, 0x51, - 0x93, 0x6e, 0xfb, 0x56, 0xc8, 0x75, 0xb4, 0x82, 0xcb, 0xec, 0xb3, 0x82, 0x98, 0xb7, 0x48, 0xb4, - 0xf5, 0x1e, 0x84, 0xc9, 0x78, 0x35, 0xcb, 0x78, 0xfa, 0x6f, 0x8e, 0x39, 0xb1, 0x00, 0x5b, 0xc1, - 0x4e, 0x1d, 0xd3, 0x06, 0xaa, 0xee, 0xc8, 0x24, 0x21, 0x9d, 0x77, 0xb7, 0xe8, 0x7c, 0x02, 0x06, - 0x78, 0xbe, 0x2f, 0xbb, 0x86, 0xf2, 0x8c, 0xc2, 0x87, 0xe6, 0x91, 0xe7, 0x50, 0x0c, 0x80, 0x61, - 0x71, 0x6b, 0x68, 0x02, 0xe9, 0x59, 0x77, 0x48, 0x9d, 0x81, 0x11, 0x01, 0x42, 0x74, 0x54, 0xc5, - 0xe5, 0x75, 0xa4, 0x53, 0xdb, 0x61, 0x5a, 0x1d, 0xd2, 0xf6, 0xf3, 0xa9, 0x92, 0x3b, 0xb3, 0xc4, - 0x26, 0xd4, 0x2b, 0x72, 0x4d, 0x57, 0x99, 0x85, 0xbe, 0x63, 0xca, 0xf4, 0xde, 0xb3, 0x0f, 0xfa, - 0x62, 0x45, 0xec, 0x40, 0x5e, 0xa4, 0x5c, 0x67, 0x9f, 0xab, 0xdb, 0x75, 0xec, 0x71, 0xe6, 0xfe, - 0x56, 0x57, 0x61, 0x6f, 0x0d, 0x6d, 0x62, 0xa7, 0xbc, 0x8e, 0x71, 0xd9, 0x41, 0x14, 0x17, 0xfa, - 0x3b, 0xb2, 0xe3, 0x20, 0xa3, 0xb2, 0x84, 0xb1, 0x86, 0x28, 0xa3, 0x4a, 0x83, 0x54, 0xf3, 0x9d, - 0x51, 0xa5, 0x7e, 0xaa, 0x5f, 0x85, 0x51, 0xd3, 0x32, 0xa9, 0x89, 0xaa, 0xe5, 0x1a, 0x72, 0x2a, - 0xa6, 0xe5, 0x92, 0x36, 0xed, 0x02, 0x74, 0x44, 0x5b, 0x15, 0xb4, 0x96, 0x19, 0x29, 0xcd, 0xa5, - 0xa4, 0x6e, 0x40, 0xa1, 0x86, 0x4c, 0x8b, 0x62, 0x0b, 0x59, 0x3a, 0x0e, 0xae, 0x32, 0xd0, 0xd1, - 0x2a, 0x63, 0x3e, 0x7a, 0xfe, 0x95, 0x62, 0xc2, 0x74, 0x70, 0xd7, 0xc3, 0x74, 0x68, 0x97, 0xc3, - 0xf4, 0x24, 0x9c, 0x48, 0x89, 0x3f, 0x19, 0xab, 0x7f, 0xca, 0xc1, 0x54, 0x13, 0x76, 0xde, 0xb4, - 0x90, 0xb3, 0x7d, 0xbd, 0xee, 0x9e, 0xe9, 0xc8, 0x8e, 0xe2, 0x75, 0x0a, 0x86, 0xbc, 0x50, 0xda, - 0xae, 0xad, 0xd9, 0x55, 0x11, 0xb1, 0x22, 0x04, 0x4b, 0x6c, 0x4c, 0x3d, 0x01, 0xc3, 0x02, 0xa8, - 0xee, 0xd8, 0x5b, 0xa6, 0x4b, 0x9d, 0xc7, 0xed, 0x5e, 0x3e, 0xbc, 0x22, 0x46, 0xc3, 0x81, 0xd6, - 0xdb, 0x61, 0xa0, 0xb5, 0x1b, 0xdf, 0xad, 0x81, 0xd9, 0xb7, 0x2b, 0x81, 0xd9, 0xff, 0x31, 0x04, - 0xe6, 0x19, 0x18, 0xc5, 0x37, 0xeb, 0x26, 0x8b, 0x13, 0xab, 0x4c, 0xcd, 0x1a, 0x26, 0x14, 0xd5, - 0xea, 0x2c, 0xe8, 0xbb, 0xb5, 0x91, 0xe6, 0xdc, 0xaa, 0x37, 0xe5, 0xa2, 0x10, 0x4c, 0x69, 0x15, - 0xd7, 0xb0, 0x45, 0x7d, 0x28, 0xc0, 0x51, 0x9a, 0x73, 0x4d, 0x94, 0x51, 0xe8, 0x45, 0x46, 0xcd, - 0xb4, 0x78, 0x24, 0x6a, 0xfc, 0x23, 0x9c, 0x9c, 0x07, 0xb3, 0x6e, 0x88, 0x43, 0xbb, 0x1e, 0x69, - 0x7b, 0x77, 0x39, 0xd2, 0x4e, 0xc3, 0xa9, 0x0c, 0xd1, 0x23, 0xa3, 0xed, 0x8d, 0x3e, 0x7f, 0xb4, - 0x5d, 0x71, 0x6d, 0xb2, 0xbd, 0xd4, 0xa0, 0x0d, 0x07, 0x93, 0x7b, 0x7f, 0x77, 0x0c, 0x05, 0x61, - 0xee, 0xe3, 0x0d, 0xc2, 0xbe, 0xb8, 0x20, 0x1c, 0x83, 0x1c, 0x73, 0xde, 0x6d, 0x16, 0x26, 0xdd, - 0x9a, 0xf8, 0x8a, 0x08, 0xce, 0xfc, 0xae, 0x04, 0x27, 0xec, 0xe2, 0xae, 0x39, 0x70, 0x47, 0x76, - 0xcd, 0xc1, 0x3b, 0xb1, 0x6b, 0xde, 0x67, 0xb1, 0x1c, 0x1b, 0x9b, 0x32, 0x96, 0x5f, 0x51, 0xa0, - 0x10, 0x28, 0xd5, 0x38, 0xd4, 0xdd, 0x29, 0x1b, 0x7f, 0xa9, 0xc0, 0xb1, 0x38, 0x66, 0x32, 0x16, - 0x8e, 0xaa, 0x06, 0x7d, 0x0e, 0x26, 0x8d, 0x2a, 0xf5, 0xda, 0x1a, 0x67, 0xd3, 0xb8, 0x0b, 0x2e, - 0xe2, 0x62, 0x32, 0x56, 0x15, 0xcd, 0x23, 0xe4, 0x2b, 0xd1, 0xfe, 0xa3, 0xc0, 0x58, 0x34, 0x8e, - 0xfa, 0x34, 0xf4, 0x7b, 0xe6, 0x16, 0x5d, 0x98, 0x76, 0x8d, 0x2c, 0xf1, 0xd5, 0x45, 0xe8, 0x65, - 0x9e, 0xc9, 0x13, 0x64, 0xdb, 0x84, 0x38, 0xb2, 0x7a, 0x19, 0xba, 0xd7, 0x31, 0xe6, 0x79, 0xb4, - 0x6d, 0x1a, 0x2e, 0x6a, 0x6b, 0x15, 0xce, 0x4d, 0xb3, 0x88, 0x1d, 0x73, 0x0b, 0xb9, 0x1a, 0xcd, - 0xd0, 0x63, 0x78, 0x2a, 0xe8, 0x2c, 0xa7, 0x92, 0xcc, 0xd1, 0x24, 0x1c, 0xe1, 0x32, 0xc3, 0x2f, - 0x87, 0xdc, 0x65, 0x85, 0x55, 0xe1, 0xf1, 0x2c, 0xb5, 0xdf, 0x6b, 0x78, 0xcd, 0xef, 0x80, 0x81, - 0x8d, 0xf0, 0xae, 0x0a, 0x5a, 0x82, 0xe9, 0x34, 0xae, 0xda, 0x97, 0xf5, 0xa7, 0x0a, 0xdb, 0xc5, - 0x7d, 0x4d, 0x8c, 0x28, 0x1d, 0xc6, 0x77, 0x57, 0xae, 0x86, 0xba, 0x2b, 0x1d, 0xc8, 0xeb, 0xf5, - 0x58, 0x5a, 0x04, 0x7e, 0x8e, 0x25, 0xb1, 0x34, 0xd6, 0x3a, 0xeb, 0xb2, 0xbc, 0xad, 0xb0, 0x86, - 0xdf, 0x82, 0xbb, 0x23, 0x54, 0x65, 0x76, 0x8a, 0x15, 0xf3, 0x30, 0xe4, 0x6b, 0x2c, 0xd8, 0x9b, - 0xcd, 0xbd, 0x7e, 0x3e, 0x70, 0xd5, 0x68, 0xed, 0xfe, 0x75, 0x47, 0x74, 0xff, 0x82, 0x16, 0xe9, - 0x09, 0x27, 0xac, 0x7d, 0xd0, 0xad, 0x9b, 0x86, 0x38, 0xaa, 0xb8, 0x3f, 0x5b, 0xd5, 0x71, 0x84, - 0xf5, 0x85, 0x42, 0x1c, 0xcb, 0x14, 0xfe, 0x2d, 0x9e, 0xc2, 0xb9, 0xb6, 0x82, 0x30, 0xf1, 0xd6, - 0xbb, 0x04, 0x3d, 0x06, 0xa2, 0x28, 0x4b, 0x67, 0x8c, 0x51, 0x5a, 0x44, 0x14, 0x09, 0xab, 0x31, - 0xc4, 0x56, 0x26, 0x97, 0x58, 0xe8, 0x44, 0x72, 0x21, 0x0d, 0x55, 0x80, 0x3e, 0xd2, 0xd0, 0x75, - 0x4c, 0xb8, 0x8d, 0xfa, 0x35, 0xef, 0xd3, 0x67, 0x9f, 0xef, 0x29, 0xf0, 0x40, 0x90, 0x50, 0xc0, - 0xe5, 0xef, 0xb8, 0x5c, 0xd7, 0xe1, 0x64, 0x2a, 0x3b, 0x6d, 0x09, 0xf8, 0x6e, 0x1f, 0x8c, 0x7a, - 0x14, 0x79, 0xaf, 0x3c, 0x45, 0xa6, 0x4c, 0x3d, 0xe6, 0x4b, 0x70, 0x94, 0xd4, 0x6d, 0x5a, 0x96, - 0xce, 0x4a, 0xca, 0xd4, 0x2e, 0xeb, 0x8c, 0xe3, 0x32, 0xaa, 0xba, 0xa5, 0xab, 0x1b, 0x14, 0x05, - 0x22, 0x77, 0xaf, 0xab, 0x06, 0x59, 0xb5, 0xb9, 0x48, 0x73, 0xd5, 0xaa, 0xfa, 0x0c, 0x4c, 0x19, - 0x32, 0xca, 0xe2, 0xc9, 0xf4, 0x30, 0x32, 0xe3, 0x4d, 0xd0, 0x48, 0x62, 0x5f, 0x81, 0x03, 0x8c, - 0x1b, 0x1e, 0xe0, 0x4d, 0x12, 0x85, 0xde, 0x76, 0xed, 0xa2, 0x68, 0x2a, 0x91, 0x8e, 0xe4, 0x2d, - 0xa1, 0x3e, 0x0f, 0x87, 0x7d, 0xcc, 0xb6, 0xac, 0x92, 0x6b, 0x7f, 0x95, 0x82, 0x11, 0x4c, 0x51, - 0xcd, 0xb5, 0x22, 0x64, 0x61, 0x39, 0xa9, 0xd0, 0xd7, 0x6e, 0x57, 0x39, 0x2c, 0x0b, 0x23, 0xa3, - 0xd6, 0xe3, 0x64, 0xe1, 0xab, 0xf4, 0x77, 0x96, 0x5d, 0xa3, 0x25, 0xe2, 0x2b, 0xde, 0x80, 0x89, - 0x35, 0xe6, 0xc4, 0x65, 0x9b, 0x7b, 0x71, 0xab, 0x06, 0xf3, 0xed, 0x6b, 0xf0, 0xf0, 0x5a, 0x6b, - 0x60, 0x48, 0x25, 0x6a, 0x70, 0x22, 0xb4, 0x64, 0xac, 0x87, 0x01, 0xf3, 0xb0, 0x07, 0xd6, 0x5a, - 0xeb, 0xd0, 0x90, 0x93, 0xbd, 0x90, 0x24, 0x06, 0x57, 0xde, 0x40, 0xa7, 0xca, 0x8b, 0x11, 0x86, - 0x51, 0x6d, 0xcd, 0x11, 0x1f, 0x75, 0xc1, 0x91, 0xa8, 0x90, 0x96, 0x79, 0x61, 0x06, 0x46, 0x98, - 0x0f, 0x09, 0x31, 0x83, 0x39, 0x62, 0xbf, 0x3b, 0x25, 0x72, 0x26, 0x9f, 0x50, 0x2f, 0xc0, 0x21, - 0x9f, 0x4f, 0x84, 0xb0, 0xba, 0x18, 0xd6, 0xc1, 0x26, 0x40, 0x10, 0xf7, 0x61, 0xd8, 0xdf, 0xf4, - 0x57, 0x6f, 0x4b, 0xe4, 0xd1, 0x3f, 0x2c, 0xdd, 0x8f, 0x6f, 0x8b, 0xea, 0x79, 0x38, 0x18, 0xf6, - 0x3d, 0x0f, 0x83, 0x07, 0xfa, 0x81, 0x90, 0x13, 0x09, 0xbc, 0x39, 0x38, 0x1a, 0x52, 0x7d, 0x88, - 0xc7, 0x5e, 0xc6, 0x63, 0x31, 0xa0, 0xc5, 0x20, 0x9b, 0x17, 0xe1, 0x70, 0x94, 0xf5, 0xbc, 0xe5, - 0x73, 0x3c, 0x5d, 0xb5, 0x9a, 0xa1, 0x65, 0x43, 0xff, 0xa1, 0x02, 0xe3, 0x11, 0xe7, 0xc0, 0x2c, - 0x85, 0xcc, 0xee, 0x1d, 0xd9, 0x7e, 0xa7, 0xc0, 0x43, 0xc9, 0x4c, 0x65, 0x2d, 0x68, 0xbe, 0x18, - 0x2e, 0x68, 0x1e, 0xcf, 0xc6, 0x65, 0x3b, 0x65, 0xcd, 0xcf, 0xbb, 0xe1, 0x48, 0x12, 0xe6, 0xfd, - 0x58, 0xdc, 0xa8, 0x9f, 0x87, 0xbd, 0xec, 0xce, 0xd7, 0xb4, 0xad, 0xb2, 0x81, 0xab, 0x14, 0xb1, - 0xb3, 0xd9, 0xc0, 0xd9, 0x93, 0x89, 0xf7, 0xe0, 0x02, 0x63, 0xd1, 0x45, 0x10, 0x3e, 0x30, 0x54, - 0xf7, 0x0f, 0xaa, 0x4b, 0x90, 0xab, 0xa3, 0x6d, 0xbb, 0x41, 0x3b, 0xbc, 0x2a, 0x13, 0xd8, 0x3e, - 0xf3, 0xfc, 0x98, 0x1f, 0x89, 0x22, 0x0a, 0x80, 0xbb, 0xeb, 0xe4, 0x7f, 0x50, 0xd8, 0xd9, 0x28, - 0x99, 0xaf, 0x7b, 0xc9, 0xcf, 0xff, 0x2a, 0xba, 0x1d, 0x2c, 0x11, 0x85, 0x64, 0xbd, 0x7b, 0x15, - 0x80, 0x9c, 0xae, 0x21, 0xb2, 0xc9, 0x9c, 0xa6, 0x57, 0x4c, 0x2f, 0x23, 0xb2, 0xe9, 0x15, 0x08, - 0xb9, 0x84, 0x02, 0x61, 0x92, 0x97, 0xad, 0x51, 0x62, 0xc9, 0x32, 0xe1, 0x3d, 0x05, 0x0e, 0x4b, - 0xa0, 0xd6, 0x33, 0xec, 0xff, 0xb3, 0xf8, 0xc7, 0x59, 0x25, 0x1b, 0x27, 0x99, 0xd4, 0xc0, 0x9b, - 0x0a, 0xe4, 0xe5, 0xa1, 0x25, 0x28, 0x97, 0x92, 0x26, 0x57, 0x57, 0xaa, 0x5c, 0xdd, 0xc9, 0x72, - 0xf5, 0xc4, 0xc8, 0xd5, 0xac, 0xfb, 0x26, 0x5f, 0xe1, 0x1b, 0x99, 0xaf, 0xd4, 0x08, 0xd9, 0xf2, - 0x4e, 0x96, 0x3d, 0xd7, 0xd8, 0xfe, 0x95, 0xc0, 0x4b, 0x5b, 0x35, 0xcf, 0x6d, 0x05, 0x0e, 0x2c, - 0x93, 0x4a, 0x49, 0xaa, 0x6f, 0xd5, 0x41, 0x16, 0x59, 0x4f, 0x70, 0xbb, 0x47, 0x60, 0x94, 0xd8, - 0x0d, 0x47, 0xc7, 0xe5, 0x28, 0x43, 0xa8, 0x7c, 0xae, 0xe4, 0x37, 0x07, 0x3b, 0x33, 0x11, 0x6a, - 0x5a, 0xfc, 0xf2, 0x28, 0xca, 0x2f, 0x0f, 0xfa, 0x00, 0x4a, 0xd1, 0x2f, 0x74, 0x7a, 0xda, 0x7b, - 0xa1, 0x33, 0xe0, 0xd7, 0xd9, 0x04, 0xeb, 0x91, 0xb5, 0x0a, 0x29, 0x3d, 0xf0, 0x9f, 0x0a, 0x7b, - 0xbb, 0x73, 0xe5, 0x26, 0xc5, 0x8e, 0x85, 0xaa, 0xf7, 0xa5, 0x12, 0x8e, 0xb2, 0x34, 0x13, 0x16, - 0x51, 0xaa, 0xe0, 0xcf, 0x0a, 0xab, 0x7e, 0xaf, 0x99, 0x37, 0x1a, 0x26, 0x7b, 0x27, 0x26, 0xf6, - 0xce, 0x9d, 0x55, 0xbf, 0x81, 0x60, 0xee, 0x0e, 0x05, 0xb3, 0xdc, 0x00, 0x7b, 0x3a, 0xdb, 0x00, - 0x15, 0x6f, 0x03, 0x0c, 0xc8, 0x39, 0xce, 0x8e, 0xfc, 0x2d, 0x72, 0x48, 0x41, 0xbf, 0xc9, 0xf7, - 0x9a, 0x2b, 0x35, 0xec, 0x54, 0xb0, 0xa5, 0x6f, 0x97, 0xd8, 0x45, 0x24, 0xdf, 0xad, 0x76, 0x4f, - 0xd8, 0x20, 0x8f, 0x7c, 0x5f, 0x88, 0x64, 0x41, 0xf2, 0xf9, 0xa3, 0x2e, 0x38, 0xc4, 0x6e, 0x0c, - 0xdc, 0x92, 0x89, 0x48, 0x39, 0xf8, 0x65, 0xc9, 0x3d, 0xe2, 0x99, 0x01, 0x89, 0x7b, 0x42, 0xe6, - 0x5d, 0x92, 0x6e, 0xdb, 0xe1, 0x79, 0x2b, 0xca, 0x8b, 0xa7, 0xd8, 0x89, 0x2b, 0x5a, 0x29, 0x52, - 0x75, 0x6f, 0x29, 0xcc, 0x07, 0x56, 0x1c, 0x73, 0xcb, 0xac, 0xe2, 0x0a, 0x36, 0xae, 0xdc, 0xc4, - 0x7a, 0x83, 0xe2, 0x05, 0xdb, 0xa2, 0x0e, 0xd2, 0xe3, 0xcd, 0x3c, 0x0a, 0xbd, 0xeb, 0x0d, 0xcb, - 0x20, 0x42, 0x5d, 0xfc, 0x43, 0x3d, 0x09, 0xfb, 0x74, 0x81, 0x59, 0x46, 0xfc, 0xd5, 0xa6, 0x50, - 0xcc, 0xb0, 0x37, 0x2e, 0x1e, 0x73, 0xaa, 0xaa, 0xc8, 0xf7, 0x5c, 0x17, 0x3c, 0x85, 0x47, 0x5e, - 0xa9, 0xfc, 0x46, 0x81, 0x07, 0x93, 0x58, 0x94, 0x59, 0xfc, 0x79, 0x00, 0xc6, 0x45, 0xd9, 0x30, - 0xd7, 0xd7, 0x59, 0x22, 0x4f, 0x4c, 0x00, 0x8f, 0xb8, 0x4a, 0xfe, 0xed, 0xdf, 0x27, 0xa6, 0x33, - 0x28, 0xd9, 0x45, 0x20, 0x5a, 0x9e, 0x91, 0x5f, 0x34, 0xd7, 0xd7, 0xa3, 0x39, 0x7d, 0x18, 0xf6, - 0x2d, 0x93, 0x8a, 0x86, 0x5f, 0x40, 0x8e, 0x41, 0xae, 0xd7, 0xe9, 0xf5, 0x46, 0xac, 0xfe, 0x26, - 0x8b, 0x2c, 0xb4, 0x02, 0xb0, 0xd2, 0x28, 0xdf, 0xe5, 0x5b, 0x8d, 0x86, 0xf5, 0x2a, 0x32, 0x6b, - 0xd7, 0x6c, 0x7d, 0x13, 0x1b, 0x4b, 0x4c, 0xbf, 0xf1, 0xbe, 0x3c, 0x52, 0x65, 0x60, 0x73, 0xdc, - 0xe1, 0x56, 0x1a, 0x6b, 0xcf, 0xe0, 0x6d, 0x66, 0x9b, 0x41, 0x2d, 0x6a, 0x4a, 0x3d, 0x02, 0x79, - 0x62, 0x56, 0x2c, 0x44, 0x1b, 0x0e, 0x2f, 0x41, 0x06, 0xb5, 0xe6, 0x40, 0xd4, 0x9e, 0xd0, 0xca, - 0x8d, 0xe4, 0xf7, 0x1b, 0xfc, 0xa5, 0x69, 0xc9, 0xac, 0x58, 0xec, 0x5c, 0x52, 0x82, 0x9c, 0xfb, - 0x5b, 0x70, 0x39, 0x38, 0xff, 0xe4, 0x87, 0xb7, 0x26, 0x72, 0x84, 0x8d, 0x7c, 0x74, 0x6b, 0xe2, - 0x74, 0x06, 0x7d, 0xcf, 0xe9, 0xba, 0xf0, 0x13, 0x4d, 0x90, 0x52, 0x8f, 0x40, 0xcf, 0x22, 0x3f, - 0x1f, 0xb8, 0x24, 0xfb, 0x3f, 0xbc, 0x35, 0xc1, 0x7c, 0x46, 0x63, 0xa3, 0x93, 0x37, 0xd9, 0xdb, - 0x5c, 0xc6, 0x81, 0xad, 0xab, 0xc7, 0xb9, 0x70, 0xfc, 0x7e, 0x9c, 0x17, 0x7b, 0x0c, 0xc1, 0xfd, - 0xd6, 0xfa, 0xdd, 0x29, 0x76, 0x03, 0xbe, 0x00, 0xbd, 0x5b, 0xa8, 0xda, 0xc0, 0xe2, 0xb4, 0x7e, - 0x22, 0x29, 0xab, 0xfa, 0xe4, 0xf3, 0x4a, 0x0a, 0x86, 0x3b, 0xf9, 0x41, 0x17, 0x8b, 0xb3, 0x39, - 0xa3, 0x66, 0x5a, 0xbc, 0x71, 0x12, 0x51, 0x46, 0x74, 0x76, 0x34, 0xfd, 0x12, 0xec, 0xf3, 0xbd, - 0x0b, 0xe1, 0x15, 0x67, 0xb3, 0x5a, 0x54, 0xda, 0x48, 0x10, 0xc3, 0x4d, 0x3a, 0xec, 0x96, 0x37, - 0xf6, 0x95, 0x4a, 0x4f, 0xfb, 0xaf, 0x54, 0x7a, 0xe3, 0x5f, 0xa9, 0x5c, 0x86, 0x1c, 0xa1, 0x88, - 0x36, 0x88, 0x78, 0xa4, 0x30, 0x9d, 0xa8, 0x61, 0x26, 0x76, 0x89, 0xc1, 0x6b, 0x02, 0x2f, 0xe8, - 0x88, 0xa7, 0x58, 0xad, 0x96, 0xac, 0x69, 0xcf, 0x29, 0xcf, 0xfe, 0x62, 0x0a, 0xba, 0x97, 0x49, - 0x45, 0x45, 0xd0, 0xe7, 0x3d, 0xd9, 0x7e, 0x28, 0xc5, 0xc0, 0x02, 0xae, 0x38, 0x93, 0x0d, 0x4e, - 0x26, 0x1e, 0x03, 0xfa, 0xe5, 0x2b, 0xeb, 0x34, 0x27, 0xf2, 0x00, 0x8b, 0xb3, 0x19, 0x01, 0xe5, - 0x2a, 0xaf, 0x2a, 0x70, 0x30, 0xee, 0x61, 0xed, 0xf9, 0x14, 0x62, 0x31, 0x78, 0xc5, 0x4f, 0x77, - 0x86, 0x27, 0x79, 0x72, 0xb7, 0x8f, 0xc4, 0xe7, 0xa5, 0x4f, 0x66, 0x5b, 0x20, 0x12, 0xb9, 0xb8, - 0xb0, 0x03, 0x64, 0xc9, 0xe2, 0xef, 0x15, 0x38, 0x96, 0xfa, 0xce, 0xe7, 0x52, 0xb6, 0x95, 0x62, - 0x09, 0x14, 0x9f, 0xda, 0x21, 0x01, 0xc9, 0xee, 0xcb, 0x0a, 0x8c, 0x46, 0x3e, 0x80, 0x7f, 0x34, - 0x65, 0x85, 0x28, 0xa4, 0xe2, 0x93, 0x1d, 0x20, 0x49, 0x56, 0xde, 0x50, 0xa0, 0x98, 0xf0, 0x66, - 0xfd, 0x89, 0x14, 0xda, 0xf1, 0xa8, 0xc5, 0xb9, 0x8e, 0x51, 0x25, 0x73, 0xdf, 0x51, 0xe0, 0x40, - 0xf4, 0x93, 0x8f, 0x73, 0x99, 0x65, 0xf6, 0x61, 0x15, 0x3f, 0xd5, 0x09, 0x96, 0xe4, 0x66, 0x1b, - 0x86, 0xc3, 0xb7, 0xb1, 0x69, 0x49, 0x24, 0x04, 0x5f, 0x3c, 0xdf, 0x1e, 0x7c, 0x40, 0x11, 0xd1, - 0x17, 0xa7, 0xe7, 0x32, 0x69, 0x39, 0x84, 0x95, 0xaa, 0x88, 0xe4, 0xeb, 0xd1, 0xaf, 0xc3, 0xfe, - 0xd6, 0x5b, 0xc1, 0x47, 0xb2, 0x90, 0xf4, 0x63, 0x14, 0x1f, 0x6f, 0x17, 0x43, 0x32, 0xf0, 0xba, - 0x02, 0x87, 0xe2, 0x4f, 0xb3, 0x69, 0x74, 0x63, 0x31, 0x8b, 0x97, 0x3b, 0xc5, 0x0c, 0x84, 0x53, - 0xc2, 0xe3, 0x93, 0x27, 0x32, 0x39, 0x60, 0x14, 0x6a, 0x6a, 0x38, 0x65, 0x78, 0x5f, 0xe2, 0x66, - 0xc9, 0xd4, 0x77, 0x14, 0x97, 0xb2, 0x87, 0x6d, 0x24, 0x81, 0xd4, 0x2c, 0x99, 0xf9, 0xb9, 0xc4, - 0x9b, 0x0a, 0x1c, 0x4e, 0xba, 0x2d, 0xb9, 0xd0, 0xa6, 0x46, 0xfc, 0x99, 0x60, 0xbe, 0x73, 0xdc, - 0x60, 0x76, 0x8a, 0x6c, 0xd1, 0x9e, 0xcb, 0x14, 0xe6, 0x21, 0xac, 0xf4, 0xec, 0x94, 0xd4, 0x37, - 0x65, 0xda, 0x4a, 0x6a, 0xc9, 0x5d, 0xc8, 0x1e, 0xf2, 0x61, 0xdc, 0x54, 0x6d, 0x65, 0x69, 0xbf, - 0xf9, 0xb6, 0xe8, 0xf8, 0x87, 0xef, 0x19, 0xb7, 0xe8, 0x58, 0x02, 0x59, 0xb7, 0xe8, 0xd4, 0xc7, - 0xc3, 0xea, 0xaf, 0x14, 0x38, 0x9a, 0xfc, 0xbe, 0x2a, 0xdb, 0x66, 0x12, 0x83, 0x5d, 0x5c, 0xdc, - 0x09, 0xb6, 0xe4, 0xf2, 0xd7, 0x0a, 0x8c, 0xa7, 0x5c, 0xb7, 0x5c, 0x6c, 0x7f, 0x21, 0x7f, 0xa0, - 0x5c, 0xd9, 0x11, 0xba, 0x64, 0xf4, 0x35, 0x05, 0x0a, 0xb1, 0x2d, 0xfd, 0xc7, 0x32, 0x39, 0x7e, - 0x2b, 0x62, 0xf1, 0x52, 0x87, 0x88, 0x01, 0xfd, 0xa5, 0xbc, 0xe0, 0xb9, 0x98, 0xdd, 0xf7, 0x23, - 0xd0, 0x53, 0xf5, 0x97, 0xf1, 0xc1, 0xce, 0x4b, 0x0a, 0xa8, 0x11, 0x5d, 0xe9, 0x33, 0x69, 0xd5, - 0x6c, 0x0b, 0x4a, 0xf1, 0x89, 0xb6, 0x51, 0x24, 0x13, 0x5f, 0x83, 0x7d, 0x2d, 0x2d, 0xe1, 0xb4, - 0x0a, 0x27, 0x8c, 0x50, 0x7c, 0xac, 0x4d, 0x04, 0xff, 0xa9, 0xa3, 0xb5, 0x1b, 0x9b, 0x76, 0xea, - 0x68, 0xc1, 0x48, 0x3d, 0x75, 0xc4, 0x76, 0x4a, 0x59, 0xbe, 0x8f, 0x6e, 0x93, 0xa6, 0xe5, 0xfb, - 0x48, 0xac, 0xd4, 0x7c, 0x9f, 0xd8, 0x0f, 0x55, 0xbf, 0xaf, 0xc0, 0x58, 0x4c, 0x33, 0xf4, 0x93, - 0xa9, 0x49, 0x30, 0x0a, 0xad, 0x78, 0xb1, 0x23, 0x34, 0xc9, 0x10, 0x81, 0xa1, 0x60, 0x57, 0xec, - 0x13, 0x29, 0xf4, 0x02, 0xd0, 0xc5, 0x73, 0xed, 0x40, 0x07, 0x02, 0x38, 0xa5, 0x2b, 0x93, 0x26, - 0x56, 0x32, 0x7a, 0x6a, 0x00, 0x67, 0xeb, 0x54, 0xb0, 0x00, 0x8e, 0xe8, 0xf5, 0x9d, 0x49, 0x95, - 0x3a, 0x8c, 0x92, 0x1a, 0xc0, 0xf1, 0x3d, 0x3c, 0xb5, 0x0e, 0x83, 0x81, 0xff, 0x92, 0x7f, 0x2a, - 0x85, 0x94, 0x1f, 0xb8, 0xf8, 0x68, 0x1b, 0xc0, 0xde, 0x8a, 0xf3, 0x1b, 0xef, 0xbc, 0x3f, 0xae, - 0xbc, 0xfb, 0xfe, 0xb8, 0xf2, 0x8f, 0xf7, 0xc7, 0x95, 0x1f, 0xdc, 0x1e, 0xdf, 0xf3, 0xee, 0xed, - 0xf1, 0x3d, 0xef, 0xdd, 0x1e, 0xdf, 0xf3, 0xdc, 0x67, 0x7d, 0x5d, 0xad, 0xab, 0x1e, 0xe1, 0x6b, - 0x68, 0x8d, 0xcc, 0xca, 0x65, 0x4e, 0xeb, 0xb6, 0x83, 0xfd, 0x9f, 0x1b, 0xc8, 0xb4, 0x66, 0x6b, - 0xb6, 0xd1, 0xa8, 0x62, 0xd2, 0xfc, 0x53, 0x05, 0xac, 0x03, 0xb6, 0x96, 0x63, 0x7f, 0x79, 0xe0, - 0xd1, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x70, 0x8b, 0x67, 0xfe, 0xa8, 0x41, 0x00, 0x00, + // 3942 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4b, 0x6c, 0x1c, 0xc7, + 0x95, 0x6a, 0x0e, 0x39, 0x24, 0x1f, 0x29, 0x89, 0x6a, 0x52, 0xe2, 0x70, 0xf8, 0x93, 0x9a, 0x92, + 0xf5, 0x27, 0xf5, 0xff, 0x8c, 0x56, 0x96, 0xf8, 0x91, 0x6c, 0xae, 0x45, 0x4b, 0x1e, 0xca, 0xbb, + 0xde, 0x85, 0xbd, 0x83, 0x66, 0x4f, 0x71, 0xd8, 0xe6, 0x4c, 0xf7, 0xa8, 0xbb, 0x47, 0x12, 0x8d, + 0x05, 0xd6, 0xeb, 0xc3, 0x42, 0xfb, 0xc1, 0x62, 0x17, 0x58, 0x60, 0x81, 0x05, 0x0c, 0x18, 0x58, + 0x20, 0x06, 0x9c, 0x20, 0x91, 0x83, 0x20, 0xf0, 0x21, 0x3f, 0x04, 0x39, 0x18, 0x3e, 0x29, 0x01, + 0x02, 0x04, 0x39, 0x28, 0x81, 0x7d, 0xb0, 0xe1, 0x53, 0x90, 0x4b, 0x80, 0xe4, 0x12, 0x74, 0x55, + 0x75, 0x4d, 0x7f, 0xaa, 0xba, 0x7b, 0x46, 0xa4, 0x2d, 0x07, 0xbe, 0x48, 0xec, 0xaa, 0xf7, 0x5e, + 0xbd, 0xf7, 0xea, 0x7d, 0xaa, 0x5e, 0x55, 0x0d, 0x4c, 0xe9, 0xc6, 0xeb, 0x48, 0x73, 0xf4, 0xbb, + 0x68, 0x06, 0xdd, 0xd7, 0xd6, 0x54, 0xa3, 0x82, 0x66, 0xee, 0x9e, 0x5c, 0x41, 0x8e, 0x7a, 0x72, + 0xc6, 0xb9, 0x3f, 0x5d, 0xb7, 0x4c, 0xc7, 0x94, 0xf3, 0x0c, 0x68, 0xda, 0x03, 0x9a, 0xa6, 0x40, + 0xf9, 0x09, 0xcd, 0xb4, 0x6b, 0xa6, 0x3d, 0xb3, 0xa2, 0xda, 0x4d, 0x4c, 0xcd, 0xd4, 0x0d, 0x82, + 0x9b, 0x9f, 0xa6, 0xfd, 0x65, 0xdd, 0x76, 0x2c, 0x7d, 0xa5, 0xe1, 0xe8, 0xa6, 0xc1, 0xe0, 0xfc, + 0x8d, 0x14, 0x7e, 0x98, 0xc2, 0xd7, 0xec, 0xca, 0xcc, 0xdd, 0x93, 0xee, 0x7f, 0xb4, 0x63, 0x84, + 0x74, 0x94, 0xf0, 0xd7, 0x0c, 0xf9, 0xa0, 0x5d, 0x43, 0x15, 0xb3, 0x62, 0x92, 0x76, 0xf7, 0x2f, + 0xda, 0x7a, 0x38, 0x46, 0x34, 0x26, 0x06, 0x01, 0x3d, 0xd0, 0x04, 0x35, 0x2d, 0x55, 0xab, 0x36, + 0x01, 0xc9, 0x27, 0x05, 0xdb, 0xa5, 0xd6, 0x74, 0xc3, 0x9c, 0xc1, 0xff, 0x92, 0x26, 0xe5, 0xdd, + 0x0c, 0x0c, 0x2e, 0xd9, 0x95, 0x97, 0xeb, 0x65, 0xd5, 0x41, 0xcb, 0x75, 0xd3, 0x59, 0x52, 0xad, + 0x75, 0xe4, 0xc8, 0x43, 0xd0, 0xa5, 0x96, 0x6b, 0xba, 0x91, 0x93, 0xf6, 0x4a, 0x87, 0x7a, 0x8b, + 0xe4, 0x43, 0x1e, 0x85, 0xde, 0x1a, 0xee, 0x2f, 0xe9, 0xe5, 0x5c, 0x07, 0xee, 0xe9, 0x21, 0x0d, + 0x8b, 0x65, 0x79, 0x1c, 0xc0, 0x40, 0xf7, 0x4a, 0x8e, 0xae, 0xad, 0x23, 0x2b, 0x97, 0xc1, 0xbd, + 0xbd, 0x06, 0xba, 0x77, 0x1b, 0x37, 0xc8, 0x7f, 0x07, 0xc3, 0x6e, 0x77, 0x4d, 0x37, 0x4a, 0x75, + 0x4b, 0xd7, 0x10, 0x06, 0x2c, 0xd9, 0xfa, 0x1b, 0x28, 0xd7, 0xe9, 0xc2, 0xce, 0x4d, 0x7d, 0xf8, + 0x78, 0x72, 0xdb, 0xaf, 0x1f, 0x4f, 0x8e, 0x12, 0xdd, 0xd8, 0xe5, 0xf5, 0x69, 0xdd, 0x9c, 0xa9, + 0xa9, 0xce, 0xda, 0xf4, 0x0d, 0x54, 0x51, 0xb5, 0x8d, 0x05, 0xa4, 0x15, 0x07, 0x0d, 0x74, 0x6f, + 0x49, 0x37, 0x6e, 0xb9, 0x14, 0x5c, 0xc2, 0xcb, 0xfa, 0x1b, 0x48, 0x2e, 0x41, 0xde, 0x23, 0x7d, + 0xa7, 0xa1, 0x1a, 0x8e, 0xee, 0x6c, 0xf8, 0xa8, 0x77, 0xa5, 0xa7, 0xbe, 0x87, 0x50, 0x7f, 0x89, + 0x12, 0x61, 0x03, 0x2c, 0xc1, 0x80, 0x37, 0x80, 0x61, 0xba, 0x93, 0xad, 0x56, 0x73, 0xd9, 0xf4, + 0x64, 0x77, 0x10, 0xb2, 0x2f, 0x52, 0xd4, 0xc2, 0xe9, 0x07, 0xef, 0x4c, 0x6e, 0xfb, 0xec, 0x9d, + 0xc9, 0x6d, 0x6f, 0x7d, 0xfa, 0xf0, 0x08, 0x51, 0xed, 0xbf, 0x7d, 0xfa, 0xf0, 0xc8, 0x18, 0x9b, + 0x66, 0xce, 0x8c, 0x28, 0xe3, 0x30, 0xca, 0x69, 0x2e, 0x22, 0xbb, 0x6e, 0x1a, 0x36, 0x52, 0xfe, + 0xd0, 0x09, 0x23, 0xac, 0x7f, 0x01, 0x59, 0xfa, 0x5d, 0xd5, 0xb5, 0x87, 0xaf, 0xa7, 0x73, 0xcb, + 0xa7, 0x53, 0x7e, 0x15, 0x72, 0x2e, 0x39, 0xdd, 0xd0, 0x1d, 0x5d, 0xad, 0x96, 0x6a, 0xaa, 0x55, + 0xd1, 0x8d, 0x92, 0xa5, 0x3a, 0xba, 0x99, 0xeb, 0x4e, 0x4f, 0x76, 0xb7, 0x81, 0xee, 0x2d, 0x12, + 0x1a, 0x4b, 0x98, 0x44, 0xd1, 0xa5, 0x20, 0x97, 0x61, 0x0c, 0x33, 0xab, 0xea, 0x86, 0x83, 0x0c, + 0xd5, 0xd0, 0x50, 0x70, 0x84, 0x9e, 0xf4, 0x23, 0x8c, 0xb8, 0x8c, 0x37, 0xe9, 0xf8, 0x46, 0x29, + 0x5c, 0xe4, 0x9b, 0xa4, 0x12, 0x35, 0xc9, 0xb0, 0x6d, 0x29, 0x53, 0xb0, 0x4f, 0xd8, 0xc9, 0xcc, + 0xf3, 0x03, 0x09, 0x76, 0x32, 0xa8, 0x5b, 0xaa, 0xa5, 0xd6, 0x6c, 0xf9, 0x1c, 0xf4, 0xaa, 0x0d, + 0x67, 0xcd, 0xb4, 0x74, 0x67, 0x83, 0x18, 0xe6, 0x5c, 0xee, 0x17, 0xdf, 0x3b, 0x3e, 0x44, 0x63, + 0xe3, 0x6c, 0xb9, 0x6c, 0x21, 0xdb, 0x5e, 0x76, 0x2c, 0xdd, 0xa8, 0x14, 0x9b, 0xa0, 0xf2, 0x55, + 0xc8, 0xd6, 0x31, 0x05, 0x6c, 0xb3, 0x7d, 0xa7, 0x94, 0x69, 0x71, 0x7c, 0x9f, 0x26, 0x63, 0xcd, + 0x75, 0xba, 0xfa, 0x29, 0x52, 0xbc, 0xc2, 0x51, 0x57, 0xca, 0x26, 0x45, 0x57, 0xd2, 0x5c, 0x54, + 0x52, 0x82, 0xaa, 0x8c, 0xc0, 0x70, 0xa8, 0x89, 0x49, 0xf5, 0x1d, 0x09, 0x60, 0xc9, 0xae, 0x2c, + 0xa0, 0xba, 0x69, 0xeb, 0x8e, 0xbc, 0x07, 0xb2, 0x36, 0x32, 0xca, 0xc8, 0xa2, 0x6e, 0x46, 0xbf, + 0xe4, 0x29, 0xd8, 0x6e, 0x37, 0x56, 0x54, 0x4d, 0x33, 0x1b, 0x86, 0xcf, 0xd7, 0xfa, 0x9b, 0x8d, + 0x8b, 0x65, 0xf9, 0x3c, 0x64, 0xd5, 0x9a, 0xfb, 0x37, 0xf6, 0xb5, 0xbe, 0x53, 0x23, 0x34, 0xf3, + 0x4c, 0xbb, 0x99, 0x89, 0x89, 0x33, 0x6f, 0xea, 0x86, 0x27, 0x0c, 0x01, 0x2f, 0x1c, 0xf5, 0x4f, + 0x1d, 0x1d, 0xd2, 0x95, 0x68, 0xd0, 0x2f, 0x11, 0x65, 0x51, 0x19, 0x02, 0xb9, 0xf9, 0xc5, 0xe4, + 0x78, 0x5f, 0x82, 0xbe, 0x25, 0xbb, 0xf2, 0xb7, 0xba, 0xb3, 0x56, 0xb6, 0xd4, 0x7b, 0x5f, 0x92, + 0x20, 0xc7, 0x04, 0x82, 0x0c, 0xf9, 0x05, 0xf1, 0x78, 0x54, 0x76, 0xe3, 0xc4, 0xe5, 0x7d, 0x32, + 0x51, 0xbe, 0x2d, 0xe1, 0xe9, 0x9a, 0xb7, 0x10, 0x8d, 0x93, 0x37, 0xf4, 0x9a, 0xee, 0xdc, 0xb4, + 0x5c, 0xf6, 0x45, 0x62, 0xcd, 0x42, 0x97, 0xe9, 0x02, 0x50, 0x7b, 0x3a, 0x10, 0x67, 0x4f, 0x2e, + 0x49, 0x4c, 0x8d, 0x32, 0x4f, 0x30, 0x0b, 0x17, 0x04, 0xbc, 0xef, 0xf5, 0xf3, 0xce, 0x63, 0x4a, + 0x79, 0x15, 0x26, 0x05, 0x5d, 0x9e, 0x4c, 0x6e, 0x28, 0xc6, 0xa3, 0x94, 0xd6, 0x54, 0x7b, 0x8d, + 0xf2, 0xde, 0x8b, 0x5b, 0x9e, 0x57, 0xed, 0x35, 0x79, 0x00, 0x32, 0x1a, 0x9b, 0x0b, 0xf7, 0xcf, + 0x42, 0x8f, 0xc7, 0x8d, 0xf2, 0x03, 0x09, 0xc6, 0x97, 0xec, 0xca, 0x9c, 0xea, 0x68, 0x6b, 0xbc, + 0x31, 0x6c, 0xa1, 0x52, 0xe6, 0x21, 0x8b, 0x87, 0x70, 0xbd, 0x2c, 0xd3, 0xaa, 0x56, 0x28, 0x6a, + 0xe1, 0x59, 0x81, 0x5a, 0x9e, 0xf1, 0xab, 0x45, 0xcc, 0x9c, 0xf2, 0x5d, 0x09, 0x0e, 0xc4, 0x42, + 0x30, 0x1d, 0xed, 0x83, 0xfe, 0xa6, 0x8e, 0x90, 0x9d, 0x93, 0xf6, 0x66, 0x0e, 0xf5, 0x16, 0xfb, + 0x98, 0x96, 0x90, 0x2d, 0x4f, 0xc3, 0xa0, 0x86, 0x69, 0x94, 0x4b, 0x84, 0xbd, 0x92, 0xa6, 0x97, + 0x89, 0x78, 0xbd, 0xc5, 0x5d, 0xb4, 0x8b, 0x90, 0x9d, 0xd7, 0xcb, 0xb6, 0x7c, 0x0c, 0xe4, 0x55, + 0x55, 0xaf, 0x86, 0xc0, 0x33, 0x18, 0x7c, 0x80, 0xf4, 0x34, 0xa1, 0x7d, 0x3a, 0xff, 0x71, 0x06, + 0xf2, 0x4b, 0x76, 0x65, 0xd1, 0xb0, 0x1d, 0xd5, 0x70, 0x9a, 0xb9, 0xfa, 0x86, 0xda, 0x30, 0xb4, + 0x35, 0xa1, 0xc2, 0xf7, 0x40, 0x96, 0x26, 0x5b, 0x32, 0x93, 0xf4, 0xcb, 0x9d, 0x7d, 0xd7, 0x73, + 0x4a, 0x65, 0x64, 0x98, 0x35, 0x2f, 0x11, 0xbb, 0x2d, 0x0b, 0x6e, 0x83, 0x3c, 0x09, 0x7d, 0x77, + 0x1a, 0xa6, 0xe3, 0xf5, 0xe3, 0xe4, 0x5b, 0x04, 0xdc, 0x44, 0x00, 0x8a, 0x30, 0xc8, 0xcb, 0xd2, + 0x2d, 0xe4, 0xd1, 0x81, 0x5a, 0x38, 0x45, 0xbf, 0x02, 0x7b, 0x04, 0xe9, 0xb9, 0x85, 0x3c, 0xea, + 0xb2, 0x15, 0xc9, 0xcd, 0xd7, 0xa1, 0x3f, 0x90, 0x97, 0x5b, 0x48, 0xa0, 0x7d, 0x35, 0xdf, 0x1a, + 0xeb, 0x92, 0xc0, 0xf2, 0xa6, 0xfc, 0x96, 0x27, 0x98, 0x22, 0x65, 0x3f, 0x28, 0xe2, 0xde, 0x66, + 0xd4, 0xec, 0xc6, 0xae, 0x4b, 0xc1, 0x6e, 0x21, 0xab, 0x8e, 0x9c, 0x06, 0x4e, 0xde, 0xed, 0x4f, + 0x76, 0x68, 0x36, 0x33, 0x91, 0xd9, 0x9c, 0x84, 0x3e, 0xb2, 0xa6, 0x2f, 0xb9, 0x26, 0xe0, 0x4d, + 0x37, 0x69, 0x9a, 0x53, 0x3d, 0x47, 0xc0, 0x00, 0x18, 0x8b, 0xcc, 0x73, 0x91, 0x22, 0xbd, 0xe4, + 0x36, 0xb9, 0x8e, 0x40, 0x41, 0x6c, 0x4d, 0xad, 0xa2, 0xd2, 0xaa, 0xaa, 0x39, 0xa6, 0x85, 0xa7, + 0x6e, 0x7b, 0x71, 0x17, 0xe9, 0x5a, 0x76, 0x7b, 0xae, 0xe3, 0x0e, 0xf9, 0x1a, 0x1b, 0xd3, 0xd9, + 0xa8, 0x23, 0x3c, 0x25, 0x3b, 0x4e, 0xed, 0xf7, 0xc5, 0x03, 0xba, 0xcb, 0xf0, 0xa2, 0xc1, 0x4d, + 0xfc, 0x79, 0x7b, 0xa3, 0x8e, 0x3c, 0xce, 0xdc, 0xbf, 0xe5, 0x45, 0xd8, 0x51, 0x53, 0xd7, 0x91, + 0x55, 0x5a, 0x45, 0xc8, 0x5d, 0xbc, 0xa0, 0x56, 0xd6, 0x2e, 0xfd, 0x18, 0xf5, 0x3a, 0x42, 0x45, + 0xd5, 0xc1, 0xa4, 0x9c, 0x20, 0xa9, 0xde, 0x16, 0x48, 0x39, 0x7e, 0x52, 0x2f, 0xc3, 0x10, 0x77, + 0xe5, 0x06, 0xe9, 0x09, 0xca, 0x7a, 0x74, 0xd9, 0xf6, 0x1a, 0xe4, 0x84, 0x4b, 0xb6, 0xbe, 0x16, + 0x96, 0xb0, 0x35, 0xee, 0x7a, 0x4d, 0xe4, 0xd4, 0xfd, 0x5b, 0xe3, 0xd4, 0xdb, 0x37, 0xd9, 0xa9, + 0x77, 0xb4, 0xe9, 0xd4, 0x57, 0x05, 0x4e, 0x7d, 0x88, 0xe3, 0xd4, 0x5c, 0x7f, 0x54, 0x0e, 0xc3, + 0xc1, 0x04, 0x10, 0xe6, 0xde, 0xff, 0xda, 0x0d, 0x53, 0x4d, 0xd8, 0x39, 0xdd, 0x50, 0xad, 0x8d, + 0x9b, 0x75, 0x97, 0x13, 0xfb, 0x89, 0x5c, 0x7c, 0x0a, 0xb6, 0x7b, 0xde, 0xb7, 0x51, 0x5b, 0x31, + 0xab, 0xd4, 0xc9, 0xa9, 0xd7, 0x2e, 0xe3, 0x36, 0xf9, 0x20, 0xec, 0xa4, 0x40, 0x75, 0xcb, 0xbc, + 0xab, 0xbb, 0xd4, 0x89, 0xab, 0xef, 0x20, 0xcd, 0xb7, 0x68, 0x6b, 0xd8, 0x37, 0xbb, 0xda, 0xf4, + 0xcd, 0x56, 0x43, 0x42, 0xd4, 0x97, 0xbb, 0x37, 0xcf, 0x97, 0x7b, 0xda, 0xf5, 0xe5, 0x93, 0x30, + 0x84, 0xee, 0xd7, 0x75, 0xec, 0x65, 0x46, 0xc9, 0xd1, 0x6b, 0xc8, 0x76, 0xd4, 0x5a, 0x1d, 0x07, + 0x87, 0x4c, 0x71, 0xb0, 0xd9, 0x77, 0xdb, 0xeb, 0x72, 0x51, 0x6c, 0xe4, 0x38, 0x55, 0x54, 0x43, + 0x86, 0xe3, 0x43, 0x01, 0x82, 0xd2, 0xec, 0x6b, 0xa2, 0xb0, 0xcd, 0x74, 0x9f, 0x7f, 0x33, 0x1d, + 0x8a, 0xdc, 0xfd, 0x69, 0xf3, 0xf0, 0xf6, 0xad, 0x71, 0xd9, 0x1d, 0x9b, 0xec, 0xb2, 0x3b, 0xdb, + 0x74, 0xd9, 0x05, 0x81, 0xcb, 0x1e, 0xe3, 0xb8, 0xac, 0xd0, 0xc7, 0x94, 0xe3, 0x70, 0x34, 0x05, + 0x18, 0x73, 0xdd, 0x9f, 0x07, 0x5c, 0xf7, 0x9a, 0x3b, 0xed, 0x1b, 0xd7, 0x1b, 0x4e, 0xc3, 0x42, + 0xf6, 0xd3, 0x9f, 0x9d, 0x43, 0x1e, 0x9d, 0xdd, 0x5c, 0x8f, 0xee, 0x16, 0x79, 0xf4, 0x1e, 0xc8, + 0x62, 0xff, 0xd8, 0xc0, 0xee, 0x97, 0x29, 0xd2, 0x2f, 0x8e, 0xa7, 0xf7, 0x6e, 0x9e, 0xa7, 0xc3, + 0x66, 0x67, 0xed, 0xbe, 0xad, 0xcb, 0xda, 0xfd, 0x5b, 0x96, 0xb5, 0xbf, 0x0e, 0x01, 0xc9, 0xbe, + 0x1a, 0x0c, 0x01, 0x42, 0x30, 0x16, 0x02, 0x1e, 0x4a, 0x90, 0x0b, 0xec, 0xab, 0x09, 0xd4, 0x96, + 0x17, 0x02, 0x2e, 0x0a, 0x84, 0xdd, 0xc7, 0x2f, 0x04, 0xf8, 0xb8, 0x52, 0xde, 0x97, 0x60, 0xaf, + 0xa8, 0x33, 0x6d, 0x2d, 0xa0, 0x08, 0xdd, 0x16, 0xb2, 0x1b, 0x55, 0xc7, 0x2b, 0x8e, 0x9d, 0x4a, + 0x92, 0x21, 0x38, 0x88, 0x8b, 0x89, 0x05, 0x92, 0x8a, 0x1e, 0x21, 0xaf, 0xbe, 0x90, 0xe1, 0xd5, + 0x17, 0x7e, 0x29, 0xc1, 0x1e, 0x3e, 0x15, 0xf9, 0x0a, 0xf4, 0x78, 0x46, 0x49, 0xab, 0x7b, 0xa9, + 0x4c, 0x87, 0x21, 0xc9, 0x17, 0xa1, 0x0b, 0x7b, 0x0a, 0x09, 0xc2, 0xe9, 0xb0, 0x09, 0x86, 0x7c, + 0x16, 0x32, 0xab, 0x08, 0x11, 0x96, 0xd3, 0x21, 0xba, 0xf0, 0xd1, 0xba, 0x09, 0x99, 0x8b, 0x66, + 0x55, 0x33, 0x45, 0x31, 0xe9, 0xb9, 0xa0, 0x0d, 0x1d, 0x8d, 0xd3, 0x7f, 0x93, 0x30, 0xc7, 0x92, + 0x0a, 0x0f, 0x12, 0xea, 0x26, 0x62, 0xe6, 0x94, 0x15, 0x5c, 0x36, 0x11, 0x03, 0x6c, 0x46, 0x69, + 0xe9, 0xa7, 0x7e, 0x73, 0x0d, 0xe4, 0xe4, 0x2f, 0x52, 0x4b, 0x97, 0x39, 0x5a, 0x3a, 0x1c, 0xd5, + 0x92, 0x80, 0x3f, 0x05, 0xc1, 0xa1, 0x24, 0x98, 0xcd, 0xd0, 0xd5, 0x47, 0x12, 0x5e, 0x90, 0xf8, + 0xea, 0x58, 0xbc, 0x59, 0x11, 0x17, 0xe3, 0x16, 0x43, 0xc5, 0xb8, 0x36, 0xf4, 0xe5, 0x95, 0xe4, + 0xae, 0x3e, 0x48, 0x88, 0xc4, 0x49, 0x4c, 0x2a, 0x1f, 0x48, 0x38, 0x14, 0x27, 0xc1, 0x3d, 0x8d, + 0xa5, 0xb9, 0x47, 0x12, 0xae, 0x7f, 0xcf, 0xbb, 0x89, 0xb9, 0xca, 0x22, 0xb8, 0x50, 0xed, 0xb1, + 0x07, 0x64, 0x91, 0x62, 0x78, 0x86, 0x53, 0x0c, 0x0f, 0xda, 0x4c, 0xa7, 0xc0, 0x66, 0xba, 0x9a, + 0x36, 0x33, 0xc3, 0x99, 0x9e, 0xd1, 0x80, 0x3d, 0x07, 0x79, 0x57, 0xc6, 0x70, 0xb1, 0x31, 0xd4, + 0xca, 0xd2, 0xe0, 0x7b, 0x24, 0x0d, 0x92, 0xb9, 0x0a, 0xc2, 0x88, 0xad, 0xed, 0x0a, 0x74, 0x96, + 0x55, 0x47, 0x4d, 0x53, 0xf8, 0xc5, 0x94, 0x16, 0x54, 0x47, 0xa5, 0x56, 0x86, 0x11, 0x0b, 0x67, + 0x1f, 0x24, 0x24, 0x40, 0x2e, 0x3f, 0xca, 0x75, 0x1c, 0x50, 0xb8, 0x7d, 0xcc, 0x98, 0x72, 0xd0, + 0x6d, 0x37, 0x34, 0x0d, 0xd9, 0xc4, 0x8e, 0x7a, 0x8a, 0xde, 0x67, 0x30, 0x78, 0xef, 0x0b, 0x12, + 0x0a, 0xb8, 0xf6, 0x56, 0x4b, 0xff, 0x2c, 0x47, 0xfa, 0x23, 0x02, 0xe9, 0x39, 0x8c, 0x29, 0x37, + 0xe1, 0x70, 0x22, 0x50, 0x4b, 0xfa, 0xf8, 0x7d, 0x37, 0x0c, 0x79, 0x14, 0xc9, 0x39, 0x56, 0x82, + 0x0a, 0x52, 0x9d, 0xf3, 0x5c, 0x81, 0x71, 0xbb, 0x6e, 0x3a, 0x25, 0xe6, 0x21, 0x76, 0xc9, 0x31, + 0x4b, 0x1a, 0xe6, 0xb8, 0xa4, 0x56, 0xab, 0xd4, 0x1d, 0x73, 0x36, 0x5b, 0x1e, 0x2c, 0x96, 0xed, + 0xdb, 0x26, 0x11, 0x69, 0xb6, 0x5a, 0x95, 0x5f, 0x80, 0xa9, 0x32, 0x0b, 0x1c, 0x62, 0x32, 0x9d, + 0x98, 0xcc, 0x44, 0x39, 0x74, 0xb4, 0x18, 0x22, 0xf6, 0x0f, 0xb0, 0x1b, 0x73, 0x43, 0xe3, 0x01, + 0x23, 0x91, 0xeb, 0x6a, 0x75, 0x1a, 0xa5, 0xa2, 0x6c, 0x33, 0xbb, 0xf3, 0x86, 0x90, 0x5f, 0x87, + 0x51, 0x1f, 0xb3, 0x91, 0x51, 0xb2, 0xad, 0x8f, 0x92, 0x2b, 0x07, 0xe3, 0x74, 0x73, 0x2c, 0x8e, + 0x2c, 0x38, 0x02, 0xe6, 0xba, 0x5b, 0x3d, 0x89, 0x09, 0xcb, 0x82, 0xc9, 0xc8, 0x75, 0x91, 0x2c, + 0x64, 0x94, 0x9e, 0xf6, 0x52, 0x0c, 0x5f, 0x22, 0x32, 0xe2, 0x1d, 0x98, 0x5c, 0xc1, 0x46, 0x5c, + 0x32, 0x89, 0x15, 0x47, 0x35, 0xd8, 0xdb, 0xba, 0x06, 0x47, 0x57, 0xa2, 0x8e, 0xc1, 0x94, 0x58, + 0x84, 0x83, 0xa1, 0x21, 0x85, 0x16, 0x06, 0xd8, 0xc2, 0xf6, 0xad, 0x44, 0xeb, 0x0a, 0x21, 0x23, + 0xbb, 0x17, 0x27, 0x06, 0x51, 0x5e, 0x5f, 0xbb, 0xca, 0x13, 0x08, 0x83, 0xa9, 0x16, 0x4e, 0x72, + 0x42, 0xca, 0x78, 0x24, 0xa4, 0xf8, 0x7d, 0x5b, 0x79, 0x90, 0x85, 0x31, 0x5e, 0x07, 0x8b, 0x1c, + 0xd3, 0x30, 0x88, 0xad, 0x8c, 0x2a, 0x22, 0x18, 0x45, 0x76, 0xb9, 0x5d, 0x34, 0x08, 0x93, 0x0e, + 0xb9, 0x00, 0x23, 0x3e, 0xab, 0x09, 0x61, 0x75, 0x60, 0xac, 0xe1, 0x26, 0x40, 0x10, 0xf7, 0x08, + 0xec, 0x6a, 0x5a, 0xb4, 0xb7, 0x0e, 0x20, 0xf1, 0x61, 0x27, 0x33, 0x50, 0xba, 0x16, 0x38, 0x07, + 0xc3, 0x61, 0xeb, 0xf4, 0x30, 0x48, 0x28, 0xd8, 0x1d, 0x32, 0x33, 0x8a, 0x37, 0x0b, 0xe3, 0xa1, + 0xc9, 0x09, 0xf1, 0xd8, 0x85, 0x79, 0xcc, 0x07, 0xf4, 0x1c, 0x64, 0xf3, 0x32, 0x8c, 0xf2, 0xe6, + 0xd7, 0x1b, 0x3e, 0x4b, 0x02, 0x5a, 0x74, 0xa2, 0x28, 0x07, 0xe7, 0x21, 0xe7, 0xad, 0x62, 0xfc, + 0xfe, 0x8b, 0xd7, 0x26, 0xdd, 0x84, 0x75, 0xda, 0xdf, 0x4c, 0x6c, 0x78, 0x39, 0x73, 0x16, 0x86, + 0xe9, 0x72, 0x26, 0x82, 0xd7, 0x83, 0xf1, 0x86, 0x48, 0x77, 0x08, 0x6d, 0x1e, 0x26, 0xbc, 0xf1, + 0xa2, 0xfe, 0x8c, 0xb1, 0x7b, 0x31, 0xf6, 0x28, 0x85, 0x0a, 0x19, 0x1e, 0x21, 0x32, 0x0b, 0xe3, + 0x74, 0x6c, 0x01, 0x0d, 0xe2, 0x1d, 0x79, 0x02, 0xc4, 0x25, 0xf1, 0xd7, 0xa0, 0x78, 0x7c, 0xf0, + 0xdd, 0x03, 0xd3, 0xe9, 0x23, 0x71, 0x9c, 0x42, 0x72, 0x72, 0x1a, 0xa6, 0xf5, 0x3c, 0xec, 0xa3, + 0xec, 0xc4, 0x90, 0xea, 0xc7, 0xa4, 0x28, 0xdf, 0x02, 0x4a, 0xbe, 0xfc, 0xf7, 0x23, 0x09, 0x26, + 0x38, 0xdb, 0xa1, 0x34, 0x15, 0x81, 0x4d, 0xdb, 0xa7, 0x5c, 0xe2, 0x78, 0xf0, 0xc1, 0xb8, 0xdd, + 0x9c, 0xbf, 0x32, 0xf0, 0x43, 0x09, 0x9e, 0x89, 0x07, 0x49, 0xbb, 0x49, 0x79, 0x25, 0x5c, 0x1f, + 0xb8, 0x90, 0x4e, 0xa2, 0x27, 0xab, 0x12, 0xfc, 0xae, 0x03, 0xc6, 0xe2, 0x68, 0x7d, 0x05, 0x6b, + 0x05, 0xf2, 0xdf, 0xc0, 0x0e, 0x7c, 0x89, 0x46, 0x37, 0x8d, 0x52, 0x19, 0x55, 0x1d, 0x15, 0xaf, + 0xee, 0xfb, 0x4e, 0x1d, 0x8e, 0xbd, 0x8d, 0x44, 0x31, 0x16, 0x5c, 0x04, 0x6a, 0x20, 0xdb, 0xeb, + 0xfe, 0x46, 0xf9, 0x12, 0x64, 0xeb, 0xea, 0x86, 0xd9, 0x70, 0x5a, 0x39, 0xa1, 0xa7, 0x28, 0x3e, + 0x95, 0xff, 0x8c, 0xac, 0x81, 0x39, 0x3b, 0xdb, 0x2f, 0xd4, 0xec, 0x13, 0xd7, 0xc2, 0xf1, 0x0c, + 0x2a, 0x3f, 0x91, 0xf0, 0x62, 0x38, 0x1e, 0xea, 0xe9, 0x36, 0xfe, 0x3f, 0xd1, 0x4a, 0x24, 0xce, + 0x34, 0x21, 0x65, 0x7d, 0x79, 0x3b, 0x4f, 0xd6, 0x5d, 0x53, 0xed, 0x75, 0x6c, 0x6a, 0x5d, 0xb4, + 0x7b, 0x49, 0xb5, 0xd7, 0x3d, 0x81, 0xb2, 0x4d, 0x81, 0x12, 0xf7, 0x74, 0x5c, 0x01, 0x15, 0x85, + 0x14, 0x89, 0x78, 0x7d, 0x6c, 0x93, 0xfa, 0xcf, 0x1d, 0xf8, 0x6e, 0xab, 0x68, 0xb3, 0xf3, 0x15, + 0x52, 0xd2, 0x05, 0x8e, 0x92, 0xf6, 0x47, 0x95, 0x14, 0x95, 0x51, 0x39, 0x80, 0x0b, 0x44, 0xa2, + 0x6e, 0xa6, 0xaa, 0xb7, 0x25, 0xe8, 0x65, 0xcb, 0xe0, 0xa0, 0x02, 0xa4, 0x24, 0x05, 0x74, 0x24, + 0x2a, 0x20, 0x13, 0xaf, 0x80, 0x4e, 0x81, 0x02, 0x9a, 0xe5, 0x0b, 0xe5, 0xfb, 0x24, 0xd5, 0xfa, + 0x36, 0xaf, 0xe1, 0x15, 0xc3, 0xd6, 0xed, 0xbb, 0x13, 0x53, 0x6c, 0x0c, 0x57, 0xca, 0x0d, 0x9c, + 0x61, 0x63, 0x20, 0x5a, 0xda, 0x71, 0xff, 0x4b, 0x07, 0xec, 0x5e, 0xb2, 0x2b, 0xcb, 0x4c, 0xd5, + 0xb7, 0x2d, 0xd5, 0xb0, 0x57, 0x63, 0x6c, 0xf9, 0x04, 0x0c, 0xd9, 0x66, 0xc3, 0xd2, 0x50, 0x89, + 0x37, 0x69, 0x32, 0xe9, 0x5b, 0xf6, 0x4f, 0x1d, 0x5e, 0x8f, 0xdb, 0x8e, 0x6e, 0x90, 0xd3, 0x6e, + 0x9e, 0xb1, 0x0f, 0xfb, 0x00, 0x96, 0xf9, 0x77, 0x34, 0x3b, 0x5b, 0xbb, 0xa3, 0x39, 0x1d, 0xd2, + 0xef, 0x84, 0x5f, 0xbf, 0x51, 0x71, 0x95, 0x49, 0x5c, 0x46, 0x8f, 0x76, 0x30, 0x83, 0x7e, 0xab, + 0x03, 0xdf, 0xe3, 0xbc, 0x76, 0xdf, 0x41, 0x96, 0xa1, 0x56, 0xff, 0x52, 0xf4, 0x74, 0x2c, 0xa4, + 0xa7, 0xc0, 0xdd, 0xfe, 0xb0, 0xb0, 0xf4, 0x6e, 0x7f, 0xb8, 0x99, 0xe9, 0xe8, 0x33, 0x09, 0xd7, + 0x6f, 0x6e, 0xe8, 0x77, 0x1a, 0x3a, 0xbe, 0x85, 0x4c, 0x17, 0x0c, 0x4f, 0x56, 0xbf, 0x09, 0x04, + 0x8f, 0x4c, 0x28, 0x78, 0xb0, 0x05, 0x40, 0x67, 0x7b, 0x0b, 0x00, 0xc9, 0x5b, 0x00, 0x1c, 0x8f, + 0xdb, 0xb5, 0x46, 0x24, 0x52, 0x26, 0xf0, 0xa6, 0x35, 0xd2, 0xce, 0x54, 0xf1, 0x2e, 0x49, 0xa6, + 0xd7, 0x6a, 0xc8, 0xaa, 0x20, 0x43, 0xdb, 0x58, 0xc6, 0xf7, 0x33, 0xe8, 0x2b, 0x87, 0x2d, 0x53, + 0x47, 0xe1, 0x64, 0x5c, 0xe2, 0xe3, 0x32, 0x43, 0x13, 0x1f, 0xb7, 0xaf, 0x79, 0x7f, 0xbc, 0x03, + 0x3f, 0xda, 0x58, 0x34, 0xdc, 0x4d, 0x91, 0xcd, 0xa4, 0x25, 0x47, 0xc6, 0x4f, 0x89, 0x0b, 0x04, + 0xf4, 0xd2, 0x19, 0x32, 0x93, 0x4b, 0xcc, 0x3f, 0x5a, 0x59, 0xac, 0x52, 0x1f, 0x39, 0x15, 0x52, + 0xaa, 0x12, 0x3c, 0x0f, 0xe6, 0xe9, 0x84, 0x3e, 0x36, 0xe0, 0x77, 0x86, 0xd5, 0xba, 0x80, 0xbe, + 0x56, 0x6b, 0x58, 0xad, 0x7c, 0x9d, 0x50, 0xb5, 0xf2, 0x3b, 0x99, 0x5a, 0x3f, 0x92, 0xb0, 0x73, + 0xde, 0xb2, 0xf4, 0xbb, 0x7a, 0x15, 0x55, 0x50, 0xf9, 0xda, 0x7d, 0xa4, 0x35, 0x1c, 0x34, 0x6f, + 0x1a, 0x8e, 0xa5, 0x6a, 0x62, 0xff, 0x1b, 0x82, 0xae, 0xd5, 0x86, 0x51, 0xb6, 0xa9, 0x2a, 0xc9, + 0x87, 0x7c, 0x18, 0x06, 0x34, 0x8a, 0x59, 0x52, 0xc9, 0x5b, 0x0f, 0xaa, 0xb4, 0x9d, 0x5e, 0x3b, + 0x7d, 0x02, 0x22, 0xcb, 0x74, 0x69, 0x40, 0xf4, 0x44, 0xb2, 0xfd, 0x65, 0xc1, 0x41, 0xfb, 0x01, + 0xbf, 0xb8, 0x42, 0x5e, 0xdd, 0x40, 0xb2, 0x3f, 0x0e, 0x80, 0xa5, 0xfb, 0xd7, 0x01, 0x30, 0xbf, + 0xa5, 0xb2, 0xbe, 0xba, 0x8a, 0x33, 0x7e, 0x6c, 0x1a, 0x38, 0xe1, 0x4e, 0xd5, 0x7b, 0xbf, 0x99, + 0x3c, 0x54, 0xd1, 0x9d, 0xb5, 0xc6, 0xca, 0xb4, 0x66, 0xd6, 0xe8, 0x63, 0x3f, 0xfa, 0xdf, 0x71, + 0xbb, 0xbc, 0x3e, 0xe3, 0x6c, 0xd4, 0x91, 0x8d, 0x11, 0xec, 0x62, 0x2f, 0x26, 0xbf, 0xa0, 0xaf, + 0xae, 0x16, 0x06, 0x39, 0x32, 0x29, 0xaf, 0xc1, 0xc0, 0x92, 0x5d, 0x29, 0xa2, 0x7b, 0xaa, 0x55, + 0xb6, 0x6f, 0xd6, 0x9d, 0x9b, 0x0d, 0xa1, 0xa6, 0x49, 0x9d, 0x90, 0xa3, 0x94, 0x11, 0xbf, 0x52, + 0x02, 0xa4, 0x94, 0x3c, 0x0e, 0xa8, 0x81, 0x36, 0xff, 0xfb, 0x96, 0xdd, 0xb8, 0x53, 0xab, 0xaa, + 0x7a, 0xed, 0x86, 0xa9, 0xad, 0xa3, 0xf2, 0x75, 0x3c, 0x79, 0x62, 0x27, 0x1a, 0xac, 0x62, 0xb0, + 0x59, 0x62, 0xe9, 0xb7, 0x1a, 0x2b, 0x2f, 0xa0, 0x0d, 0x3c, 0xf1, 0xfd, 0x45, 0x5e, 0x97, 0x3c, + 0x06, 0xbd, 0xb6, 0x5e, 0x31, 0x54, 0xa7, 0x61, 0x91, 0x4d, 0x78, 0x7f, 0xb1, 0xd9, 0x10, 0xbf, + 0xde, 0x88, 0xf2, 0x45, 0xd7, 0x1b, 0xd1, 0x0e, 0x26, 0xd2, 0x9b, 0xe4, 0xa9, 0xcb, 0xb2, 0x5e, + 0x31, 0xf0, 0x12, 0x7a, 0x19, 0xb2, 0xee, 0xdf, 0x54, 0x90, 0xfe, 0xb9, 0x4b, 0x9f, 0x3f, 0x9e, + 0xcc, 0xda, 0xb8, 0xe5, 0x8f, 0x8f, 0x27, 0x8f, 0xa7, 0x98, 0xc5, 0x59, 0x4d, 0xa3, 0x76, 0x5a, + 0xa4, 0xa4, 0xe4, 0x31, 0xe8, 0x5c, 0x20, 0x4b, 0x59, 0x97, 0x64, 0xcf, 0xe7, 0x8f, 0x27, 0xb1, + 0xcd, 0x16, 0x71, 0xab, 0x72, 0x1f, 0x3f, 0x1a, 0xc2, 0x1c, 0x98, 0x9a, 0x7c, 0x80, 0xc8, 0x4f, + 0x2e, 0x7b, 0x91, 0xda, 0x07, 0x46, 0x70, 0xbf, 0x8b, 0x3d, 0x6e, 0x17, 0xbe, 0xce, 0x35, 0x0f, + 0x5d, 0x77, 0xd5, 0x6a, 0x03, 0xd1, 0x9d, 0xeb, 0xc1, 0xb8, 0x84, 0xec, 0x93, 0xcf, 0xdb, 0x8d, + 0x63, 0x5c, 0xe5, 0x3f, 0x32, 0xd8, 0xcf, 0x67, 0xcb, 0x35, 0xdd, 0x20, 0x35, 0x61, 0xce, 0x96, + 0xba, 0xbd, 0xed, 0xd6, 0x8b, 0x30, 0xe0, 0xbb, 0x47, 0x49, 0x6a, 0x31, 0xcd, 0x92, 0x8a, 0x94, + 0x14, 0xbc, 0x76, 0x36, 0x91, 0xf1, 0xf5, 0x26, 0xe1, 0x55, 0xce, 0xce, 0xd6, 0xaf, 0x72, 0x76, + 0x89, 0xaf, 0x72, 0x5e, 0x85, 0xac, 0xed, 0xa8, 0x4e, 0xc3, 0xa6, 0xd7, 0xec, 0x0e, 0xc5, 0xaa, + 0x15, 0xcb, 0xba, 0x8c, 0xe1, 0x8b, 0x14, 0xaf, 0x50, 0x88, 0x2b, 0x6e, 0xc4, 0x2b, 0x5a, 0x39, + 0x8a, 0x6b, 0x1b, 0xf1, 0x40, 0xcc, 0x70, 0xbf, 0x49, 0x1e, 0x36, 0xcd, 0x92, 0x47, 0x6b, 0x6f, + 0xa0, 0x65, 0x47, 0x5d, 0x47, 0xcf, 0x59, 0xaa, 0xe1, 0x88, 0xbd, 0xf1, 0x3a, 0x64, 0x2b, 0x18, + 0x82, 0x6e, 0xaa, 0xa6, 0xe3, 0xc4, 0xc3, 0xb4, 0x3c, 0xf2, 0x58, 0xb5, 0x45, 0x8a, 0x5d, 0x38, + 0x11, 0xf7, 0xaa, 0x89, 0xc7, 0x91, 0xb2, 0x0f, 0x3f, 0x8d, 0xe0, 0x75, 0x31, 0x81, 0x36, 0x70, + 0x6c, 0x99, 0x75, 0xb9, 0x51, 0x1d, 0x1f, 0x84, 0x50, 0x9a, 0x1c, 0x74, 0x63, 0x7e, 0xd8, 0xb5, + 0x4c, 0xef, 0x33, 0x3e, 0x4a, 0x44, 0x47, 0xa0, 0x51, 0x22, 0xda, 0xe1, 0xf1, 0x76, 0xea, 0xd1, + 0x41, 0xc8, 0x2c, 0xd9, 0x15, 0x59, 0x85, 0x6e, 0xef, 0x71, 0xdf, 0x33, 0x09, 0x1e, 0x47, 0xe1, + 0xf2, 0xd3, 0xe9, 0xe0, 0x58, 0x7e, 0x29, 0x43, 0x0f, 0x7b, 0x77, 0x97, 0xe4, 0xd5, 0x1e, 0x60, + 0x7e, 0x26, 0x25, 0x20, 0x1b, 0xe5, 0xbf, 0x25, 0x18, 0x16, 0x3d, 0x48, 0x3a, 0x97, 0x40, 0x4c, + 0x80, 0x97, 0x7f, 0xb6, 0x3d, 0x3c, 0xc6, 0xd3, 0x3b, 0x12, 0x8c, 0xc5, 0x3e, 0x9e, 0xb9, 0x94, + 0x6e, 0x00, 0x2e, 0x72, 0x7e, 0xfe, 0x09, 0x90, 0x19, 0x8b, 0xdf, 0x92, 0x60, 0x6f, 0xe2, 0x2d, + 0xe2, 0x2b, 0xe9, 0x46, 0x12, 0x12, 0xc8, 0x3f, 0xf7, 0x84, 0x04, 0x18, 0xbb, 0x0f, 0x24, 0x18, + 0xe2, 0xbe, 0x7c, 0x3c, 0x9d, 0x30, 0x02, 0x0f, 0x29, 0x7f, 0xa9, 0x0d, 0x24, 0xc6, 0xca, 0xff, + 0x49, 0x90, 0x8f, 0x79, 0x75, 0x78, 0x31, 0x81, 0xb6, 0x18, 0x35, 0x3f, 0xdb, 0x36, 0x2a, 0x63, + 0xee, 0xdf, 0x25, 0xd8, 0xcd, 0xbf, 0x19, 0x7a, 0x26, 0xb5, 0xcc, 0x3e, 0xac, 0xfc, 0x5f, 0xb5, + 0x83, 0xc5, 0xb8, 0xd9, 0x80, 0x9d, 0xe1, 0x0b, 0x49, 0x49, 0x41, 0x24, 0x04, 0x9f, 0x3f, 0xd7, + 0x1a, 0x7c, 0x40, 0x11, 0xfc, 0xbb, 0x41, 0x67, 0x52, 0x69, 0x39, 0x84, 0x95, 0xa8, 0x88, 0xf8, + 0xbb, 0x3d, 0xff, 0x04, 0xbb, 0xa2, 0x77, 0x54, 0x4e, 0xa4, 0x21, 0xe9, 0xc7, 0xc8, 0x5f, 0x68, + 0x15, 0x83, 0x31, 0xf0, 0xbf, 0x12, 0x8c, 0x88, 0xb7, 0x37, 0x49, 0x74, 0x85, 0x98, 0xf9, 0xab, + 0xed, 0x62, 0x06, 0xdc, 0x29, 0xe6, 0x32, 0xea, 0xc5, 0x54, 0x06, 0xc8, 0x43, 0x4d, 0x74, 0xa7, + 0x14, 0x97, 0x48, 0xdd, 0x28, 0x99, 0x78, 0xb5, 0xf1, 0x4a, 0x7a, 0xb7, 0xe5, 0x12, 0x48, 0x8c, + 0x92, 0xa9, 0xef, 0x23, 0xbe, 0x2d, 0xc1, 0x68, 0xdc, 0x59, 0x70, 0xa1, 0x45, 0x8d, 0xf8, 0x23, + 0xc1, 0x5c, 0xfb, 0xb8, 0xc1, 0xe8, 0xc4, 0x3d, 0x2d, 0x3a, 0x93, 0xca, 0xcd, 0x43, 0x58, 0xc9, + 0xd1, 0x29, 0xee, 0x70, 0x06, 0x6b, 0x2b, 0xae, 0x9c, 0x5f, 0x48, 0xef, 0xf2, 0x61, 0xdc, 0x44, + 0x6d, 0xa5, 0x29, 0xc7, 0xfb, 0x52, 0xb4, 0xf8, 0x8d, 0x5e, 0xca, 0x14, 0x2d, 0x24, 0x90, 0x36, + 0x45, 0x27, 0x3e, 0x4d, 0x92, 0xff, 0x5f, 0x82, 0xf1, 0xf8, 0x2b, 0xd3, 0xe9, 0x92, 0x89, 0x00, + 0x3b, 0xbf, 0xf0, 0x24, 0xd8, 0x8c, 0xcb, 0x6f, 0x48, 0x30, 0x91, 0x70, 0x74, 0x7c, 0xb9, 0xf5, + 0x81, 0xfc, 0x8e, 0x72, 0xed, 0x89, 0xd0, 0x19, 0xa3, 0xff, 0x23, 0x41, 0x4e, 0x78, 0x6e, 0x78, + 0x3e, 0x95, 0xe1, 0x47, 0x11, 0xf3, 0x57, 0xda, 0x44, 0x0c, 0xe8, 0x2f, 0xe1, 0xfa, 0xe9, 0xe5, + 0xf4, 0xb6, 0xcf, 0x41, 0x4f, 0xd4, 0x5f, 0xca, 0xeb, 0xa3, 0x6f, 0x49, 0x20, 0x73, 0x4e, 0xa9, + 0x4e, 0x26, 0x95, 0x17, 0x22, 0x28, 0xf9, 0x8b, 0x2d, 0xa3, 0x30, 0x26, 0xfe, 0x11, 0x06, 0x22, + 0xe7, 0x3f, 0x49, 0x3b, 0x9c, 0x30, 0x42, 0xfe, 0x7c, 0x8b, 0x08, 0xfe, 0x55, 0x47, 0xf4, 0x64, + 0x25, 0x69, 0xd5, 0x11, 0xc1, 0x48, 0x5c, 0x75, 0x08, 0xcf, 0x34, 0x70, 0xbc, 0xe7, 0x1f, 0x68, + 0x24, 0xc5, 0x7b, 0x2e, 0x56, 0x62, 0xbc, 0x8f, 0x3d, 0x93, 0x90, 0xff, 0x53, 0x82, 0x3d, 0x82, + 0x03, 0x89, 0xb3, 0x89, 0x41, 0x90, 0x87, 0x96, 0xbf, 0xdc, 0x16, 0x5a, 0x80, 0x21, 0x41, 0x29, + 0xff, 0x6c, 0xe2, 0x5e, 0xbb, 0x2d, 0x86, 0xe2, 0xeb, 0xe0, 0xb2, 0x0d, 0xdb, 0x83, 0xd5, 0xd8, + 0x63, 0x09, 0xf4, 0x02, 0xd0, 0xf9, 0x33, 0xad, 0x40, 0x07, 0x22, 0x4a, 0x42, 0xdd, 0x2e, 0x49, + 0xac, 0x78, 0xf4, 0xc4, 0x88, 0x92, 0xae, 0x4e, 0x25, 0xd7, 0xa1, 0x3f, 0xf0, 0x2b, 0x4f, 0x47, + 0x13, 0xc8, 0xfa, 0x81, 0xf3, 0xa7, 0x5b, 0x00, 0xf6, 0x87, 0x8f, 0xc8, 0xef, 0xd7, 0xcd, 0xa4, + 0x22, 0xd4, 0x44, 0x48, 0x0c, 0x1f, 0xa2, 0x1f, 0x5e, 0xc3, 0xe6, 0x29, 0xf8, 0xd5, 0xb5, 0xb3, + 0xa9, 0x68, 0x86, 0xd1, 0x12, 0xcd, 0x33, 0xfe, 0xa7, 0xb6, 0x70, 0x11, 0x80, 0x5b, 0x25, 0x4c, + 0x52, 0x2e, 0x0f, 0x29, 0xb1, 0x08, 0x10, 0x57, 0xe2, 0xc3, 0xd9, 0x85, 0x53, 0xe0, 0x4b, 0xca, + 0x2e, 0x51, 0x94, 0xc4, 0xec, 0x22, 0xae, 0xe5, 0xe5, 0xbb, 0xde, 0xfc, 0xf4, 0xe1, 0x11, 0x69, + 0x6e, 0xed, 0xc3, 0x8f, 0x27, 0xa4, 0x47, 0x1f, 0x4f, 0x48, 0xbf, 0xfd, 0x78, 0x42, 0xfa, 0xaf, + 0x4f, 0x26, 0xb6, 0x3d, 0xfa, 0x64, 0x62, 0xdb, 0xaf, 0x3e, 0x99, 0xd8, 0xf6, 0xf7, 0x2f, 0xfa, + 0x8a, 0xfc, 0x8b, 0xde, 0x28, 0x37, 0xd4, 0x15, 0x7b, 0x86, 0x8d, 0x79, 0x5c, 0x33, 0x2d, 0xe4, + 0xff, 0x5c, 0x53, 0x75, 0x63, 0xa6, 0x66, 0x96, 0x1b, 0x55, 0x64, 0x37, 0x7f, 0x9e, 0x11, 0x1f, + 0x08, 0xac, 0x64, 0xf1, 0x4f, 0x2b, 0x9e, 0xfe, 0x73, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5c, 0x05, + 0xa8, 0x24, 0x9c, 0x52, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3468,14 +4009,21 @@ type MsgClient interface { EmergencySettleMarket(ctx context.Context, in *MsgEmergencySettleMarket, opts ...grpc.CallOption) (*MsgEmergencySettleMarketResponse, error) // IncreasePositionMargin defines a method for increasing margin of a position IncreasePositionMargin(ctx context.Context, in *MsgIncreasePositionMargin, opts ...grpc.CallOption) (*MsgIncreasePositionMarginResponse, error) + // DecreasePositionMargin defines a method for decreasing margin of a position + DecreasePositionMargin(ctx context.Context, in *MsgDecreasePositionMargin, opts ...grpc.CallOption) (*MsgDecreasePositionMarginResponse, error) // RewardsOptOut defines a method for opting out of rewards RewardsOptOut(ctx context.Context, in *MsgRewardsOptOut, opts ...grpc.CallOption) (*MsgRewardsOptOutResponse, error) // AdminUpdateBinaryOptionsMarket defines method for updating a binary options // market by admin AdminUpdateBinaryOptionsMarket(ctx context.Context, in *MsgAdminUpdateBinaryOptionsMarket, opts ...grpc.CallOption) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) - // - ReclaimLockedFunds(ctx context.Context, in *MsgReclaimLockedFunds, opts ...grpc.CallOption) (*MsgReclaimLockedFundsResponse, error) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // UpdateSpotMarket modifies certain spot market fields (admin only) + UpdateSpotMarket(ctx context.Context, in *MsgUpdateSpotMarket, opts ...grpc.CallOption) (*MsgUpdateSpotMarketResponse, error) + // UpdateDerivativeMarket modifies certain derivative market fields (admin + // only) + UpdateDerivativeMarket(ctx context.Context, in *MsgUpdateDerivativeMarket, opts ...grpc.CallOption) (*MsgUpdateDerivativeMarketResponse, error) + AuthorizeStakeGrants(ctx context.Context, in *MsgAuthorizeStakeGrants, opts ...grpc.CallOption) (*MsgAuthorizeStakeGrantsResponse, error) + ActivateStakeGrant(ctx context.Context, in *MsgActivateStakeGrant, opts ...grpc.CallOption) (*MsgActivateStakeGrantResponse, error) } type msgClient struct { @@ -3729,6 +4277,15 @@ func (c *msgClient) IncreasePositionMargin(ctx context.Context, in *MsgIncreaseP return out, nil } +func (c *msgClient) DecreasePositionMargin(ctx context.Context, in *MsgDecreasePositionMargin, opts ...grpc.CallOption) (*MsgDecreasePositionMarginResponse, error) { + out := new(MsgDecreasePositionMarginResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/DecreasePositionMargin", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) RewardsOptOut(ctx context.Context, in *MsgRewardsOptOut, opts ...grpc.CallOption) (*MsgRewardsOptOutResponse, error) { out := new(MsgRewardsOptOutResponse) err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/RewardsOptOut", in, out, opts...) @@ -3747,18 +4304,45 @@ func (c *msgClient) AdminUpdateBinaryOptionsMarket(ctx context.Context, in *MsgA return out, nil } -func (c *msgClient) ReclaimLockedFunds(ctx context.Context, in *MsgReclaimLockedFunds, opts ...grpc.CallOption) (*MsgReclaimLockedFundsResponse, error) { - out := new(MsgReclaimLockedFundsResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/ReclaimLockedFunds", in, out, opts...) +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateSpotMarket(ctx context.Context, in *MsgUpdateSpotMarket, opts ...grpc.CallOption) (*MsgUpdateSpotMarketResponse, error) { + out := new(MsgUpdateSpotMarketResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateSpotMarket", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { - out := new(MsgUpdateParamsResponse) - err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateParams", in, out, opts...) +func (c *msgClient) UpdateDerivativeMarket(ctx context.Context, in *MsgUpdateDerivativeMarket, opts ...grpc.CallOption) (*MsgUpdateDerivativeMarketResponse, error) { + out := new(MsgUpdateDerivativeMarketResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/UpdateDerivativeMarket", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) AuthorizeStakeGrants(ctx context.Context, in *MsgAuthorizeStakeGrants, opts ...grpc.CallOption) (*MsgAuthorizeStakeGrantsResponse, error) { + out := new(MsgAuthorizeStakeGrantsResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/AuthorizeStakeGrants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) ActivateStakeGrant(ctx context.Context, in *MsgActivateStakeGrant, opts ...grpc.CallOption) (*MsgActivateStakeGrantResponse, error) { + out := new(MsgActivateStakeGrantResponse) + err := c.cc.Invoke(ctx, "/injective.exchange.v1beta1.Msg/ActivateStakeGrant", in, out, opts...) if err != nil { return nil, err } @@ -3840,14 +4424,21 @@ type MsgServer interface { EmergencySettleMarket(context.Context, *MsgEmergencySettleMarket) (*MsgEmergencySettleMarketResponse, error) // IncreasePositionMargin defines a method for increasing margin of a position IncreasePositionMargin(context.Context, *MsgIncreasePositionMargin) (*MsgIncreasePositionMarginResponse, error) + // DecreasePositionMargin defines a method for decreasing margin of a position + DecreasePositionMargin(context.Context, *MsgDecreasePositionMargin) (*MsgDecreasePositionMarginResponse, error) // RewardsOptOut defines a method for opting out of rewards RewardsOptOut(context.Context, *MsgRewardsOptOut) (*MsgRewardsOptOutResponse, error) // AdminUpdateBinaryOptionsMarket defines method for updating a binary options // market by admin AdminUpdateBinaryOptionsMarket(context.Context, *MsgAdminUpdateBinaryOptionsMarket) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) - // - ReclaimLockedFunds(context.Context, *MsgReclaimLockedFunds) (*MsgReclaimLockedFundsResponse, error) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // UpdateSpotMarket modifies certain spot market fields (admin only) + UpdateSpotMarket(context.Context, *MsgUpdateSpotMarket) (*MsgUpdateSpotMarketResponse, error) + // UpdateDerivativeMarket modifies certain derivative market fields (admin + // only) + UpdateDerivativeMarket(context.Context, *MsgUpdateDerivativeMarket) (*MsgUpdateDerivativeMarketResponse, error) + AuthorizeStakeGrants(context.Context, *MsgAuthorizeStakeGrants) (*MsgAuthorizeStakeGrantsResponse, error) + ActivateStakeGrant(context.Context, *MsgActivateStakeGrant) (*MsgActivateStakeGrantResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -3935,18 +4526,30 @@ func (*UnimplementedMsgServer) EmergencySettleMarket(ctx context.Context, req *M func (*UnimplementedMsgServer) IncreasePositionMargin(ctx context.Context, req *MsgIncreasePositionMargin) (*MsgIncreasePositionMarginResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IncreasePositionMargin not implemented") } +func (*UnimplementedMsgServer) DecreasePositionMargin(ctx context.Context, req *MsgDecreasePositionMargin) (*MsgDecreasePositionMarginResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DecreasePositionMargin not implemented") +} func (*UnimplementedMsgServer) RewardsOptOut(ctx context.Context, req *MsgRewardsOptOut) (*MsgRewardsOptOutResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RewardsOptOut not implemented") } func (*UnimplementedMsgServer) AdminUpdateBinaryOptionsMarket(ctx context.Context, req *MsgAdminUpdateBinaryOptionsMarket) (*MsgAdminUpdateBinaryOptionsMarketResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AdminUpdateBinaryOptionsMarket not implemented") } -func (*UnimplementedMsgServer) ReclaimLockedFunds(ctx context.Context, req *MsgReclaimLockedFunds) (*MsgReclaimLockedFundsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ReclaimLockedFunds not implemented") -} func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (*UnimplementedMsgServer) UpdateSpotMarket(ctx context.Context, req *MsgUpdateSpotMarket) (*MsgUpdateSpotMarketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSpotMarket not implemented") +} +func (*UnimplementedMsgServer) UpdateDerivativeMarket(ctx context.Context, req *MsgUpdateDerivativeMarket) (*MsgUpdateDerivativeMarketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDerivativeMarket not implemented") +} +func (*UnimplementedMsgServer) AuthorizeStakeGrants(ctx context.Context, req *MsgAuthorizeStakeGrants) (*MsgAuthorizeStakeGrantsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AuthorizeStakeGrants not implemented") +} +func (*UnimplementedMsgServer) ActivateStakeGrant(ctx context.Context, req *MsgActivateStakeGrant) (*MsgActivateStakeGrantResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ActivateStakeGrant not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -4438,13 +5041,31 @@ func _Msg_IncreasePositionMargin_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _Msg_RewardsOptOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgRewardsOptOut) +func _Msg_DecreasePositionMargin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDecreasePositionMargin) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).RewardsOptOut(ctx, in) + return srv.(MsgServer).DecreasePositionMargin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Msg/DecreasePositionMargin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DecreasePositionMargin(ctx, req.(*MsgDecreasePositionMargin)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_RewardsOptOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRewardsOptOut) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RewardsOptOut(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, @@ -4474,38 +5095,92 @@ func _Msg_AdminUpdateBinaryOptionsMarket_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } -func _Msg_ReclaimLockedFunds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgReclaimLockedFunds) +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).ReclaimLockedFunds(ctx, in) + return srv.(MsgServer).UpdateParams(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.exchange.v1beta1.Msg/ReclaimLockedFunds", + FullMethod: "/injective.exchange.v1beta1.Msg/UpdateParams", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).ReclaimLockedFunds(ctx, req.(*MsgReclaimLockedFunds)) + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) } return interceptor(ctx, in, info, handler) } -func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgUpdateParams) +func _Msg_UpdateSpotMarket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateSpotMarket) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).UpdateParams(ctx, in) + return srv.(MsgServer).UpdateSpotMarket(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/injective.exchange.v1beta1.Msg/UpdateParams", + FullMethod: "/injective.exchange.v1beta1.Msg/UpdateSpotMarket", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + return srv.(MsgServer).UpdateSpotMarket(ctx, req.(*MsgUpdateSpotMarket)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateDerivativeMarket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateDerivativeMarket) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateDerivativeMarket(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Msg/UpdateDerivativeMarket", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateDerivativeMarket(ctx, req.(*MsgUpdateDerivativeMarket)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_AuthorizeStakeGrants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgAuthorizeStakeGrants) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).AuthorizeStakeGrants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Msg/AuthorizeStakeGrants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).AuthorizeStakeGrants(ctx, req.(*MsgAuthorizeStakeGrants)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_ActivateStakeGrant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgActivateStakeGrant) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).ActivateStakeGrant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.exchange.v1beta1.Msg/ActivateStakeGrant", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).ActivateStakeGrant(ctx, req.(*MsgActivateStakeGrant)) } return interceptor(ctx, in, info, handler) } @@ -4622,6 +5297,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "IncreasePositionMargin", Handler: _Msg_IncreasePositionMargin_Handler, }, + { + MethodName: "DecreasePositionMargin", + Handler: _Msg_DecreasePositionMargin_Handler, + }, { MethodName: "RewardsOptOut", Handler: _Msg_RewardsOptOut_Handler, @@ -4630,19 +5309,245 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "AdminUpdateBinaryOptionsMarket", Handler: _Msg_AdminUpdateBinaryOptionsMarket_Handler, }, - { - MethodName: "ReclaimLockedFunds", - Handler: _Msg_ReclaimLockedFunds_Handler, - }, { MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "UpdateSpotMarket", + Handler: _Msg_UpdateSpotMarket_Handler, + }, + { + MethodName: "UpdateDerivativeMarket", + Handler: _Msg_UpdateDerivativeMarket_Handler, + }, + { + MethodName: "AuthorizeStakeGrants", + Handler: _Msg_AuthorizeStakeGrants_Handler, + }, + { + MethodName: "ActivateStakeGrant", + Handler: _Msg_ActivateStakeGrant_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/exchange/v1beta1/tx.proto", } +func (m *MsgUpdateSpotMarket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateSpotMarket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateSpotMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.NewMinNotional.Size() + i -= size + if _, err := m.NewMinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size := m.NewMinQuantityTickSize.Size() + i -= size + if _, err := m.NewMinQuantityTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size := m.NewMinPriceTickSize.Size() + i -= size + if _, err := m.NewMinPriceTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if len(m.NewTicker) > 0 { + i -= len(m.NewTicker) + copy(dAtA[i:], m.NewTicker) + i = encodeVarintTx(dAtA, i, uint64(len(m.NewTicker))) + i-- + dAtA[i] = 0x1a + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintTx(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Admin) > 0 { + i -= len(m.Admin) + copy(dAtA[i:], m.Admin) + i = encodeVarintTx(dAtA, i, uint64(len(m.Admin))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateSpotMarketResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateSpotMarketResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateSpotMarketResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgUpdateDerivativeMarket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateDerivativeMarket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateDerivativeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.NewMaintenanceMarginRatio.Size() + i -= size + if _, err := m.NewMaintenanceMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + { + size := m.NewInitialMarginRatio.Size() + i -= size + if _, err := m.NewInitialMarginRatio.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size := m.NewMinNotional.Size() + i -= size + if _, err := m.NewMinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size := m.NewMinQuantityTickSize.Size() + i -= size + if _, err := m.NewMinQuantityTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size := m.NewMinPriceTickSize.Size() + i -= size + if _, err := m.NewMinPriceTickSize.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if len(m.NewTicker) > 0 { + i -= len(m.NewTicker) + copy(dAtA[i:], m.NewTicker) + i = encodeVarintTx(dAtA, i, uint64(len(m.NewTicker))) + i-- + dAtA[i] = 0x1a + } + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintTx(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0x12 + } + if len(m.Admin) > 0 { + i -= len(m.Admin) + copy(dAtA[i:], m.Admin) + i = encodeVarintTx(dAtA, i, uint64(len(m.Admin))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateDerivativeMarketResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateDerivativeMarketResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateDerivativeMarketResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgUpdateParams) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4906,7 +5811,14 @@ func (m *MsgCreateSpotLimitOrderResponse) MarshalToSizedBuffer(dAtA []byte) (int _ = i var l int _ = l - if len(m.OrderHash) > 0 { + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x12 + } + if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) i = encodeVarintTx(dAtA, i, uint64(len(m.OrderHash))) @@ -4980,6 +5892,24 @@ func (m *MsgBatchCreateSpotLimitOrdersResponse) MarshalToSizedBuffer(dAtA []byte _ = i var l int _ = l + if len(m.FailedOrdersCids) > 0 { + for iNdEx := len(m.FailedOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.CreatedOrdersCids) > 0 { + for iNdEx := len(m.CreatedOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } if len(m.OrderHashes) > 0 { for iNdEx := len(m.OrderHashes) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.OrderHashes[iNdEx]) @@ -5012,6 +5942,16 @@ func (m *MsgInstantSpotMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a { size := m.MinQuantityTickSize.Size() i -= size @@ -5106,6 +6046,16 @@ func (m *MsgInstantPerpetualMarketLaunch) MarshalToSizedBuffer(dAtA []byte) (int _ = i var l int _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 { size := m.MinQuantityTickSize.Size() i -= size @@ -5257,6 +6207,16 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a { size := m.MinQuantityTickSize.Size() i -= size @@ -5405,6 +6365,16 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) MarshalToSizedBuffer(dAtA []byte) _ = i var l int _ = l + { + size := m.MinNotional.Size() + i -= size + if _, err := m.MinNotional.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a { size := m.MinQuantityTickSize.Size() i -= size @@ -5601,6 +6571,13 @@ func (m *MsgCreateSpotMarketOrderResponse) MarshalToSizedBuffer(dAtA []byte) (in _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x1a + } if m.Results != nil { { size, err := m.Results.MarshalToSizedBuffer(dAtA[:i]) @@ -5736,6 +6713,13 @@ func (m *MsgCreateDerivativeLimitOrderResponse) MarshalToSizedBuffer(dAtA []byte _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x12 + } if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) @@ -5806,6 +6790,13 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) MarshalToSizedBuffer(dAtA []b _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x12 + } if len(m.OrderHash) > 0 { i -= len(m.OrderHash) copy(dAtA[i:], m.OrderHash) @@ -5880,6 +6871,24 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) MarshalToSizedBuffer(dAtA _ = i var l int _ = l + if len(m.FailedOrdersCids) > 0 { + for iNdEx := len(m.FailedOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.CreatedOrdersCids) > 0 { + for iNdEx := len(m.CreatedOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } if len(m.OrderHashes) > 0 { for iNdEx := len(m.OrderHashes) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.OrderHashes[iNdEx]) @@ -6301,6 +7310,60 @@ func (m *MsgBatchUpdateOrdersResponse) MarshalToSizedBuffer(dAtA []byte) (int, e _ = i var l int _ = l + if len(m.FailedBinaryOptionsOrdersCids) > 0 { + for iNdEx := len(m.FailedBinaryOptionsOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedBinaryOptionsOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedBinaryOptionsOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedBinaryOptionsOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x62 + } + } + if len(m.CreatedBinaryOptionsOrdersCids) > 0 { + for iNdEx := len(m.CreatedBinaryOptionsOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedBinaryOptionsOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedBinaryOptionsOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedBinaryOptionsOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x5a + } + } + if len(m.FailedDerivativeOrdersCids) > 0 { + for iNdEx := len(m.FailedDerivativeOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedDerivativeOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedDerivativeOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedDerivativeOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x52 + } + } + if len(m.CreatedDerivativeOrdersCids) > 0 { + for iNdEx := len(m.CreatedDerivativeOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedDerivativeOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedDerivativeOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedDerivativeOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x4a + } + } + if len(m.FailedSpotOrdersCids) > 0 { + for iNdEx := len(m.FailedSpotOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.FailedSpotOrdersCids[iNdEx]) + copy(dAtA[i:], m.FailedSpotOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.FailedSpotOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.CreatedSpotOrdersCids) > 0 { + for iNdEx := len(m.CreatedSpotOrdersCids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.CreatedSpotOrdersCids[iNdEx]) + copy(dAtA[i:], m.CreatedSpotOrdersCids[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.CreatedSpotOrdersCids[iNdEx]))) + i-- + dAtA[i] = 0x3a + } + } if len(m.BinaryOptionsOrderHashes) > 0 { for iNdEx := len(m.BinaryOptionsOrderHashes) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.BinaryOptionsOrderHashes[iNdEx]) @@ -6430,6 +7493,13 @@ func (m *MsgCreateDerivativeMarketOrderResponse) MarshalToSizedBuffer(dAtA []byt _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x1a + } if m.Results != nil { { size, err := m.Results.MarshalToSizedBuffer(dAtA[:i]) @@ -6585,6 +7655,13 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) MarshalToSizedBuffer(dAtA [] _ = i var l int _ = l + if len(m.Cid) > 0 { + i -= len(m.Cid) + copy(dAtA[i:], m.Cid) + i = encodeVarintTx(dAtA, i, uint64(len(m.Cid))) + i-- + dAtA[i] = 0x1a + } if m.Results != nil { { size, err := m.Results.MarshalToSizedBuffer(dAtA[:i]) @@ -7299,6 +8376,90 @@ func (m *MsgIncreasePositionMarginResponse) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } +func (m *MsgDecreasePositionMargin) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDecreasePositionMargin) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDecreasePositionMargin) 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 = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if len(m.MarketId) > 0 { + i -= len(m.MarketId) + copy(dAtA[i:], m.MarketId) + i = encodeVarintTx(dAtA, i, uint64(len(m.MarketId))) + i-- + dAtA[i] = 0x22 + } + if len(m.DestinationSubaccountId) > 0 { + i -= len(m.DestinationSubaccountId) + copy(dAtA[i:], m.DestinationSubaccountId) + i = encodeVarintTx(dAtA, i, uint64(len(m.DestinationSubaccountId))) + i-- + dAtA[i] = 0x1a + } + if len(m.SourceSubaccountId) > 0 { + i -= len(m.SourceSubaccountId) + copy(dAtA[i:], m.SourceSubaccountId) + i = encodeVarintTx(dAtA, i, uint64(len(m.SourceSubaccountId))) + 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 *MsgDecreasePositionMarginResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDecreasePositionMarginResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDecreasePositionMarginResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgPrivilegedExecuteContract) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -7671,45 +8832,248 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) MarshalToSizedBuffer(dAtA [] return len(dAtA) - i, nil } -func encodeVarintTx(dAtA []byte, offset int, v uint64) int { - offset -= sovTx(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +func (m *MsgAuthorizeStakeGrants) 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 *MsgUpdateParams) Size() (n int) { - if m == nil { - return 0 - } + +func (m *MsgAuthorizeStakeGrants) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgAuthorizeStakeGrants) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i var l int _ = l - l = len(m.Authority) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) + if len(m.Grants) > 0 { + for iNdEx := len(m.Grants) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Grants[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } } - l = m.Params.Size() - n += 1 + l + sovTx(uint64(l)) - return n + 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 *MsgUpdateParamsResponse) Size() (n int) { - if m == nil { - return 0 +func (m *MsgAuthorizeStakeGrantsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err } - var l int - _ = l - return n + return dAtA[:n], nil } -func (m *MsgDeposit) Size() (n int) { - if m == nil { - return 0 - } +func (m *MsgAuthorizeStakeGrantsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgAuthorizeStakeGrantsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgActivateStakeGrant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgActivateStakeGrant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgActivateStakeGrant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Granter) > 0 { + i -= len(m.Granter) + copy(dAtA[i:], m.Granter) + i = encodeVarintTx(dAtA, i, uint64(len(m.Granter))) + 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 *MsgActivateStakeGrantResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgActivateStakeGrantResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgActivateStakeGrantResponse) 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 + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *MsgUpdateSpotMarket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Admin) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.NewTicker) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.NewMinPriceTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewMinQuantityTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewMinNotional.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateSpotMarketResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgUpdateDerivativeMarket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Admin) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.MarketId) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.NewTicker) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.NewMinPriceTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewMinQuantityTickSize.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewMinNotional.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewInitialMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.NewMaintenanceMarginRatio.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateDerivativeMarketResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgDeposit) Size() (n int) { + if m == nil { + return 0 + } var l int _ = l l = len(m.Sender) @@ -7787,6 +9151,10 @@ func (m *MsgCreateSpotLimitOrderResponse) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -7821,6 +9189,18 @@ func (m *MsgBatchCreateSpotLimitOrdersResponse) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } + if len(m.CreatedOrdersCids) > 0 { + for _, s := range m.CreatedOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedOrdersCids) > 0 { + for _, s := range m.FailedOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } return n } @@ -7850,6 +9230,8 @@ func (m *MsgInstantSpotMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) return n } @@ -7906,6 +9288,8 @@ func (m *MsgInstantPerpetualMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) return n } @@ -7968,6 +9352,8 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) return n } @@ -8027,6 +9413,8 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Size() (n int) { n += 1 + l + sovTx(uint64(l)) l = m.MinQuantityTickSize.Size() n += 1 + l + sovTx(uint64(l)) + l = m.MinNotional.Size() + n += 1 + l + sovTx(uint64(l)) return n } @@ -8068,6 +9456,10 @@ func (m *MsgCreateSpotMarketOrderResponse) Size() (n int) { l = m.Results.Size() n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -8111,6 +9503,10 @@ func (m *MsgCreateDerivativeLimitOrderResponse) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -8139,6 +9535,10 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -8173,6 +9573,18 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } + if len(m.CreatedOrdersCids) > 0 { + for _, s := range m.CreatedOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedOrdersCids) > 0 { + for _, s := range m.FailedOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } return n } @@ -8380,6 +9792,42 @@ func (m *MsgBatchUpdateOrdersResponse) Size() (n int) { n += 1 + l + sovTx(uint64(l)) } } + if len(m.CreatedSpotOrdersCids) > 0 { + for _, s := range m.CreatedSpotOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedSpotOrdersCids) > 0 { + for _, s := range m.FailedSpotOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.CreatedDerivativeOrdersCids) > 0 { + for _, s := range m.CreatedDerivativeOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedDerivativeOrdersCids) > 0 { + for _, s := range m.FailedDerivativeOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.CreatedBinaryOptionsOrdersCids) > 0 { + for _, s := range m.CreatedBinaryOptionsOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.FailedBinaryOptionsOrdersCids) > 0 { + for _, s := range m.FailedBinaryOptionsOrdersCids { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } + } return n } @@ -8412,6 +9860,10 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Size() (n int) { l = m.Results.Size() n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -8463,6 +9915,10 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) Size() (n int) { l = m.Results.Size() n += 1 + l + sovTx(uint64(l)) } + l = len(m.Cid) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } return n } @@ -8771,7 +10227,7 @@ func (m *MsgIncreasePositionMarginResponse) Size() (n int) { return n } -func (m *MsgPrivilegedExecuteContract) Size() (n int) { +func (m *MsgDecreasePositionMargin) Size() (n int) { if m == nil { return 0 } @@ -8781,37 +10237,33 @@ func (m *MsgPrivilegedExecuteContract) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.Funds) + l = len(m.SourceSubaccountId) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.ContractAddress) + l = len(m.DestinationSubaccountId) if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.Data) + l = len(m.MarketId) if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = m.Amount.Size() + n += 1 + l + sovTx(uint64(l)) return n } -func (m *MsgPrivilegedExecuteContractResponse) Size() (n int) { +func (m *MsgDecreasePositionMarginResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if len(m.FundsDiff) > 0 { - for _, e := range m.FundsDiff { - l = e.Size() - n += 1 + l + sovTx(uint64(l)) - } - } return n } -func (m *MsgRewardsOptOut) Size() (n int) { +func (m *MsgPrivilegedExecuteContract) Size() (n int) { if m == nil { return 0 } @@ -8821,14 +10273,54 @@ func (m *MsgRewardsOptOut) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - return n -} - -func (m *MsgRewardsOptOutResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int + l = len(m.Funds) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.Data) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgPrivilegedExecuteContractResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FundsDiff) > 0 { + for _, e := range m.FundsDiff { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgRewardsOptOut) 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)) + } + return n +} + +func (m *MsgRewardsOptOutResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int _ = l return n } @@ -8934,13 +10426,67 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) Size() (n int) { return n } +func (m *MsgAuthorizeStakeGrants) 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)) + } + if len(m.Grants) > 0 { + for _, e := range m.Grants { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgAuthorizeStakeGrantsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgActivateStakeGrant) 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.Granter) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgActivateStakeGrantResponse) 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 } func sozTx(x uint64) (n int) { return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateSpotMarket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -8963,15 +10509,15 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateParams: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateSpotMarket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateSpotMarket: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Admin", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -8999,13 +10545,13 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Authority = string(dAtA[iNdEx:postIndex]) + m.Admin = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -9015,22 +10561,155 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewTicker", 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.NewTicker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewMinPriceTickSize", 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 + } + if err := m.NewMinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewMinQuantityTickSize", 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 + } + if err := m.NewMinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewMinNotional", 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 + } + if err := m.NewMinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9055,7 +10734,7 @@ func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateSpotMarketResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9078,10 +10757,10 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgUpdateParamsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateSpotMarketResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgUpdateParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateSpotMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -9105,7 +10784,7 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgDeposit) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateDerivativeMarket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9128,15 +10807,15 @@ func (m *MsgDeposit) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgDeposit: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateDerivativeMarket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDeposit: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateDerivativeMarket: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Admin", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9164,11 +10843,11 @@ func (m *MsgDeposit) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.Admin = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9196,13 +10875,13 @@ func (m *MsgDeposit) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewTicker", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -9212,128 +10891,95 @@ func (m *MsgDeposit) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.NewTicker = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewMinPriceTickSize", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx + 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 + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgDepositResponse) Unmarshal(dAtA []byte) 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 + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgDepositResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgDepositResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { + if err := m.NewMinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewMinQuantityTickSize", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + 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 + } } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgWithdraw) Unmarshal(dAtA []byte) 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 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx } - if iNdEx >= l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.NewMinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgWithdraw: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgWithdraw: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewMinNotional", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9361,11 +11007,13 @@ func (m *MsgWithdraw) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + if err := m.NewMinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewInitialMarginRatio", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9393,13 +11041,15 @@ func (m *MsgWithdraw) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + if err := m.NewInitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field NewMaintenanceMarginRatio", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -9409,22 +11059,23 @@ func (m *MsgWithdraw) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.NewMaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9449,7 +11100,7 @@ func (m *MsgWithdraw) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgWithdrawResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateDerivativeMarketResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9472,10 +11123,10 @@ func (m *MsgWithdrawResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgWithdrawResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateDerivativeMarketResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgWithdrawResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateDerivativeMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -9499,7 +11150,7 @@ func (m *MsgWithdrawResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateParams) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9522,15 +11173,15 @@ func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateSpotLimitOrder: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateParams: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateSpotLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateParams: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9558,11 +11209,11 @@ func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.Authority = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9589,7 +11240,7 @@ func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -9614,7 +11265,7 @@ func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateSpotLimitOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9637,44 +11288,12 @@ func (m *MsgCreateSpotLimitOrderResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateSpotLimitOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgUpdateParamsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateSpotLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgUpdateParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -9696,7 +11315,7 @@ func (m *MsgCreateSpotLimitOrderResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) error { +func (m *MsgDeposit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9719,10 +11338,10 @@ func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrders: wiretype end group for non-group") + return fmt.Errorf("proto: MsgDeposit: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrders: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgDeposit: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9759,9 +11378,9 @@ func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -9771,31 +11390,62 @@ func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Orders = append(m.Orders, SpotOrder{}) - if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + 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 := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx @@ -9812,7 +11462,7 @@ func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchCreateSpotLimitOrdersResponse) Unmarshal(dAtA []byte) error { +func (m *MsgDepositResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9835,44 +11485,12 @@ func (m *MsgBatchCreateSpotLimitOrdersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrdersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgDepositResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgDepositResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHashes", 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.OrderHashes = append(m.OrderHashes, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -9894,7 +11512,7 @@ func (m *MsgBatchCreateSpotLimitOrdersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { +func (m *MsgWithdraw) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9917,10 +11535,10 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantSpotMarketLaunch: wiretype end group for non-group") + return fmt.Errorf("proto: MsgWithdraw: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantSpotMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgWithdraw: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -9957,7 +11575,7 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -9985,111 +11603,13 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Ticker = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BaseDenom", 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.BaseDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", 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.QuoteDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", 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 - } - if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -10099,23 +11619,22 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10140,7 +11659,7 @@ func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantSpotMarketLaunchResponse) Unmarshal(dAtA []byte) error { +func (m *MsgWithdrawResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10163,10 +11682,10 @@ func (m *MsgInstantSpotMarketLaunchResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantSpotMarketLaunchResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgWithdrawResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantSpotMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgWithdrawResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -10190,7 +11709,7 @@ func (m *MsgInstantSpotMarketLaunchResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { +func (m *MsgCreateSpotLimitOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10213,10 +11732,10 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateSpotLimitOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateSpotLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -10253,9 +11772,9 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -10265,59 +11784,78 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Ticker = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", 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 - } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + intStringLen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.QuoteDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreateSpotLimitOrderResponse) Unmarshal(dAtA []byte) 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: MsgCreateSpotLimitOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateSpotLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleBase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10345,11 +11883,11 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleBase = string(dAtA[iNdEx:postIndex]) + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleQuote", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10377,49 +11915,61 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleQuote = string(dAtA[iNdEx:postIndex]) + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } - m.OracleScaleFactor = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OracleScaleFactor |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTx } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - m.OracleType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OracleType |= types1.OracleType(b&0x7F) << shift - if b < 0x80 { - break - } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBatchCreateSpotLimitOrders) Unmarshal(dAtA []byte) 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 } - case 8: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrders: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrders: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10447,15 +11997,13 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -10465,63 +12013,79 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Orders = append(m.Orders, SpotOrder{}) + if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", 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 - } + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } - intStringLen := int(stringLen) - if intStringLen < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - if postIndex > l { + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBatchCreateSpotLimitOrdersResponse) Unmarshal(dAtA []byte) 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 } - if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 11: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrdersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCreateSpotLimitOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHashes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10549,13 +12113,11 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OrderHashes = append(m.OrderHashes, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 12: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10583,13 +12145,11 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CreatedOrdersCids = append(m.CreatedOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 13: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailedOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10617,9 +12177,7 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.FailedOrdersCids = append(m.FailedOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -10642,7 +12200,7 @@ func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantPerpetualMarketLaunchResponse) Unmarshal(dAtA []byte) error { +func (m *MsgInstantSpotMarketLaunch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10665,60 +12223,10 @@ func (m *MsgInstantPerpetualMarketLaunchResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantSpotMarketLaunch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: 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 (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) 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: MsgInstantBinaryOptionsMarketLaunch: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantSpotMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -10787,7 +12295,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleSymbol", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BaseDenom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10815,11 +12323,11 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleSymbol = string(dAtA[iNdEx:postIndex]) + m.BaseDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleProvider", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10847,83 +12355,11 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OracleProvider = string(dAtA[iNdEx:postIndex]) + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) - } - m.OracleType = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OracleType |= types1.OracleType(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) - } - m.OracleScaleFactor = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OracleScaleFactor |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", 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 - } - if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -10951,115 +12387,13 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) - } - m.ExpirationTimestamp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpirationTimestamp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) - } - m.SettlementTimestamp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.SettlementTimestamp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Admin", 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.Admin = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", 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.QuoteDenom = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 13: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11087,13 +12421,13 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 14: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11121,7 +12455,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -11146,7 +12480,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) error { +func (m *MsgInstantSpotMarketLaunchResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11169,10 +12503,10 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) err fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantSpotMarketLaunchResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantSpotMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -11196,7 +12530,7 @@ func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) err } return nil } -func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { +func (m *MsgInstantPerpetualMarketLaunch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11219,10 +12553,10 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -11387,9 +12721,9 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 6: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) } - m.OracleType = 0 + m.OracleScaleFactor = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -11399,16 +12733,16 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.OracleType |= types1.OracleType(b&0x7F) << shift + m.OracleScaleFactor |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 7: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) } - m.OracleScaleFactor = 0 + m.OracleType = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -11418,16 +12752,16 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.OracleScaleFactor |= uint32(b&0x7F) << shift + m.OracleType |= types1.OracleType(b&0x7F) << shift if b < 0x80 { break } } case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Expiry", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) } - m.Expiry = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -11437,14 +12771,29 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Expiry |= int64(b&0x7F) << shift + 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 + } + if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11472,13 +12821,13 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11506,13 +12855,13 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11540,13 +12889,13 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11574,13 +12923,13 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11608,13 +12957,13 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11642,7 +12991,7 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -11667,7 +13016,7 @@ func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Unmarshal(dAtA []byte) error { +func (m *MsgInstantPerpetualMarketLaunchResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11690,10 +13039,10 @@ func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Unmarshal(dAtA []byte) err fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunchResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantPerpetualMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -11717,7 +13066,7 @@ func (m *MsgInstantExpiryFuturesMarketLaunchResponse) Unmarshal(dAtA []byte) err } return nil } -func (m *MsgCreateSpotMarketOrder) Unmarshal(dAtA []byte) error { +func (m *MsgInstantBinaryOptionsMarketLaunch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11740,10 +13089,10 @@ func (m *MsgCreateSpotMarketOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateSpotMarketOrder: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateSpotMarketOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -11780,9 +13129,9 @@ func (m *MsgCreateSpotMarketOrder) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -11792,78 +13141,27 @@ func (m *MsgCreateSpotMarketOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Ticker = 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 *MsgCreateSpotMarketOrderResponse) Unmarshal(dAtA []byte) 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: MsgCreateSpotMarketOrderResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateSpotMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OracleSymbol", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11891,13 +13189,13 @@ func (m *MsgCreateSpotMarketOrderResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + m.OracleSymbol = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OracleProvider", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -11907,81 +13205,65 @@ func (m *MsgCreateSpotMarketOrderResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Results == nil { - m.Results = &SpotMarketOrderResults{} - } - if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OracleProvider = 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 + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SpotMarketOrderResults) Unmarshal(dAtA []byte) 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 + m.OracleType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleType |= types1.OracleType(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { - return io.ErrUnexpectedEOF + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.OracleScaleFactor = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleScaleFactor |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SpotMarketOrderResults: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SpotMarketOrderResults: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12009,13 +13291,13 @@ func (m *SpotMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12043,15 +13325,15 @@ func (m *SpotMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) } - var stringLen uint64 + m.ExpirationTimestamp = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12061,7 +13343,45 @@ func (m *SpotMarketOrderResults) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.ExpirationTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) + } + m.SettlementTimestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.SettlementTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admin", 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 } @@ -12077,63 +13397,77 @@ func (m *SpotMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Admin = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + 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 } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgCreateDerivativeLimitOrder) Unmarshal(dAtA []byte) 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 + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", wireType) } - if iNdEx >= l { + 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 } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgCreateDerivativeLimitOrder: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateDerivativeLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12161,13 +13495,15 @@ func (m *MsgCreateDerivativeLimitOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 15: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12177,22 +13513,23 @@ func (m *MsgCreateDerivativeLimitOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -12217,7 +13554,7 @@ func (m *MsgCreateDerivativeLimitOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateDerivativeLimitOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgInstantBinaryOptionsMarketLaunchResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12240,44 +13577,12 @@ func (m *MsgCreateDerivativeLimitOrderResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateDerivativeLimitOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateDerivativeLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantBinaryOptionsMarketLaunchResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -12299,7 +13604,7 @@ func (m *MsgCreateDerivativeLimitOrderResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateBinaryOptionsLimitOrder) Unmarshal(dAtA []byte) error { +func (m *MsgInstantExpiryFuturesMarketLaunch) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12322,10 +13627,10 @@ func (m *MsgCreateBinaryOptionsLimitOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrder: wiretype end group for non-group") + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunch: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -12362,9 +13667,9 @@ func (m *MsgCreateBinaryOptionsLimitOrder) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Ticker", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12374,47 +13679,2000 @@ func (m *MsgCreateBinaryOptionsLimitOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Ticker = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDenom", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + 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 } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - + m.QuoteDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleBase", 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.OracleBase = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleQuote", 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.OracleQuote = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleType", wireType) + } + m.OracleType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleType |= types1.OracleType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OracleScaleFactor", wireType) + } + m.OracleScaleFactor = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OracleScaleFactor |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Expiry", wireType) + } + m.Expiry = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Expiry |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MakerFeeRate", 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 + } + if err := m.MakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TakerFeeRate", 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 + } + if err := m.TakerFeeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialMarginRatio", 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 + } + if err := m.InitialMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaintenanceMarginRatio", 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 + } + if err := m.MaintenanceMarginRatio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinPriceTickSize", 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 + } + if err := m.MinPriceTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinQuantityTickSize", 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 + } + if err := m.MinQuantityTickSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinNotional", 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 + } + if err := m.MinNotional.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgInstantExpiryFuturesMarketLaunchResponse) Unmarshal(dAtA []byte) 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: MsgInstantExpiryFuturesMarketLaunchResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgInstantExpiryFuturesMarketLaunchResponse: 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 (m *MsgCreateSpotMarketOrder) Unmarshal(dAtA []byte) 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: MsgCreateSpotMarketOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateSpotMarketOrder: 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 Order", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateSpotMarketOrderResponse) Unmarshal(dAtA []byte) 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: MsgCreateSpotMarketOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateSpotMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Results == nil { + m.Results = &SpotMarketOrderResults{} + } + if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = 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 *SpotMarketOrderResults) Unmarshal(dAtA []byte) 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: SpotMarketOrderResults: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SpotMarketOrderResults: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", 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 + } + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Price", 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 + } + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var 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 + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateDerivativeLimitOrder) Unmarshal(dAtA []byte) 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: MsgCreateDerivativeLimitOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateDerivativeLimitOrder: 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 Order", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateDerivativeLimitOrderResponse) Unmarshal(dAtA []byte) 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: MsgCreateDerivativeLimitOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateDerivativeLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = 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 *MsgCreateBinaryOptionsLimitOrder) Unmarshal(dAtA []byte) 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: MsgCreateBinaryOptionsLimitOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrder: 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 Order", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateBinaryOptionsLimitOrderResponse) Unmarshal(dAtA []byte) 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: MsgCreateBinaryOptionsLimitOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = 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 *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) 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: MsgBatchCreateDerivativeLimitOrders: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrders: 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 Orders", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Orders = append(m.Orders, DerivativeOrder{}) + if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgBatchCreateDerivativeLimitOrdersResponse) Unmarshal(dAtA []byte) 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: MsgBatchCreateDerivativeLimitOrdersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHashes", 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.OrderHashes = append(m.OrderHashes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedOrdersCids", 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.CreatedOrdersCids = append(m.CreatedOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedOrdersCids", 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.FailedOrdersCids = append(m.FailedOrdersCids, 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 *MsgCancelSpotOrder) Unmarshal(dAtA []byte) 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: MsgCancelSpotOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCancelSpotOrder: 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 MarketId", 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.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", 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.SubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cid", 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.Cid = 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 *MsgCancelSpotOrderResponse) Unmarshal(dAtA []byte) 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: MsgCancelSpotOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCancelSpotOrderResponse: 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 (m *MsgBatchCancelSpotOrders) Unmarshal(dAtA []byte) 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: MsgBatchCancelSpotOrders: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCancelSpotOrders: 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 Data", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data, OrderData{}) + if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateBinaryOptionsLimitOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12437,44 +15695,82 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgBatchCancelSpotOrdersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsLimitOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgBatchCancelSpotOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - if iNdEx >= l { + m.Success = append(m.Success, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.Success) == 0 { + m.Success = make([]bool, 0, elementCount) } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = append(m.Success, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -12496,7 +15792,7 @@ func (m *MsgCreateBinaryOptionsLimitOrderResponse) Unmarshal(dAtA []byte) error } return nil } -func (m *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) error { +func (m *MsgBatchCancelBinaryOptionsOrders) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12519,10 +15815,10 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrders: wiretype end group for non-group") + return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrders: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrders: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrders: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -12559,7 +15855,7 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Orders", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12576,21 +15872,141 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) error { break } } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Orders = append(m.Orders, DerivativeOrder{}) - if err := m.Orders[len(m.Orders)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data, OrderData{}) + if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgBatchCancelBinaryOptionsOrdersResponse) Unmarshal(dAtA []byte) 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: MsgBatchCancelBinaryOptionsOrdersResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = append(m.Success, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.Success) == 0 { + m.Success = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = append(m.Success, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -12612,7 +16028,7 @@ func (m *MsgBatchCreateDerivativeLimitOrders) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchCreateDerivativeLimitOrdersResponse) Unmarshal(dAtA []byte) error { +func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12635,15 +16051,15 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) Unmarshal(dAtA []byte) err fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrdersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgBatchUpdateOrders: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCreateDerivativeLimitOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgBatchUpdateOrders: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHashes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12671,61 +16087,11 @@ func (m *MsgBatchCreateDerivativeLimitOrdersResponse) Unmarshal(dAtA []byte) err if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHashes = append(m.OrderHashes, string(dAtA[iNdEx:postIndex])) + m.Sender = 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 *MsgCancelSpotOrder) Unmarshal(dAtA []byte) 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: MsgCancelSpotOrder: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelSpotOrder: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12753,11 +16119,11 @@ func (m *MsgCancelSpotOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SpotMarketIdsToCancelAll", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12785,11 +16151,11 @@ func (m *MsgCancelSpotOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.SpotMarketIdsToCancelAll = append(m.SpotMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeMarketIdsToCancelAll", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12817,13 +16183,13 @@ func (m *MsgCancelSpotOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.DerivativeMarketIdsToCancelAll = append(m.DerivativeMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 4: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SpotOrdersToCancel", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12833,29 +16199,31 @@ func (m *MsgCancelSpotOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + m.SpotOrdersToCancel = append(m.SpotOrdersToCancel, &OrderData{}) + if err := m.SpotOrdersToCancel[len(m.SpotOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 5: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrdersToCancel", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -12865,127 +16233,131 @@ func (m *MsgCancelSpotOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Cid = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { + m.DerivativeOrdersToCancel = append(m.DerivativeOrdersToCancel, &OrderData{}) + if err := m.DerivativeOrdersToCancel[len(m.DerivativeOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpotOrdersToCreate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthTx } - if (iNdEx + skippy) > l { + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgCancelSpotOrderResponse) Unmarshal(dAtA []byte) 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 + m.SpotOrdersToCreate = append(m.SpotOrdersToCreate, &SpotOrder{}) + if err := m.SpotOrdersToCreate[len(m.SpotOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - if iNdEx >= l { - return io.ErrUnexpectedEOF + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrdersToCreate", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgCancelSpotOrderResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelSpotOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DerivativeOrdersToCreate = append(m.DerivativeOrdersToCreate, &DerivativeOrder{}) + if err := m.DerivativeOrdersToCreate[len(m.DerivativeOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if (skippy < 0) || (iNdEx+skippy) < 0 { + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrdersToCancel", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthTx } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgBatchCancelSpotOrders) Unmarshal(dAtA []byte) 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 + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.BinaryOptionsOrdersToCancel = append(m.BinaryOptionsOrdersToCancel, &OrderData{}) + if err := m.BinaryOptionsOrdersToCancel[len(m.BinaryOptionsOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelSpotOrders: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelSpotOrders: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsMarketIdsToCancelAll", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13013,11 +16385,11 @@ func (m *MsgBatchCancelSpotOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.BinaryOptionsMarketIdsToCancelAll = append(m.BinaryOptionsMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrdersToCreate", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13044,8 +16416,8 @@ func (m *MsgBatchCancelSpotOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data, OrderData{}) - if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.BinaryOptionsOrdersToCreate = append(m.BinaryOptionsOrdersToCreate, &DerivativeOrder{}) + if err := m.BinaryOptionsOrdersToCreate[len(m.BinaryOptionsOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -13070,7 +16442,7 @@ func (m *MsgBatchCancelSpotOrders) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { +func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13093,10 +16465,10 @@ func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelSpotOrdersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgBatchUpdateOrdersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelSpotOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgBatchUpdateOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -13116,7 +16488,7 @@ func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { break } } - m.Success = append(m.Success, bool(v != 0)) + m.SpotCancelSuccess = append(m.SpotCancelSuccess, bool(v != 0)) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { @@ -13145,8 +16517,8 @@ func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { } var elementCount int elementCount = packedLen - if elementCount != 0 && len(m.Success) == 0 { - m.Success = make([]bool, 0, elementCount) + if elementCount != 0 && len(m.SpotCancelSuccess) == 0 { + m.SpotCancelSuccess = make([]bool, 0, elementCount) } for iNdEx < postIndex { var v int @@ -13164,64 +16536,84 @@ func (m *MsgBatchCancelSpotOrdersResponse) Unmarshal(dAtA []byte) error { break } } - m.Success = append(m.Success, bool(v != 0)) + m.SpotCancelSuccess = append(m.SpotCancelSuccess, bool(v != 0)) } } else { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) - } - 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 *MsgBatchCancelBinaryOptionsOrders) Unmarshal(dAtA []byte) 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 + return fmt.Errorf("proto: wrong wireType = %d for field SpotCancelSuccess", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + case 2: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DerivativeCancelSuccess = append(m.DerivativeCancelSuccess, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.DerivativeCancelSuccess) == 0 { + m.DerivativeCancelSuccess = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.DerivativeCancelSuccess = append(m.DerivativeCancelSuccess, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeCancelSuccess", wireType) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrders: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrders: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SpotOrderHashes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13249,13 +16641,13 @@ func (m *MsgBatchCancelBinaryOptionsOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.SpotOrderHashes = append(m.SpotOrderHashes, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrderHashes", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -13265,77 +16657,25 @@ func (m *MsgBatchCancelBinaryOptionsOrders) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Data = append(m.Data, OrderData{}) - if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - 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 *MsgBatchCancelBinaryOptionsOrdersResponse) Unmarshal(dAtA []byte) 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 + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx } - if iNdEx >= l { - return io.ErrUnexpectedEOF + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if postIndex > l { + return io.ErrUnexpectedEOF } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrdersResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelBinaryOptionsOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.DerivativeOrderHashes = append(m.DerivativeOrderHashes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: if wireType == 0 { var v int for shift := uint(0); ; shift += 7 { @@ -13352,7 +16692,7 @@ func (m *MsgBatchCancelBinaryOptionsOrdersResponse) Unmarshal(dAtA []byte) error break } } - m.Success = append(m.Success, bool(v != 0)) + m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) } else if wireType == 2 { var packedLen int for shift := uint(0); ; shift += 7 { @@ -13381,8 +16721,8 @@ func (m *MsgBatchCancelBinaryOptionsOrdersResponse) Unmarshal(dAtA []byte) error } var elementCount int elementCount = packedLen - if elementCount != 0 && len(m.Success) == 0 { - m.Success = make([]bool, 0, elementCount) + if elementCount != 0 && len(m.BinaryOptionsCancelSuccess) == 0 { + m.BinaryOptionsCancelSuccess = make([]bool, 0, elementCount) } for iNdEx < postIndex { var v int @@ -13400,64 +16740,110 @@ func (m *MsgBatchCancelBinaryOptionsOrdersResponse) Unmarshal(dAtA []byte) error break } } - m.Success = append(m.Success, bool(v != 0)) + m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) } } else { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsCancelSuccess", wireType) } - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrderHashes", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { + 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 } - if (iNdEx + skippy) > l { + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) 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 + m.BinaryOptionsOrderHashes = append(m.BinaryOptionsOrderHashes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedSpotOrdersCids", wireType) } - if iNdEx >= l { + 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 } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.CreatedSpotOrdersCids = append(m.CreatedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedSpotOrdersCids", wireType) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBatchUpdateOrders: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchUpdateOrders: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + 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.FailedSpotOrdersCids = append(m.FailedSpotOrdersCids, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedDerivativeOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13485,11 +16871,11 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.CreatedDerivativeOrdersCids = append(m.CreatedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 2: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FailedDerivativeOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13517,11 +16903,11 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.FailedDerivativeOrdersCids = append(m.FailedDerivativeOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpotMarketIdsToCancelAll", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CreatedBinaryOptionsOrdersCids", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13549,11 +16935,93 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SpotMarketIdsToCancelAll = append(m.SpotMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) + m.CreatedBinaryOptionsOrdersCids = append(m.CreatedBinaryOptionsOrdersCids, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 4: + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailedBinaryOptionsOrdersCids", 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.FailedBinaryOptionsOrdersCids = append(m.FailedBinaryOptionsOrdersCids, 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 *MsgCreateDerivativeMarketOrder) Unmarshal(dAtA []byte) 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: MsgCreateDerivativeMarketOrder: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateDerivativeMarketOrder: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeMarketIdsToCancelAll", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13581,11 +17049,11 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DerivativeMarketIdsToCancelAll = append(m.DerivativeMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpotOrdersToCancel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13612,84 +17080,65 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SpotOrdersToCancel = append(m.SpotOrdersToCancel, &OrderData{}) - if err := m.SpotOrdersToCancel[len(m.SpotOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrdersToCancel", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - m.DerivativeOrdersToCancel = append(m.DerivativeOrdersToCancel, &OrderData{}) - if err := m.DerivativeOrdersToCancel[len(m.DerivativeOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpotOrdersToCreate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) 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 postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - m.SpotOrdersToCreate = append(m.SpotOrdersToCreate, &SpotOrder{}) - if err := m.SpotOrdersToCreate[len(m.SpotOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - iNdEx = postIndex - case 8: + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgCreateDerivativeMarketOrderResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateDerivativeMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrdersToCreate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -13699,29 +17148,27 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.DerivativeOrdersToCreate = append(m.DerivativeOrdersToCreate, &DerivativeOrder{}) - if err := m.DerivativeOrdersToCreate[len(m.DerivativeOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 9: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrdersToCancel", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13748,14 +17195,16 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BinaryOptionsOrdersToCancel = append(m.BinaryOptionsOrdersToCancel, &OrderData{}) - if err := m.BinaryOptionsOrdersToCancel[len(m.BinaryOptionsOrdersToCancel)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Results == nil { + m.Results = &DerivativeMarketOrderResults{} + } + if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsMarketIdsToCancelAll", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13783,41 +17232,7 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BinaryOptionsMarketIdsToCancelAll = append(m.BinaryOptionsMarketIdsToCancelAll, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrdersToCreate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BinaryOptionsOrdersToCreate = append(m.BinaryOptionsOrdersToCreate, &DerivativeOrder{}) - if err := m.BinaryOptionsOrdersToCreate[len(m.BinaryOptionsOrdersToCreate)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13840,7 +17255,7 @@ func (m *MsgBatchUpdateOrders) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { +func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13863,155 +17278,49 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchUpdateOrdersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: DerivativeMarketOrderResults: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchUpdateOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SpotCancelSuccess = append(m.SpotCancelSuccess, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - var elementCount int - elementCount = packedLen - if elementCount != 0 && len(m.SpotCancelSuccess) == 0 { - m.SpotCancelSuccess = make([]bool, 0, elementCount) - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.SpotCancelSuccess = append(m.SpotCancelSuccess, bool(v != 0)) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field SpotCancelSuccess", wireType) + return fmt.Errorf("proto: DerivativeMarketOrderResults: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) } - case 2: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.DerivativeCancelSuccess = append(m.DerivativeCancelSuccess, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthTx + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - var elementCount int - elementCount = packedLen - if elementCount != 0 && len(m.DerivativeCancelSuccess) == 0 { - m.DerivativeCancelSuccess = make([]bool, 0, elementCount) - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.DerivativeCancelSuccess = append(m.DerivativeCancelSuccess, bool(v != 0)) + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeCancelSuccess", wireType) } - case 3: + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SpotOrderHashes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14039,11 +17348,13 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SpotOrderHashes = append(m.SpotOrderHashes, string(dAtA[iNdEx:postIndex])) + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DerivativeOrderHashes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14071,81 +17382,46 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DerivativeOrderHashes = append(m.DerivativeOrderHashes, string(dAtA[iNdEx:postIndex])) + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 5: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthTx + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PositionDelta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - var elementCount int - elementCount = packedLen - if elementCount != 0 && len(m.BinaryOptionsCancelSuccess) == 0 { - m.BinaryOptionsCancelSuccess = make([]bool, 0, elementCount) - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.BinaryOptionsCancelSuccess = append(m.BinaryOptionsCancelSuccess, bool(v != 0)) + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsCancelSuccess", wireType) } - case 6: + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PositionDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BinaryOptionsOrderHashes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Payout", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14173,7 +17449,9 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.BinaryOptionsOrderHashes = append(m.BinaryOptionsOrderHashes, string(dAtA[iNdEx:postIndex])) + if err := m.Payout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -14196,7 +17474,7 @@ func (m *MsgBatchUpdateOrdersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateDerivativeMarketOrder) Unmarshal(dAtA []byte) error { +func (m *MsgCreateBinaryOptionsMarketOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14219,10 +17497,10 @@ func (m *MsgCreateDerivativeMarketOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateDerivativeMarketOrder: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateDerivativeMarketOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -14311,7 +17589,7 @@ func (m *MsgCreateDerivativeMarketOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCreateBinaryOptionsMarketOrderResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14334,10 +17612,10 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateDerivativeMarketOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrderResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateDerivativeMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -14363,20 +17641,56 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) error { if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OrderHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + if m.Results == nil { + m.Results = &DerivativeMarketOrderResults{} + } + if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -14386,27 +17700,23 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Results == nil { - m.Results = &DerivativeMarketOrderResults{} - } - if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -14429,7 +17739,7 @@ func (m *MsgCreateDerivativeMarketOrderResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { +func (m *MsgCancelDerivativeOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14452,15 +17762,15 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DerivativeMarketOrderResults: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCancelDerivativeOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DerivativeMarketOrderResults: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCancelDerivativeOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Quantity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14488,13 +17798,11 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Quantity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14522,13 +17830,11 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14556,15 +17862,13 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PositionDelta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -14574,30 +17878,29 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.PositionDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Payout", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderMask", wireType) } - var stringLen uint64 + m.OrderMask = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -14607,79 +17910,14 @@ func (m *DerivativeMarketOrderResults) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.OrderMask |= int32(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 - } - if err := m.Payout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - 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 *MsgCreateBinaryOptionsMarketOrder) Unmarshal(dAtA []byte) 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: MsgCreateBinaryOptionsMarketOrder: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrder: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14707,40 +17945,7 @@ func (m *MsgCreateBinaryOptionsMarketOrder) Unmarshal(dAtA []byte) error { 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 Order", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -14763,7 +17968,7 @@ func (m *MsgCreateBinaryOptionsMarketOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCreateBinaryOptionsMarketOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCancelDerivativeOrderResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14786,80 +17991,12 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCancelDerivativeOrderResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCreateBinaryOptionsMarketOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCancelDerivativeOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", 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.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Results", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Results == nil { - m.Results = &DerivativeMarketOrderResults{} - } - if err := m.Results.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -14881,7 +18018,7 @@ func (m *MsgCreateBinaryOptionsMarketOrderResponse) Unmarshal(dAtA []byte) error } return nil } -func (m *MsgCancelDerivativeOrder) Unmarshal(dAtA []byte) error { +func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14904,10 +18041,10 @@ func (m *MsgCancelDerivativeOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCancelDerivativeOrder: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCancelBinaryOptionsOrder: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelDerivativeOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCancelBinaryOptionsOrder: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -15110,7 +18247,7 @@ func (m *MsgCancelDerivativeOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCancelDerivativeOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgCancelBinaryOptionsOrderResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15133,10 +18270,10 @@ func (m *MsgCancelDerivativeOrderResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCancelDerivativeOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgCancelBinaryOptionsOrderResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelDerivativeOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgCancelBinaryOptionsOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -15160,7 +18297,7 @@ func (m *MsgCancelDerivativeOrderResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { +func (m *OrderData) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15183,15 +18320,15 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCancelBinaryOptionsOrder: wiretype end group for non-group") + return fmt.Errorf("proto: OrderData: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelBinaryOptionsOrder: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: OrderData: 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) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15219,11 +18356,11 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15251,11 +18388,11 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15283,11 +18420,30 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.OrderHash = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field OrderMask", wireType) + } + m.OrderMask = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.OrderMask |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15315,13 +18471,63 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) + m.Cid = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderMask", wireType) + default: + iNdEx = preIndex + skippy, err := skipTx(dAtA[iNdEx:]) + if err != nil { + return err } - m.OrderMask = 0 + 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 *MsgBatchCancelDerivativeOrders) Unmarshal(dAtA []byte) 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: MsgBatchCancelDerivativeOrders: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBatchCancelDerivativeOrders: 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 @@ -15331,16 +18537,29 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.OrderMask |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 6: + 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 Cid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -15350,23 +18569,25 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Cid = string(dAtA[iNdEx:postIndex]) + m.Data = append(m.Data, OrderData{}) + if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -15389,7 +18610,7 @@ func (m *MsgCancelBinaryOptionsOrder) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgCancelBinaryOptionsOrderResponse) Unmarshal(dAtA []byte) error { +func (m *MsgBatchCancelDerivativeOrdersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15412,12 +18633,82 @@ func (m *MsgCancelBinaryOptionsOrderResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgCancelBinaryOptionsOrderResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgBatchCancelDerivativeOrdersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgCancelBinaryOptionsOrderResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgBatchCancelDerivativeOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType == 0 { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = append(m.Success, bool(v != 0)) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + elementCount = packedLen + if elementCount != 0 && len(m.Success) == 0 { + m.Success = make([]bool, 0, elementCount) + } + for iNdEx < postIndex { + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Success = append(m.Success, bool(v != 0)) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -15439,7 +18730,7 @@ func (m *MsgCancelBinaryOptionsOrderResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *OrderData) Unmarshal(dAtA []byte) error { +func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15462,15 +18753,15 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: OrderData: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSubaccountTransfer: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: OrderData: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSubaccountTransfer: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15498,11 +18789,11 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15530,11 +18821,11 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderHash", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15562,32 +18853,13 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.OrderHash = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field OrderMask", wireType) - } - m.OrderMask = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.OrderMask |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: + m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Cid", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -15597,23 +18869,24 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Cid = string(dAtA[iNdEx:postIndex]) + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -15636,7 +18909,7 @@ func (m *OrderData) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgBatchCancelDerivativeOrders) Unmarshal(dAtA []byte) error { +func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15659,10 +18932,60 @@ func (m *MsgBatchCancelDerivativeOrders) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelDerivativeOrders: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSubaccountTransferResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelDerivativeOrders: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSubaccountTransferResponse: 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 (m *MsgExternalTransfer) Unmarshal(dAtA []byte) 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: MsgExternalTransfer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgExternalTransfer: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -15699,9 +19022,9 @@ func (m *MsgBatchCancelDerivativeOrders) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -15711,146 +19034,139 @@ func (m *MsgBatchCancelDerivativeOrders) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data, OrderData{}) - if err := m.Data[len(m.Data)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipTx(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthTx + 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 + } } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *MsgBatchCancelDerivativeOrdersResponse) Unmarshal(dAtA []byte) 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 + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: MsgBatchCancelDerivativeOrdersResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgBatchCancelDerivativeOrdersResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType == 0 { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Success = append(m.Success, bool(v != 0)) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthTx + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx } - if postIndex > l { + if iNdEx >= l { return io.ErrUnexpectedEOF } - var elementCount int - elementCount = packedLen - if elementCount != 0 && len(m.Success) == 0 { - m.Success = make([]bool, 0, elementCount) - } - for iNdEx < postIndex { - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Success = append(m.Success, bool(v != 0)) + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field Success", wireType) } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + 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 := 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 *MsgExternalTransferResponse) Unmarshal(dAtA []byte) 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: MsgExternalTransferResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgExternalTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -15872,7 +19188,7 @@ func (m *MsgBatchCancelDerivativeOrdersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { +func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15895,10 +19211,10 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSubaccountTransfer: wiretype end group for non-group") + return fmt.Errorf("proto: MsgLiquidatePosition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSubaccountTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgLiquidatePosition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -15935,7 +19251,7 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15963,11 +19279,11 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15995,11 +19311,11 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16026,7 +19342,10 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Order == nil { + m.Order = &DerivativeOrder{} + } + if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -16051,7 +19370,7 @@ func (m *MsgSubaccountTransfer) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { +func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16074,10 +19393,10 @@ func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSubaccountTransferResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgLiquidatePositionResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSubaccountTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgLiquidatePositionResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -16101,7 +19420,7 @@ func (m *MsgSubaccountTransferResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { +func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16124,10 +19443,10 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgExternalTransfer: wiretype end group for non-group") + return fmt.Errorf("proto: MsgEmergencySettleMarket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgExternalTransfer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgEmergencySettleMarket: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -16164,7 +19483,7 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16192,11 +19511,11 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + m.SubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16224,40 +19543,7 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -16280,7 +19566,7 @@ func (m *MsgExternalTransfer) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { +func (m *MsgEmergencySettleMarketResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16303,10 +19589,10 @@ func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgExternalTransferResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgEmergencySettleMarketResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgExternalTransferResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgEmergencySettleMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -16330,7 +19616,7 @@ func (m *MsgExternalTransferResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { +func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16353,10 +19639,10 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgLiquidatePosition: wiretype end group for non-group") + return fmt.Errorf("proto: MsgIncreasePositionMargin: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLiquidatePosition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgIncreasePositionMargin: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -16393,7 +19679,7 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16421,11 +19707,11 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16453,13 +19739,13 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Order", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -16469,25 +19755,55 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Order == nil { - m.Order = &DerivativeOrder{} + m.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - if err := m.Order.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + 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 + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -16512,7 +19828,7 @@ func (m *MsgLiquidatePosition) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { +func (m *MsgIncreasePositionMarginResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16535,10 +19851,10 @@ func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgLiquidatePositionResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgIncreasePositionMarginResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLiquidatePositionResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgIncreasePositionMarginResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -16562,7 +19878,7 @@ func (m *MsgLiquidatePositionResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { +func (m *MsgDecreasePositionMargin) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16585,15 +19901,79 @@ func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgEmergencySettleMarket: wiretype end group for non-group") + return fmt.Errorf("proto: MsgDecreasePositionMargin: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgEmergencySettleMarket: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgDecreasePositionMargin: 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) + 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 SourceSubaccountId", 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.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16621,11 +20001,11 @@ func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16653,11 +20033,11 @@ func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SubaccountId = string(dAtA[iNdEx:postIndex]) + m.MarketId = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16685,7 +20065,9 @@ func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -16708,7 +20090,7 @@ func (m *MsgEmergencySettleMarket) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgEmergencySettleMarketResponse) Unmarshal(dAtA []byte) error { +func (m *MsgDecreasePositionMarginResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16731,10 +20113,10 @@ func (m *MsgEmergencySettleMarketResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgEmergencySettleMarketResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgDecreasePositionMarginResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgEmergencySettleMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgDecreasePositionMarginResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -16758,7 +20140,7 @@ func (m *MsgEmergencySettleMarketResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { +func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16781,10 +20163,10 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgIncreasePositionMargin: wiretype end group for non-group") + return fmt.Errorf("proto: MsgPrivilegedExecuteContract: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgIncreasePositionMargin: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgPrivilegedExecuteContract: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -16821,7 +20203,7 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SourceSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Funds", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16849,11 +20231,11 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SourceSubaccountId = string(dAtA[iNdEx:postIndex]) + m.Funds = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationSubaccountId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16881,11 +20263,11 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.DestinationSubaccountId = string(dAtA[iNdEx:postIndex]) + m.ContractAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16913,11 +20295,145 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.MarketId = string(dAtA[iNdEx:postIndex]) + m.Data = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + 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 *MsgPrivilegedExecuteContractResponse) Unmarshal(dAtA []byte) 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: MsgPrivilegedExecuteContractResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgPrivilegedExecuteContractResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FundsDiff", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FundsDiff = append(m.FundsDiff, types.Coin{}) + if err := m.FundsDiff[len(m.FundsDiff)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgRewardsOptOut) Unmarshal(dAtA []byte) 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: MsgRewardsOptOut: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRewardsOptOut: 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 { @@ -16945,9 +20461,7 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -16970,7 +20484,7 @@ func (m *MsgIncreasePositionMargin) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgIncreasePositionMarginResponse) Unmarshal(dAtA []byte) error { +func (m *MsgRewardsOptOutResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16993,10 +20507,10 @@ func (m *MsgIncreasePositionMarginResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgIncreasePositionMarginResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgRewardsOptOutResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgIncreasePositionMarginResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgRewardsOptOutResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -17020,7 +20534,7 @@ func (m *MsgIncreasePositionMarginResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { +func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17043,10 +20557,10 @@ func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgPrivilegedExecuteContract: wiretype end group for non-group") + return fmt.Errorf("proto: MsgReclaimLockedFunds: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgPrivilegedExecuteContract: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgReclaimLockedFunds: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -17083,9 +20597,9 @@ func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Funds", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LockedAccountPubKey", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17095,29 +20609,31 @@ func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Funds = string(dAtA[iNdEx:postIndex]) + m.LockedAccountPubKey = append(m.LockedAccountPubKey[:0], dAtA[iNdEx:postIndex]...) + if m.LockedAccountPubKey == nil { + m.LockedAccountPubKey = []byte{} + } iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17127,55 +20643,25 @@ func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.ContractAddress = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", 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.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) + if m.Signature == nil { + m.Signature = []byte{} } - m.Data = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -17198,7 +20684,7 @@ func (m *MsgPrivilegedExecuteContract) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgPrivilegedExecuteContractResponse) Unmarshal(dAtA []byte) error { +func (m *MsgReclaimLockedFundsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17221,46 +20707,12 @@ func (m *MsgPrivilegedExecuteContractResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgPrivilegedExecuteContractResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgReclaimLockedFundsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgPrivilegedExecuteContractResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgReclaimLockedFundsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FundsDiff", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.FundsDiff = append(m.FundsDiff, types.Coin{}) - if err := m.FundsDiff[len(m.FundsDiff)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17282,7 +20734,7 @@ func (m *MsgPrivilegedExecuteContractResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRewardsOptOut) Unmarshal(dAtA []byte) error { +func (m *MsgSignData) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17305,17 +20757,17 @@ func (m *MsgRewardsOptOut) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRewardsOptOut: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSignData: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRewardsOptOut: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSignData: 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) + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) } - var stringLen uint64 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17325,23 +20777,59 @@ func (m *MsgRewardsOptOut) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if byteLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + byteLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Sender = string(dAtA[iNdEx:postIndex]) + m.Signer = append(m.Signer[:0], dAtA[iNdEx:postIndex]...) + if m.Signer == nil { + m.Signer = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) + if m.Data == nil { + m.Data = []byte{} + } iNdEx = postIndex default: iNdEx = preIndex @@ -17364,7 +20852,7 @@ func (m *MsgRewardsOptOut) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgRewardsOptOutResponse) Unmarshal(dAtA []byte) error { +func (m *MsgSignDoc) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17387,12 +20875,77 @@ func (m *MsgRewardsOptOutResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgRewardsOptOutResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSignDoc: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgRewardsOptOutResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSignDoc: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignType", 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.SignType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17414,7 +20967,7 @@ func (m *MsgRewardsOptOutResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { +func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17437,10 +20990,10 @@ func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgReclaimLockedFunds: wiretype end group for non-group") + return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarket: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgReclaimLockedFunds: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarket: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -17477,9 +21030,96 @@ func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LockedAccountPubKey", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MarketId", 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.MarketId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SettlementPrice", 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 + } + var v cosmossdk_io_math.LegacyDec + m.SettlementPrice = &v + if err := m.SettlementPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) + } + m.ExpirationTimestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ExpirationTimestamp |= int64(b&0x7F) << shift + if b < 0x80 { + break + } } - var byteLen int + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) + } + m.SettlementTimestamp = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17489,31 +21129,16 @@ func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + m.SettlementTimestamp |= int64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LockedAccountPubKey = append(m.LockedAccountPubKey[:0], dAtA[iNdEx:postIndex]...) - if m.LockedAccountPubKey == nil { - m.LockedAccountPubKey = []byte{} - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var byteLen int + m.Status = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17523,26 +21148,11 @@ func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + m.Status |= MarketStatus(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + byteLen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) - if m.Signature == nil { - m.Signature = []byte{} - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17564,7 +21174,7 @@ func (m *MsgReclaimLockedFunds) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgReclaimLockedFundsResponse) Unmarshal(dAtA []byte) error { +func (m *MsgAdminUpdateBinaryOptionsMarketResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17587,10 +21197,10 @@ func (m *MsgReclaimLockedFundsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgReclaimLockedFundsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarketResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgReclaimLockedFundsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -17614,7 +21224,7 @@ func (m *MsgReclaimLockedFundsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSignData) Unmarshal(dAtA []byte) error { +func (m *MsgAuthorizeStakeGrants) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17637,17 +21247,17 @@ func (m *MsgSignData) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSignData: wiretype end group for non-group") + return fmt.Errorf("proto: MsgAuthorizeStakeGrants: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSignData: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgAuthorizeStakeGrants: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Sender", wireType) } - var byteLen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17657,31 +21267,29 @@ func (m *MsgSignData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + byteLen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Signer = append(m.Signer[:0], dAtA[iNdEx:postIndex]...) - if m.Signer == nil { - m.Signer = []byte{} - } + m.Sender = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Grants", wireType) } - var byteLen int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTx @@ -17691,24 +21299,24 @@ func (m *MsgSignData) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - byteLen |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - if byteLen < 0 { + if msglen < 0 { return ErrInvalidLengthTx } - postIndex := iNdEx + byteLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthTx } if postIndex > l { return io.ErrUnexpectedEOF } - m.Data = append(m.Data[:0], dAtA[iNdEx:postIndex]...) - if m.Data == nil { - m.Data = []byte{} + m.Grants = append(m.Grants, &GrantAuthorization{}) + if err := m.Grants[len(m.Grants)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } iNdEx = postIndex default: @@ -17732,7 +21340,7 @@ func (m *MsgSignData) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSignDoc) Unmarshal(dAtA []byte) error { +func (m *MsgAuthorizeStakeGrantsResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17755,77 +21363,12 @@ func (m *MsgSignDoc) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSignDoc: wiretype end group for non-group") + return fmt.Errorf("proto: MsgAuthorizeStakeGrantsResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSignDoc: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgAuthorizeStakeGrantsResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SignType", 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.SignType = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTx - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTx - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -17847,7 +21390,7 @@ func (m *MsgSignDoc) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { +func (m *MsgActivateStakeGrant) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17870,10 +21413,10 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarket: wiretype end group for non-group") + return fmt.Errorf("proto: MsgActivateStakeGrant: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarket: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgActivateStakeGrant: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -17910,39 +21453,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MarketId", 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.MarketId = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SettlementPrice", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Granter", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17970,69 +21481,8 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec - m.SettlementPrice = &v - if err := m.SettlementPrice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Granter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ExpirationTimestamp", wireType) - } - m.ExpirationTimestamp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ExpirationTimestamp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SettlementTimestamp", wireType) - } - m.SettlementTimestamp = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.SettlementTimestamp |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - m.Status = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTx - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Status |= MarketStatus(b&0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) @@ -18054,7 +21504,7 @@ func (m *MsgAdminUpdateBinaryOptionsMarket) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgAdminUpdateBinaryOptionsMarketResponse) Unmarshal(dAtA []byte) error { +func (m *MsgActivateStakeGrantResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -18077,10 +21527,10 @@ func (m *MsgAdminUpdateBinaryOptionsMarketResponse) Unmarshal(dAtA []byte) error fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarketResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgActivateStakeGrantResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgAdminUpdateBinaryOptionsMarketResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgActivateStakeGrantResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/chain/exchange/types/volume_record.go b/chain/exchange/types/volume_record.go index 65729e9f..432d6f43 100644 --- a/chain/exchange/types/volume_record.go +++ b/chain/exchange/types/volume_record.go @@ -1,10 +1,10 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" ) -func NewVolumeRecord(makerVolume, takerVolume sdk.Dec) VolumeRecord { +func NewVolumeRecord(makerVolume, takerVolume math.LegacyDec) VolumeRecord { return VolumeRecord{ MakerVolume: makerVolume, TakerVolume: takerVolume, @@ -12,16 +12,16 @@ func NewVolumeRecord(makerVolume, takerVolume sdk.Dec) VolumeRecord { } func NewZeroVolumeRecord() VolumeRecord { - return NewVolumeRecord(sdk.ZeroDec(), sdk.ZeroDec()) + return NewVolumeRecord(math.LegacyZeroDec(), math.LegacyZeroDec()) } func (v VolumeRecord) Add(record VolumeRecord) VolumeRecord { if v.MakerVolume.IsNil() { - v.MakerVolume = sdk.ZeroDec() + v.MakerVolume = math.LegacyZeroDec() } if v.TakerVolume.IsNil() { - v.TakerVolume = sdk.ZeroDec() + v.TakerVolume = math.LegacyZeroDec() } if record.IsZero() { @@ -45,8 +45,8 @@ func (v *VolumeRecord) IsZero() bool { return (v.TakerVolume.IsNil() || v.TakerVolume.IsZero()) && (v.MakerVolume.IsNil() || v.MakerVolume.IsZero()) } -func (v *VolumeRecord) Total() sdk.Dec { - totalVolume := sdk.ZeroDec() +func (v *VolumeRecord) Total() math.LegacyDec { + totalVolume := math.LegacyZeroDec() if !v.TakerVolume.IsNil() { totalVolume = totalVolume.Add(v.TakerVolume) } @@ -56,9 +56,9 @@ func (v *VolumeRecord) Total() sdk.Dec { return totalVolume } -func NewVolumeWithSingleType(volume sdk.Dec, isMaker bool) VolumeRecord { +func NewVolumeWithSingleType(volume math.LegacyDec, isMaker bool) VolumeRecord { if isMaker { - return NewVolumeRecord(volume, sdk.ZeroDec()) + return NewVolumeRecord(volume, math.LegacyZeroDec()) } - return NewVolumeRecord(sdk.ZeroDec(), volume) + return NewVolumeRecord(math.LegacyZeroDec(), volume) } diff --git a/chain/exchange/types/wasm_trade_summary.go b/chain/exchange/types/wasm_trade_summary.go index c11c7c1f..c5057bb5 100644 --- a/chain/exchange/types/wasm_trade_summary.go +++ b/chain/exchange/types/wasm_trade_summary.go @@ -4,25 +4,26 @@ import ( "bytes" "sort" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/ethereum/go-ethereum/common" ) type MarketSummary struct { - TotalUserQuantity sdk.Dec - TotalContractQuantity sdk.Dec - TotalUserMargin sdk.Dec - TotalContractMargin sdk.Dec - netQuantity sdk.Dec + TotalUserQuantity math.LegacyDec + TotalContractQuantity math.LegacyDec + TotalUserMargin math.LegacyDec + TotalContractMargin math.LegacyDec + netQuantity math.LegacyDec } func NewMarketSummary() *MarketSummary { return &MarketSummary{ - TotalUserQuantity: sdk.ZeroDec(), - TotalContractQuantity: sdk.ZeroDec(), - TotalUserMargin: sdk.ZeroDec(), - TotalContractMargin: sdk.ZeroDec(), - netQuantity: sdk.ZeroDec(), + TotalUserQuantity: math.LegacyZeroDec(), + TotalContractQuantity: math.LegacyZeroDec(), + TotalUserMargin: math.LegacyZeroDec(), + TotalContractMargin: math.LegacyZeroDec(), + netQuantity: math.LegacyZeroDec(), } } diff --git a/chain/exchange/types/wasm_trades.go b/chain/exchange/types/wasm_trades.go index 045a5d0b..b98311c5 100644 --- a/chain/exchange/types/wasm_trades.go +++ b/chain/exchange/types/wasm_trades.go @@ -1,15 +1,15 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" ) type PositionTransfer struct { - MarketID common.Hash `json:"market_id"` - SourceSubaccountID common.Hash `json:"source_subaccount_id"` - DestinationSubaccountID common.Hash `json:"destination_subaccount_id"` - Quantity sdk.Dec `json:"quantity"` + MarketID common.Hash `json:"market_id"` + SourceSubaccountID common.Hash `json:"source_subaccount_id"` + DestinationSubaccountID common.Hash `json:"destination_subaccount_id"` + Quantity math.LegacyDec `json:"quantity"` } func (p *PositionTransfer) ValidateBasic() error { @@ -50,12 +50,12 @@ func (a *SyntheticTradeAction) ValidateBasic() error { } type SyntheticTrade struct { - MarketID common.Hash `json:"market_id"` - SubaccountID common.Hash `json:"subaccount_id"` - IsBuy bool `json:"is_buy"` - Quantity sdk.Dec `json:"quantity"` - Price sdk.Dec `json:"price"` - Margin sdk.Dec `json:"margin"` + MarketID common.Hash `json:"market_id"` + SubaccountID common.Hash `json:"subaccount_id"` + IsBuy bool `json:"is_buy"` + Quantity math.LegacyDec `json:"quantity"` + Price math.LegacyDec `json:"price"` + Margin math.LegacyDec `json:"margin"` } func (t *SyntheticTrade) Validate() error { diff --git a/chain/insurance/types/codec.go b/chain/insurance/types/codec.go index 70d5be8a..b20eff35 100644 --- a/chain/insurance/types/codec.go +++ b/chain/insurance/types/codec.go @@ -16,6 +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(&Params{}, "insurance/Params", nil) + } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -30,21 +32,19 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - // ModuleCdc references the global x/insurance module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/insurance and // defined at the application level. - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterLegacyAminoCodec(amino) - cryptocodec.RegisterCrypto(amino) - amino.Seal() + RegisterLegacyAminoCodec(ModuleCdc) + cryptocodec.RegisterCrypto(ModuleCdc) + ModuleCdc.Seal() RegisterLegacyAminoCodec(authzcdc.Amino) } diff --git a/chain/insurance/types/expected_keepers.go b/chain/insurance/types/expected_keepers.go index b52a739f..0e5195ef 100644 --- a/chain/insurance/types/expected_keepers.go +++ b/chain/insurance/types/expected_keepers.go @@ -1,18 +1,20 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" ) // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx sdk.Context, denomMeta banktypes.Metadata) + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + SetDenomMetaData(ctx context.Context, denomMeta banktypes.Metadata) } diff --git a/chain/insurance/types/insurance.pb.go b/chain/insurance/types/insurance.pb.go index 3756d555..b278e24e 100644 --- a/chain/insurance/types/insurance.pb.go +++ b/chain/insurance/types/insurance.pb.go @@ -4,10 +4,11 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types "github.com/InjectiveLabs/sdk-go/chain/oracle/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types1 "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" @@ -88,9 +89,9 @@ type InsuranceFund struct { // before the underwriter can claim his tokens RedemptionNoticePeriodDuration time.Duration `protobuf:"bytes,3,opt,name=redemption_notice_period_duration,json=redemptionNoticePeriodDuration,proto3,stdduration" json:"redemption_notice_period_duration" yaml:"redemption_notice_period_duration"` // balance of fund - Balance github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"balance"` + Balance cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=cosmossdk.io/math.Int" json:"balance"` // total share tokens minted - TotalShare github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=total_share,json=totalShare,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_share"` + TotalShare cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=total_share,json=totalShare,proto3,customtype=cosmossdk.io/math.Int" json:"total_share"` // marketID of the derivative market MarketId string `protobuf:"bytes,6,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` // ticker of the derivative market @@ -296,53 +297,55 @@ func init() { } var fileDescriptor_dbc47a7b76393948 = []byte{ - // 736 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x31, 0x6f, 0xd3, 0x40, - 0x14, 0x8e, 0xd3, 0x34, 0x6d, 0x2e, 0x6d, 0x05, 0x27, 0x44, 0xdd, 0x54, 0x72, 0xd2, 0x40, 0x51, - 0x10, 0xd4, 0xa6, 0x85, 0xa9, 0xb0, 0x10, 0x0a, 0x22, 0x52, 0x45, 0x8b, 0x9b, 0x89, 0xc5, 0x3a, - 0xdb, 0xd7, 0xe4, 0x88, 0xed, 0x33, 0xf6, 0xb9, 0x22, 0x3b, 0x33, 0xea, 0x88, 0x98, 0xf8, 0x0b, - 0xfd, 0x0b, 0x4c, 0x1d, 0x3b, 0x22, 0x86, 0x82, 0xda, 0x85, 0x99, 0x5f, 0x80, 0xee, 0x7c, 0xb6, - 0x23, 0x10, 0xb4, 0x62, 0xb2, 0xdf, 0x7b, 0xdf, 0x7b, 0xf7, 0xee, 0x7b, 0xdf, 0x3b, 0x70, 0x87, - 0x04, 0xaf, 0xb1, 0xc3, 0xc8, 0x01, 0x36, 0x48, 0x10, 0x27, 0x11, 0x0a, 0x1c, 0x6c, 0x1c, 0xac, - 0xdb, 0x98, 0xa1, 0xf5, 0xc2, 0xa3, 0x87, 0x11, 0x65, 0x14, 0x2e, 0xe7, 0x60, 0xbd, 0x08, 0x49, - 0x70, 0xe3, 0xda, 0x80, 0x0e, 0xa8, 0xc0, 0x19, 0xfc, 0x2f, 0x4d, 0x69, 0x68, 0x03, 0x4a, 0x07, - 0x1e, 0x36, 0x84, 0x65, 0x27, 0xfb, 0x86, 0x9b, 0x44, 0x88, 0x11, 0x1a, 0xc8, 0x78, 0xf3, 0xf7, - 0x38, 0x23, 0x3e, 0x8e, 0x19, 0xf2, 0xc3, 0xac, 0x80, 0x43, 0x63, 0x9f, 0xc6, 0x86, 0x8d, 0xe2, - 0xa2, 0x31, 0x87, 0x92, 0xac, 0xc0, 0x6a, 0x71, 0x01, 0x1a, 0x21, 0xc7, 0x2b, 0x40, 0xa9, 0x99, - 0xc2, 0xda, 0x9f, 0x15, 0x50, 0xdd, 0x45, 0x11, 0xf2, 0x63, 0x78, 0xa4, 0x80, 0xdb, 0x2e, 0xde, - 0x47, 0x89, 0xc7, 0xac, 0x08, 0xbb, 0xd8, 0x0f, 0x79, 0x3f, 0x56, 0x40, 0x19, 0x71, 0xb0, 0x15, - 0xe2, 0x88, 0x50, 0xd7, 0xca, 0xda, 0x54, 0x95, 0x96, 0xd2, 0xa9, 0x6f, 0x2c, 0xe9, 0x69, 0x9f, - 0x7a, 0xd6, 0xa7, 0xbe, 0x25, 0x01, 0xdd, 0x47, 0xc7, 0xa7, 0xcd, 0xd2, 0xcf, 0xd3, 0xe6, 0xbd, - 0x31, 0xf2, 0xbd, 0xcd, 0xf6, 0xa5, 0x2b, 0xb7, 0x3f, 0x7c, 0x6b, 0x2a, 0xe6, 0xaa, 0xc4, 0x9b, - 0x39, 0xfc, 0x85, 0x40, 0xef, 0x0a, 0x70, 0x76, 0xc8, 0x66, 0xe5, 0xc7, 0xa7, 0xa6, 0xd2, 0x7e, - 0x3f, 0x0d, 0xe6, 0x7b, 0x19, 0xf1, 0xcf, 0x92, 0xc0, 0x85, 0x37, 0xc0, 0xbc, 0x8b, 0x43, 0x1a, - 0x13, 0x66, 0xb9, 0x38, 0xa0, 0xbe, 0x68, 0xb7, 0x66, 0xce, 0x49, 0xe7, 0x16, 0xf7, 0xc1, 0x87, - 0xa0, 0x91, 0x8f, 0xcb, 0x0a, 0x29, 0xf5, 0x2c, 0x46, 0x47, 0x38, 0x90, 0x19, 0x65, 0x91, 0xb1, - 0x98, 0x23, 0x76, 0x29, 0xf5, 0xfa, 0x3c, 0x9e, 0x26, 0x7f, 0x54, 0xc0, 0xca, 0xc5, 0x2c, 0x4d, - 0x5d, 0xc4, 0xd2, 0x03, 0xc9, 0x52, 0x27, 0x65, 0xe9, 0x92, 0xec, 0x68, 0xd1, 0x3f, 0x69, 0x81, - 0xcf, 0xc1, 0x8c, 0x8d, 0x3c, 0xde, 0xb5, 0x5a, 0xe1, 0xd7, 0xe8, 0xea, 0xfc, 0x98, 0xaf, 0xa7, - 0xcd, 0x5b, 0x03, 0xc2, 0x86, 0x89, 0xad, 0x3b, 0xd4, 0x37, 0xa4, 0x80, 0xd2, 0xcf, 0x5a, 0xec, - 0x8e, 0x0c, 0x36, 0x0e, 0x71, 0xac, 0xf7, 0x02, 0x66, 0x66, 0xe9, 0x70, 0x07, 0xd4, 0x19, 0x65, - 0xc8, 0xb3, 0xe2, 0x21, 0x8a, 0xb0, 0x3a, 0xfd, 0x5f, 0xd5, 0x80, 0x28, 0xb1, 0xc7, 0x2b, 0xc0, - 0x65, 0x50, 0xf3, 0x51, 0x34, 0xc2, 0xcc, 0x22, 0xae, 0x5a, 0x15, 0x1c, 0xcf, 0xa6, 0x8e, 0x9e, - 0x18, 0x9b, 0x0c, 0x32, 0xe2, 0x8c, 0x70, 0xa4, 0xce, 0xa4, 0x63, 0x4b, 0x9d, 0x7d, 0xe1, 0x83, - 0x4d, 0x50, 0x4f, 0x25, 0x6c, 0x71, 0xed, 0xab, 0xb3, 0x02, 0x02, 0x52, 0x57, 0x17, 0xc5, 0x18, - 0xae, 0x80, 0x39, 0x09, 0x78, 0x93, 0x50, 0x86, 0xd5, 0x9a, 0x40, 0xc8, 0xa4, 0x97, 0xdc, 0x05, - 0x9f, 0xe6, 0x35, 0x78, 0x97, 0x2a, 0x68, 0x29, 0x9d, 0x85, 0x8d, 0x9b, 0x7a, 0xb1, 0xc7, 0x72, - 0x49, 0xe4, 0xce, 0xe8, 0x3b, 0xc2, 0xec, 0x8f, 0x43, 0x9c, 0x9d, 0xc4, 0xff, 0xe1, 0x75, 0x50, - 0xc5, 0x6f, 0x43, 0x12, 0x8d, 0xd5, 0x7a, 0x4b, 0xe9, 0x4c, 0x99, 0xd2, 0x6a, 0x1f, 0x95, 0x01, - 0x2c, 0x94, 0xbb, 0xe7, 0x0c, 0xb1, 0x9b, 0x78, 0x18, 0x2e, 0x80, 0x32, 0x71, 0x85, 0x14, 0x2b, - 0x66, 0x99, 0xb8, 0xb0, 0x01, 0xf2, 0xab, 0x4b, 0xb9, 0x15, 0x54, 0x34, 0xc0, 0x2c, 0x1f, 0x32, - 0xf6, 0x71, 0x24, 0x54, 0x54, 0x33, 0x73, 0x1b, 0xbe, 0x53, 0xc0, 0x92, 0xe3, 0x21, 0xe2, 0x23, - 0xdb, 0xc3, 0x93, 0x1b, 0xc5, 0x1f, 0x09, 0x31, 0xf1, 0xfa, 0x46, 0xe3, 0x0f, 0xcd, 0xf5, 0xb3, - 0x17, 0xa4, 0x7b, 0x57, 0x8a, 0xae, 0x95, 0x8a, 0xee, 0xaf, 0xa5, 0xda, 0x87, 0x5c, 0x6c, 0x8b, - 0x79, 0xbc, 0xb8, 0x12, 0xaf, 0x05, 0xb7, 0xc1, 0xd5, 0x89, 0x04, 0xe4, 0xd3, 0x24, 0x60, 0x42, - 0x21, 0x5c, 0xf1, 0xa9, 0x10, 0x74, 0x3e, 0xa2, 0x9c, 0xc5, 0x27, 0x94, 0x04, 0xdd, 0x0a, 0x3f, - 0xdc, 0xbc, 0x52, 0x64, 0x3e, 0x16, 0x89, 0x5d, 0x72, 0x7c, 0xa6, 0x29, 0x27, 0x67, 0x9a, 0xf2, - 0xfd, 0x4c, 0x53, 0x0e, 0xcf, 0xb5, 0xd2, 0xc9, 0xb9, 0x56, 0xfa, 0x72, 0xae, 0x95, 0x5e, 0xed, - 0x4c, 0xc8, 0xac, 0x97, 0x4d, 0x68, 0x1b, 0xd9, 0xb1, 0x91, 0xcf, 0x6b, 0xcd, 0xa1, 0x11, 0x9e, - 0x34, 0x87, 0x88, 0x04, 0x86, 0x4f, 0x39, 0xed, 0xf1, 0xc4, 0x0b, 0x2e, 0x34, 0x69, 0x57, 0x05, - 0x27, 0xf7, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x78, 0x7e, 0xa2, 0xae, 0xe5, 0x05, 0x00, 0x00, + // 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, } func (this *Params) Equal(that interface{}) bool { diff --git a/chain/insurance/types/msgs.go b/chain/insurance/types/msgs.go index b1c7d01d..689f01f8 100644 --- a/chain/insurance/types/msgs.go +++ b/chain/insurance/types/msgs.go @@ -61,8 +61,8 @@ func (msg MsgCreateInsuranceFund) ValidateBasic() error { if msg.Sender == "" { return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) } - if msg.Ticker == "" { - return errors.Wrap(ErrInvalidTicker, "ticker should not be empty or exceed 30 characters") + if msg.Ticker == "" || len(msg.Ticker) > 40 { + return errors.Wrapf(ErrInvalidTicker, "ticker should not be empty or exceed 40 characters") } if msg.QuoteDenom == "" { return errors.Wrap(ErrInvalidQuoteDenom, "quote denom should not be empty") diff --git a/chain/insurance/types/params.go b/chain/insurance/types/params.go index 2132f426..7cd8f19a 100644 --- a/chain/insurance/types/params.go +++ b/chain/insurance/types/params.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -18,7 +18,7 @@ const ( ) // MaxUnderwritingAmount equals 1 trillion * 1e18 -var MaxUnderwritingAmount, _ = sdk.NewIntFromString("1000000000000000000000000000") +var MaxUnderwritingAmount, _ = math.NewIntFromString("1000000000000000000000000000") var PerpetualExpiryFlag int64 = -1 var BinaryOptionsExpiryFlag int64 = -2 diff --git a/chain/insurance/types/tx.pb.go b/chain/insurance/types/tx.pb.go index 846919ee..f35a9e93 100644 --- a/chain/insurance/types/tx.pb.go +++ b/chain/insurance/types/tx.pb.go @@ -10,6 +10,7 @@ import ( _ "github.com/cosmos/cosmos-proto" types1 "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -393,53 +394,56 @@ func init() { } var fileDescriptor_7e1fa941c3fd0dc4 = []byte{ - // 727 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x95, 0x4f, 0x4f, 0x13, 0x4f, - 0x18, 0xc7, 0xbb, 0x94, 0x5f, 0x81, 0x81, 0x1f, 0xc4, 0x05, 0x61, 0x29, 0x66, 0x5b, 0x2b, 0x26, - 0x0d, 0xca, 0x6e, 0x5a, 0x8c, 0x06, 0x3c, 0x51, 0xd0, 0x48, 0x62, 0x83, 0x56, 0xbd, 0x78, 0x69, - 0xa6, 0xbb, 0x93, 0x65, 0xa4, 0xbb, 0xb3, 0xcc, 0xcc, 0x22, 0x3d, 0xea, 0x45, 0x8f, 0x1e, 0xbc, - 0x98, 0x78, 0xe0, 0x25, 0x78, 0xf0, 0x45, 0x70, 0x24, 0x9e, 0x3c, 0x19, 0x03, 0x07, 0x4d, 0x3c, - 0x7b, 0x37, 0xbb, 0x33, 0xbb, 0x5b, 0xa4, 0xf2, 0xef, 0xd4, 0x7d, 0x9e, 0xf9, 0x3e, 0xdf, 0xe7, - 0xf3, 0xcc, 0x4c, 0x77, 0xc1, 0x2c, 0xf6, 0x5e, 0x20, 0x8b, 0xe3, 0x6d, 0x64, 0x62, 0x8f, 0x05, - 0x14, 0x7a, 0x16, 0x32, 0xb7, 0x2b, 0x2d, 0xc4, 0x61, 0xc5, 0xe4, 0x3b, 0x86, 0x4f, 0x09, 0x27, - 0xea, 0x4c, 0xa2, 0x32, 0x12, 0x95, 0x21, 0x55, 0xf9, 0x09, 0x87, 0x38, 0x24, 0xd2, 0x99, 0xe1, - 0x93, 0x28, 0xc9, 0xeb, 0x16, 0x61, 0x2e, 0x61, 0x66, 0x0b, 0xb2, 0xd4, 0xd0, 0x22, 0xd8, 0x93, - 0xeb, 0x53, 0x72, 0xdd, 0x65, 0x8e, 0xb9, 0x5d, 0x09, 0x7f, 0xe4, 0xc2, 0xb4, 0x58, 0x68, 0x0a, - 0x47, 0x11, 0xc8, 0xa5, 0x1b, 0x27, 0xc1, 0xa6, 0x60, 0x42, 0x7c, 0x3d, 0x15, 0x13, 0x0a, 0xad, - 0x76, 0xaa, 0x14, 0xa1, 0x90, 0x95, 0x7e, 0xf5, 0x81, 0xc9, 0x3a, 0x73, 0x56, 0x28, 0x82, 0x1c, - 0xad, 0xc5, 0x1e, 0xf7, 0x03, 0xcf, 0x56, 0x27, 0x41, 0x8e, 0x21, 0xcf, 0x46, 0x54, 0x53, 0x8a, - 0x4a, 0x79, 0xa8, 0x21, 0xa3, 0x30, 0xcf, 0xb1, 0xb5, 0x89, 0xa8, 0xd6, 0x27, 0xf2, 0x22, 0x52, - 0x0b, 0x60, 0x78, 0x2b, 0x20, 0x1c, 0x35, 0x6d, 0xe4, 0x11, 0x57, 0xcb, 0x46, 0x8b, 0x20, 0x4a, - 0xad, 0x86, 0x99, 0x50, 0x20, 0x7a, 0x37, 0xc3, 0x5d, 0xd1, 0xfa, 0x85, 0x40, 0xa4, 0x6a, 0x90, - 0x21, 0xf5, 0x2a, 0x18, 0x91, 0x82, 0xa8, 0x4a, 0xfb, 0x2f, 0x52, 0xc8, 0xa2, 0xc7, 0x61, 0x4a, - 0xbd, 0x97, 0x78, 0xf0, 0x8e, 0x8f, 0xb4, 0x5c, 0x51, 0x29, 0x8f, 0x56, 0x67, 0x8d, 0xf4, 0x80, - 0xe4, 0x74, 0x72, 0x58, 0x63, 0x3d, 0x0a, 0x9f, 0x76, 0x7c, 0x14, 0x77, 0x0a, 0x9f, 0xc3, 0x19, - 0xd0, 0x8e, 0x8f, 0x69, 0x47, 0x1b, 0x28, 0x2a, 0xe5, 0x6c, 0x43, 0x46, 0xea, 0x03, 0x30, 0x86, - 0x3d, 0xcc, 0x31, 0x6c, 0x37, 0x6d, 0xe4, 0x13, 0x86, 0xb9, 0x36, 0x58, 0x54, 0xca, 0xc3, 0xd5, - 0x69, 0x43, 0x1e, 0x45, 0x88, 0x9e, 0xb8, 0xaf, 0x10, 0xec, 0xd5, 0xfa, 0xf7, 0xbe, 0x15, 0x32, - 0x8d, 0x51, 0x59, 0xb7, 0x2a, 0xca, 0x96, 0xc6, 0xdf, 0xee, 0x16, 0x32, 0x3f, 0x77, 0x0b, 0x99, - 0xd7, 0x3f, 0x3e, 0xcd, 0xc9, 0xad, 0x2b, 0x15, 0x81, 0xde, 0x7b, 0xb3, 0x1b, 0x88, 0xf9, 0xc4, - 0x63, 0xa8, 0xf4, 0x5e, 0x01, 0xff, 0xd7, 0x99, 0xf3, 0x2c, 0x94, 0xbf, 0xa4, 0x98, 0xa3, 0x7f, - 0x1e, 0xc3, 0x0c, 0x18, 0x72, 0x21, 0xdd, 0x44, 0xbc, 0x89, 0x6d, 0x79, 0x12, 0x83, 0x22, 0xb1, - 0x66, 0xab, 0x8b, 0x60, 0x20, 0xe6, 0xcf, 0x9e, 0x8d, 0x3f, 0xd6, 0xf7, 0x06, 0x9f, 0x02, 0x97, - 0x8f, 0x50, 0x25, 0xbc, 0x1f, 0x14, 0x30, 0x51, 0x67, 0x4e, 0x03, 0x6d, 0x05, 0x88, 0xf1, 0x06, - 0xb2, 0x91, 0xeb, 0x73, 0x4c, 0xbc, 0x8b, 0x61, 0xdf, 0x01, 0x39, 0xe8, 0x92, 0xc0, 0x3b, 0x33, - 0xb5, 0x94, 0xf7, 0x86, 0xd6, 0xc1, 0x95, 0x5e, 0x68, 0x09, 0xfb, 0x47, 0x05, 0x8c, 0x85, 0x53, - 0xf9, 0x36, 0xe4, 0xe8, 0x11, 0xa4, 0xd0, 0x65, 0xea, 0x6d, 0x30, 0x04, 0x03, 0xbe, 0x41, 0x28, - 0xe6, 0x1d, 0x41, 0x5e, 0xd3, 0xbe, 0x7c, 0x9e, 0x9f, 0x90, 0x1c, 0xcb, 0xb6, 0x4d, 0x11, 0x63, - 0x4f, 0x38, 0xc5, 0x9e, 0xd3, 0x48, 0xa5, 0xea, 0x32, 0xc8, 0xf9, 0x91, 0x43, 0x34, 0xd3, 0x70, - 0xf5, 0x9a, 0x71, 0xc2, 0x3b, 0xc3, 0x10, 0xcd, 0xe2, 0x19, 0x44, 0xe1, 0xd2, 0x68, 0xc8, 0x9e, - 0x5a, 0x96, 0xa6, 0xc1, 0xd4, 0x5f, 0x74, 0x31, 0x79, 0xf5, 0x77, 0x16, 0x64, 0xeb, 0xcc, 0x51, - 0xdf, 0x28, 0x60, 0xbc, 0xd7, 0x5f, 0x77, 0xe1, 0xc4, 0xee, 0xbd, 0xaf, 0x60, 0xfe, 0xee, 0x05, - 0x8a, 0x62, 0x22, 0xb5, 0x0d, 0x40, 0xd7, 0x9d, 0x9d, 0x3b, 0xcd, 0x2a, 0xd5, 0xe6, 0xab, 0x67, - 0xd7, 0x26, 0xdd, 0x5e, 0x29, 0xe0, 0xd2, 0xf1, 0x2b, 0x57, 0x39, 0xcd, 0xe9, 0x58, 0x49, 0x7e, - 0xf1, 0xdc, 0x25, 0x09, 0x03, 0x05, 0x23, 0x47, 0x6e, 0xce, 0xcd, 0x53, 0xe7, 0xe8, 0x52, 0xe7, - 0x6f, 0x9d, 0x47, 0x1d, 0xf7, 0xac, 0xe1, 0xbd, 0x03, 0x5d, 0xd9, 0x3f, 0xd0, 0x95, 0xef, 0x07, - 0xba, 0xf2, 0xee, 0x50, 0xcf, 0xec, 0x1f, 0xea, 0x99, 0xaf, 0x87, 0x7a, 0xe6, 0xf9, 0xba, 0x83, - 0xf9, 0x46, 0xd0, 0x32, 0x2c, 0xe2, 0x9a, 0x6b, 0xb1, 0xf3, 0x43, 0xd8, 0x62, 0x66, 0xd2, 0x67, - 0xde, 0x22, 0x14, 0x75, 0x87, 0x1b, 0x10, 0x7b, 0xa6, 0x4b, 0xec, 0xa0, 0x8d, 0x58, 0xd7, 0x17, - 0x25, 0x7c, 0xb1, 0xb2, 0x56, 0x2e, 0xfa, 0x3e, 0x2c, 0xfc, 0x09, 0x00, 0x00, 0xff, 0xff, 0x5c, - 0x3d, 0x18, 0xfa, 0x22, 0x07, 0x00, 0x00, + // 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, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/ocr/types/codec.go b/chain/ocr/types/codec.go index 01261381..f9ff9d2b 100644 --- a/chain/ocr/types/codec.go +++ b/chain/ocr/types/codec.go @@ -7,9 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" ) // RegisterLegacyAminoCodec registers the necessary modules/ocr interfaces and concrete types @@ -27,6 +25,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&SetConfigProposal{}, "ocr/SetConfigProposal", nil) cdc.RegisterConcrete(&SetBatchConfigProposal{}, "ocr/SetBatchConfigProposal", nil) + cdc.RegisterConcrete(&Params{}, "ocr/Params", nil) + } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -52,23 +52,22 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - // ModuleCdc references the global modules/ocr module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/insurance and // defined at the application level. - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterLegacyAminoCodec(amino) - cryptocodec.RegisterCrypto(amino) - amino.Seal() + RegisterLegacyAminoCodec(ModuleCdc) + cryptocodec.RegisterCrypto(ModuleCdc) + ModuleCdc.Seal() - RegisterLegacyAminoCodec(govcdc.Amino) - RegisterLegacyAminoCodec(groupcdc.Amino) + // TODO: check + // RegisterLegacyAminoCodec(govcdc.Amino) + // RegisterLegacyAminoCodec(groupcdc.Amino) RegisterLegacyAminoCodec(authzcdc.Amino) } diff --git a/chain/ocr/types/expected_keepers.go b/chain/ocr/types/expected_keepers.go index 0475503f..feb64c63 100644 --- a/chain/ocr/types/expected_keepers.go +++ b/chain/ocr/types/expected_keepers.go @@ -1,6 +1,8 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" bank "github.com/cosmos/cosmos-sdk/x/bank/types" params "github.com/cosmos/cosmos-sdk/x/params/types" @@ -16,12 +18,12 @@ type ParamSubspace interface { // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - SetDenomMetaData(ctx sdk.Context, denomMeta bank.Metadata) + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + SetDenomMetaData(ctx context.Context, denomMeta bank.Metadata) } diff --git a/chain/ocr/types/hooks.go b/chain/ocr/types/hooks.go index 20746bb7..5bec4b95 100644 --- a/chain/ocr/types/hooks.go +++ b/chain/ocr/types/hooks.go @@ -1,12 +1,13 @@ package types import ( + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) type OcrHooks interface { AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfig) - AfterTransmit(ctx sdk.Context, feedId string, answer sdk.Dec, timestamp int64) + AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) AfterFundFeedRewardPool(ctx sdk.Context, feedId string, newPoolAmount sdk.Coin) } @@ -24,7 +25,7 @@ func (h MultiOcrHooks) AfterSetFeedConfig(ctx sdk.Context, feedConfig *FeedConfi } } -func (h MultiOcrHooks) AfterTransmit(ctx sdk.Context, feedId string, answer sdk.Dec, timestamp int64) { +func (h MultiOcrHooks) AfterTransmit(ctx sdk.Context, feedId string, answer math.LegacyDec, timestamp int64) { for i := range h { h[i].AfterTransmit(ctx, feedId, answer, timestamp) } diff --git a/chain/ocr/types/ocr.pb.go b/chain/ocr/types/ocr.pb.go index d80ac284..d165290e 100644 --- a/chain/ocr/types/ocr.pb.go +++ b/chain/ocr/types/ocr.pb.go @@ -4,10 +4,11 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/cosmos/cosmos-proto" - 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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" @@ -278,13 +279,13 @@ type ModuleParams struct { // feed_id is an unique ID for the target of this config FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` // lowest answer the median of a report is allowed to be - MinAnswer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=min_answer,json=minAnswer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_answer"` + MinAnswer cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=min_answer,json=minAnswer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_answer"` // highest answer the median of a report is allowed to be - MaxAnswer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=max_answer,json=maxAnswer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"max_answer"` + MaxAnswer cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=max_answer,json=maxAnswer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"max_answer"` // Fixed LINK reward for each observer - LinkPerObservation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_observation"` + LinkPerObservation cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_observation"` // Fixed LINK reward for transmitter - LinkPerTransmission github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_transmission"` + LinkPerTransmission cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_transmission"` // Native denom for LINK coin in the bank keeper LinkDenom string `protobuf:"bytes,6,opt,name=link_denom,json=linkDenom,proto3" json:"link_denom,omitempty"` // Enables unique reports @@ -531,13 +532,13 @@ type FeedProperties struct { // operation OffchainConfig []byte `protobuf:"bytes,5,opt,name=offchain_config,json=offchainConfig,proto3" json:"offchain_config,omitempty"` // lowest answer the median of a report is allowed to be - MinAnswer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=min_answer,json=minAnswer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_answer"` + MinAnswer cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=min_answer,json=minAnswer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_answer"` // highest answer the median of a report is allowed to be - MaxAnswer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=max_answer,json=maxAnswer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"max_answer"` + MaxAnswer cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=max_answer,json=maxAnswer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"max_answer"` // Fixed LINK reward for each observer - LinkPerObservation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,8,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_observation"` + LinkPerObservation cosmossdk_io_math.Int `protobuf:"bytes,8,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_observation"` // Fixed LINK reward for transmitter - LinkPerTransmission github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,9,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_transmission"` + LinkPerTransmission cosmossdk_io_math.Int `protobuf:"bytes,9,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_transmission"` // Enables unique reports UniqueReports bool `protobuf:"varint,10,opt,name=unique_reports,json=uniqueReports,proto3" json:"unique_reports,omitempty"` // short human-readable description of observable this feed's answers pertain @@ -818,9 +819,9 @@ func (m *Payee) GetPaymentAddr() string { // Transmission records the median answer from the transmit transaction at // time timestamp type Transmission struct { - Answer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=answer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"answer"` - ObservationsTimestamp int64 `protobuf:"varint,2,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` - TransmissionTimestamp int64 `protobuf:"varint,3,opt,name=transmission_timestamp,json=transmissionTimestamp,proto3" json:"transmission_timestamp,omitempty"` + Answer cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=answer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"answer"` + ObservationsTimestamp int64 `protobuf:"varint,2,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` + TransmissionTimestamp int64 `protobuf:"varint,3,opt,name=transmission_timestamp,json=transmissionTimestamp,proto3" json:"transmission_timestamp,omitempty"` } func (m *Transmission) Reset() { *m = Transmission{} } @@ -923,9 +924,9 @@ func (m *EpochAndRound) GetRound() uint64 { } type Report struct { - ObservationsTimestamp int64 `protobuf:"varint,1,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` - Observers []byte `protobuf:"bytes,2,opt,name=observers,proto3" json:"observers,omitempty"` - Observations []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,rep,name=observations,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"observations"` + ObservationsTimestamp int64 `protobuf:"varint,1,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` + Observers []byte `protobuf:"bytes,2,opt,name=observers,proto3" json:"observers,omitempty"` + Observations []cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,rep,name=observations,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"observations"` } func (m *Report) Reset() { *m = Report{} } @@ -1113,9 +1114,9 @@ func (m *EventOraclePaid) GetAmount() types.Coin { } type EventAnswerUpdated struct { - Current github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=current,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"current"` - RoundId github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=round_id,json=roundId,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"round_id"` - UpdatedAt time.Time `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3,stdtime" json:"updated_at"` + Current cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=current,proto3,customtype=cosmossdk.io/math.Int" json:"current"` + RoundId cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=round_id,json=roundId,proto3,customtype=cosmossdk.io/math.Int" json:"round_id"` + UpdatedAt time.Time `protobuf:"bytes,3,opt,name=updated_at,json=updatedAt,proto3,stdtime" json:"updated_at"` } func (m *EventAnswerUpdated) Reset() { *m = EventAnswerUpdated{} } @@ -1159,7 +1160,7 @@ func (m *EventAnswerUpdated) GetUpdatedAt() time.Time { } type EventNewRound struct { - RoundId github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=round_id,json=roundId,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"round_id"` + RoundId cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=round_id,json=roundId,proto3,customtype=cosmossdk.io/math.Int" json:"round_id"` // address of starter StartedBy string `protobuf:"bytes,2,opt,name=started_by,json=startedBy,proto3" json:"started_by,omitempty"` StartedAt time.Time `protobuf:"bytes,3,opt,name=started_at,json=startedAt,proto3,stdtime" json:"started_at"` @@ -1265,15 +1266,15 @@ func (m *EventTransmitted) GetEpoch() uint64 { } type EventNewTransmission struct { - FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` - AggregatorRoundId uint32 `protobuf:"varint,2,opt,name=aggregator_round_id,json=aggregatorRoundId,proto3" json:"aggregator_round_id,omitempty"` - Answer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=answer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"answer"` - Transmitter string `protobuf:"bytes,4,opt,name=transmitter,proto3" json:"transmitter,omitempty"` - ObservationsTimestamp int64 `protobuf:"varint,5,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` - Observations []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,rep,name=observations,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"observations"` - Observers []byte `protobuf:"bytes,7,opt,name=observers,proto3" json:"observers,omitempty"` - ConfigDigest []byte `protobuf:"bytes,8,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` - EpochAndRound *EpochAndRound `protobuf:"bytes,9,opt,name=epoch_and_round,json=epochAndRound,proto3" json:"epoch_and_round,omitempty"` + FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` + AggregatorRoundId uint32 `protobuf:"varint,2,opt,name=aggregator_round_id,json=aggregatorRoundId,proto3" json:"aggregator_round_id,omitempty"` + Answer cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=answer,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"answer"` + Transmitter string `protobuf:"bytes,4,opt,name=transmitter,proto3" json:"transmitter,omitempty"` + ObservationsTimestamp int64 `protobuf:"varint,5,opt,name=observations_timestamp,json=observationsTimestamp,proto3" json:"observations_timestamp,omitempty"` + Observations []cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,rep,name=observations,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"observations"` + Observers []byte `protobuf:"bytes,7,opt,name=observers,proto3" json:"observers,omitempty"` + ConfigDigest []byte `protobuf:"bytes,8,opt,name=config_digest,json=configDigest,proto3" json:"config_digest,omitempty"` + EpochAndRound *EpochAndRound `protobuf:"bytes,9,opt,name=epoch_and_round,json=epochAndRound,proto3" json:"epoch_and_round,omitempty"` } func (m *EventNewTransmission) Reset() { *m = EventNewTransmission{} } @@ -1456,107 +1457,110 @@ func init() { func init() { proto.RegisterFile("injective/ocr/v1beta1/ocr.proto", fileDescriptor_0acb79560f1720fa) } var fileDescriptor_0acb79560f1720fa = []byte{ - // 1599 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x3d, 0x6c, 0x1b, 0x55, - 0x1c, 0xcf, 0xd9, 0x8e, 0x13, 0xff, 0xfd, 0x91, 0xf6, 0x9a, 0xb4, 0x6e, 0xd4, 0xc6, 0xee, 0x95, - 0x96, 0x30, 0xd4, 0xa6, 0x41, 0x80, 0x68, 0x07, 0x94, 0xa4, 0x2d, 0xb5, 0xd4, 0x8f, 0xe8, 0x92, - 0x76, 0x60, 0x39, 0x9e, 0xef, 0x9e, 0x9d, 0xa3, 0xbe, 0xf7, 0x8e, 0x77, 0xcf, 0x69, 0xb3, 0x23, - 0xc1, 0xd8, 0x01, 0x31, 0x77, 0x61, 0x61, 0x40, 0x42, 0x42, 0x62, 0x63, 0x62, 0xa8, 0x98, 0x3a, - 0x22, 0x86, 0x82, 0x5a, 0x21, 0x75, 0x40, 0xec, 0x6c, 0xe8, 0x7d, 0x9c, 0x7d, 0xfe, 0x88, 0x55, - 0x37, 0xed, 0x14, 0xff, 0xbf, 0xdf, 0xfd, 0x3f, 0x7e, 0xef, 0xff, 0x02, 0x15, 0x9f, 0x7c, 0x8e, - 0x5d, 0xee, 0xef, 0xe1, 0x3a, 0x75, 0x59, 0x7d, 0xef, 0x62, 0x13, 0x73, 0x74, 0x51, 0xfc, 0xae, - 0x85, 0x8c, 0x72, 0x6a, 0x2e, 0xf5, 0x14, 0x6a, 0x82, 0xa9, 0x15, 0x96, 0x57, 0x5c, 0x1a, 0x05, - 0x34, 0xaa, 0x37, 0x51, 0x84, 0x7b, 0x56, 0x2e, 0xf5, 0x89, 0x32, 0x5b, 0x3e, 0xa9, 0xe4, 0x8e, - 0xa4, 0xea, 0x8a, 0xd0, 0xa2, 0xc5, 0x36, 0x6d, 0x53, 0xc5, 0x17, 0xbf, 0x34, 0xb7, 0xd2, 0xa6, - 0xb4, 0xdd, 0xc1, 0x75, 0x49, 0x35, 0xbb, 0xad, 0x3a, 0xf7, 0x03, 0x1c, 0x71, 0x14, 0x84, 0x4a, - 0xc1, 0xfa, 0xd2, 0x80, 0xec, 0x16, 0x62, 0x28, 0x88, 0xcc, 0xd3, 0x00, 0x1d, 0x9f, 0xdc, 0x73, - 0x3c, 0x4c, 0x68, 0x50, 0x36, 0xaa, 0xc6, 0x6a, 0xce, 0xce, 0x09, 0xce, 0x15, 0xc1, 0x30, 0xd7, - 0x60, 0x29, 0x44, 0xfb, 0xb4, 0xcb, 0x9d, 0x66, 0x87, 0xba, 0xf7, 0x1c, 0x9f, 0x70, 0xcc, 0xf6, - 0x50, 0xa7, 0x9c, 0xaa, 0x1a, 0xab, 0x19, 0xfb, 0x98, 0x12, 0x6e, 0x08, 0x59, 0x43, 0x8b, 0xcc, - 0x33, 0x50, 0x08, 0xa8, 0xd7, 0xed, 0x60, 0x07, 0x79, 0x81, 0x4f, 0xca, 0x69, 0xe9, 0x34, 0xaf, - 0x78, 0xeb, 0x82, 0x75, 0x29, 0xf3, 0xe2, 0x51, 0xc5, 0xb0, 0xbe, 0x4f, 0x01, 0x5c, 0xc3, 0xd8, - 0xdb, 0xa4, 0xa4, 0xe5, 0xb7, 0xcd, 0x32, 0xcc, 0x45, 0x7e, 0x9b, 0x60, 0x16, 0x95, 0x8d, 0x6a, - 0x7a, 0x35, 0x67, 0xc7, 0xa4, 0x69, 0x41, 0x81, 0x33, 0x44, 0xa2, 0xc0, 0xe7, 0x5c, 0x88, 0x53, - 0x52, 0x3c, 0xc0, 0x33, 0x0b, 0x60, 0xb4, 0x64, 0xa8, 0xa2, 0x6d, 0xb4, 0xcc, 0x73, 0x50, 0xa2, - 0xc4, 0xdd, 0x45, 0x3e, 0x71, 0x5c, 0xe9, 0xbd, 0x9c, 0xa9, 0x1a, 0xab, 0x05, 0xbb, 0xa8, 0xb9, - 0x3a, 0xe4, 0x07, 0x70, 0x82, 0xb6, 0x5a, 0x49, 0x3d, 0x67, 0x0f, 0xb3, 0xc8, 0xa7, 0xa4, 0x3c, - 0x2b, 0x3f, 0x70, 0x29, 0x16, 0x2b, 0x83, 0xbb, 0x4a, 0x68, 0xbe, 0x0d, 0x0b, 0x43, 0x76, 0xe5, - 0xac, 0xf4, 0x5f, 0x1a, 0xd4, 0x37, 0xaf, 0x43, 0x51, 0xe7, 0x22, 0x94, 0xf9, 0x2e, 0xcf, 0x55, - 0x8d, 0xd5, 0xfc, 0xda, 0xd9, 0xda, 0xd8, 0x56, 0xa8, 0xdd, 0x94, 0xba, 0xaa, 0x34, 0xb6, 0xce, - 0xa2, 0xa2, 0xac, 0x5f, 0x0c, 0x28, 0xf5, 0x93, 0xd5, 0x20, 0x2d, 0x6a, 0xbe, 0x0b, 0x8b, 0x1d, - 0xc4, 0x71, 0xc4, 0xe3, 0xb3, 0x7b, 0x7e, 0x1b, 0x47, 0x5c, 0x56, 0xb1, 0x60, 0x9b, 0x4a, 0xa6, - 0xf4, 0xaf, 0x48, 0x89, 0x4a, 0x52, 0x2a, 0x4e, 0x52, 0x01, 0x0c, 0x12, 0xa7, 0x8c, 0x88, 0xb2, - 0x69, 0x37, 0x2e, 0xed, 0x12, 0x2e, 0x13, 0x96, 0xb1, 0xf3, 0x8a, 0xb7, 0x29, 0x58, 0xe6, 0x65, - 0x58, 0x1e, 0x0c, 0xa8, 0x9a, 0x82, 0x74, 0x83, 0x26, 0x66, 0x32, 0x63, 0x69, 0xfb, 0x44, 0x32, - 0xac, 0x6c, 0x8c, 0x5b, 0x52, 0x6c, 0xfd, 0x9c, 0x81, 0x42, 0xf2, 0xfb, 0xcc, 0x13, 0x30, 0xd7, - 0xc2, 0xd8, 0x73, 0x7c, 0x4f, 0xf7, 0x5d, 0x56, 0x90, 0x0d, 0xcf, 0xbc, 0x09, 0x10, 0xf8, 0xc4, - 0x41, 0x24, 0xba, 0x8f, 0x99, 0x3c, 0x6e, 0x6e, 0xa3, 0xf6, 0xf8, 0x69, 0x65, 0xe6, 0x8f, 0xa7, - 0x95, 0xf3, 0x6d, 0x9f, 0xef, 0x76, 0x9b, 0x35, 0x97, 0x06, 0x7a, 0x14, 0xf4, 0x9f, 0x0b, 0x91, - 0x77, 0xaf, 0xce, 0xf7, 0x43, 0x1c, 0xd5, 0xae, 0x60, 0xd7, 0xce, 0x05, 0x3e, 0x59, 0x97, 0x0e, - 0xa4, 0x3b, 0xf4, 0x20, 0x76, 0x97, 0x7e, 0x45, 0x77, 0xe8, 0x81, 0x76, 0xf7, 0x19, 0x2c, 0xca, - 0x89, 0x09, 0x31, 0x73, 0x68, 0x33, 0x12, 0x3d, 0xcf, 0x45, 0xc3, 0x64, 0xa6, 0x76, 0xdc, 0x20, - 0xdc, 0x36, 0x85, 0xaf, 0x2d, 0xcc, 0x6e, 0xf7, 0x3d, 0x99, 0x4d, 0x58, 0xea, 0x45, 0xd0, 0x3d, - 0x1e, 0xf5, 0x7a, 0x72, 0xfa, 0x10, 0xc7, 0x74, 0x88, 0x9d, 0x84, 0xab, 0xa1, 0xb9, 0xcf, 0x0e, - 0xcf, 0xfd, 0x39, 0x28, 0x75, 0x89, 0xff, 0x45, 0x17, 0x3b, 0x0c, 0x87, 0x94, 0x71, 0xd5, 0xb8, - 0xf3, 0x76, 0x51, 0x71, 0x6d, 0xc5, 0x34, 0xab, 0x90, 0xf7, 0x70, 0xe4, 0x32, 0x3f, 0x94, 0x29, - 0x98, 0x57, 0x93, 0x9e, 0x60, 0x89, 0x38, 0xb2, 0xc8, 0x0a, 0x0a, 0x72, 0x2a, 0x8e, 0xe0, 0x48, - 0x20, 0x30, 0xcf, 0x42, 0xb1, 0xe9, 0x77, 0x3a, 0x3e, 0x69, 0x6b, 0x0d, 0x90, 0x1a, 0x05, 0xcd, - 0x94, 0x4a, 0xd6, 0x57, 0x29, 0x28, 0x6d, 0x52, 0xc2, 0x19, 0x72, 0x75, 0x5f, 0x8d, 0x34, 0xab, - 0x31, 0xda, 0xac, 0x09, 0x38, 0x49, 0x4d, 0x86, 0x93, 0xf4, 0x41, 0x70, 0x92, 0x39, 0x18, 0x4e, - 0x66, 0xa7, 0x84, 0x93, 0xec, 0x94, 0x70, 0x32, 0x37, 0x0e, 0x4e, 0xac, 0x1f, 0x0c, 0x38, 0xba, - 0x8d, 0x75, 0x12, 0xb6, 0x18, 0x0d, 0x69, 0x84, 0x3a, 0xe6, 0x22, 0xcc, 0x72, 0x9f, 0x77, 0xb0, - 0x1e, 0x23, 0x45, 0x0c, 0xd7, 0x26, 0x35, 0x5a, 0x9b, 0x8f, 0x20, 0xab, 0xa3, 0xa5, 0x25, 0x2a, - 0x9d, 0x39, 0x00, 0x95, 0xfa, 0xb0, 0x63, 0x6b, 0x83, 0x4b, 0xe7, 0xbf, 0x7e, 0x54, 0x99, 0x79, - 0xf1, 0xa8, 0x32, 0xf3, 0xdb, 0x4f, 0x17, 0x96, 0xf5, 0x95, 0xd4, 0xa6, 0x7b, 0x3d, 0x13, 0x51, - 0x2e, 0x4c, 0xb8, 0xf5, 0x4f, 0x46, 0xa1, 0x96, 0x38, 0x2b, 0x66, 0xdc, 0xc7, 0x13, 0xc6, 0x7e, - 0x10, 0x9c, 0x46, 0x53, 0x9e, 0x9e, 0x32, 0xe5, 0x99, 0x29, 0x53, 0x3e, 0x3b, 0x16, 0xc1, 0x07, - 0xc1, 0x28, 0xfb, 0x7a, 0xc1, 0x68, 0xee, 0x4d, 0x81, 0xd1, 0xfc, 0x9b, 0x07, 0xa3, 0xdc, 0xeb, - 0x03, 0xa3, 0x51, 0xb4, 0x81, 0x97, 0x40, 0x9b, 0xfc, 0x48, 0x47, 0x5b, 0xdf, 0xa5, 0xe0, 0xf8, - 0x36, 0xe6, 0x1b, 0x88, 0xbb, 0xbb, 0xaf, 0x69, 0x48, 0x12, 0x30, 0x92, 0x9e, 0x0c, 0x23, 0x99, - 0x31, 0x30, 0x32, 0x08, 0xb3, 0xb3, 0xc3, 0x30, 0x7b, 0x0b, 0x16, 0xe4, 0x2c, 0x84, 0xbd, 0xf1, - 0x28, 0x67, 0xab, 0xe9, 0xd5, 0xfc, 0xda, 0xb9, 0x09, 0xa3, 0xd8, 0x9f, 0x25, 0xbb, 0xd4, 0x1a, - 0xa0, 0x5f, 0x7a, 0x2c, 0xd7, 0xa0, 0x7c, 0x9b, 0x21, 0xb7, 0x83, 0x13, 0x95, 0x8e, 0x24, 0x6c, - 0x46, 0xe6, 0x71, 0x81, 0x0a, 0xe2, 0x97, 0xdc, 0xc2, 0x8a, 0xb6, 0xa6, 0xac, 0xbb, 0x70, 0xf4, - 0x13, 0x14, 0xd9, 0xd8, 0x0f, 0x9a, 0x5d, 0x16, 0xe1, 0x00, 0x0b, 0xe5, 0x75, 0x28, 0xb1, 0x01, - 0x8e, 0x34, 0xca, 0xaf, 0x9d, 0xac, 0xe9, 0xe8, 0x62, 0xa9, 0x4d, 0x84, 0xf7, 0x89, 0x3d, 0x64, - 0x60, 0xdd, 0x81, 0xd9, 0x2d, 0xb4, 0x8f, 0xb1, 0xf9, 0x0e, 0x1c, 0x49, 0xe4, 0xce, 0x41, 0x9e, - 0xc7, 0x74, 0xb1, 0x16, 0x12, 0xfc, 0x75, 0xcf, 0x63, 0x02, 0xfe, 0x43, 0xb4, 0x2f, 0xec, 0x95, - 0x9a, 0xae, 0x9b, 0xe6, 0x09, 0x15, 0xeb, 0x57, 0x03, 0x0a, 0x03, 0x4d, 0x76, 0x0d, 0xb2, 0x7a, - 0xea, 0x8c, 0x57, 0x9a, 0x3a, 0x6d, 0x6d, 0xbe, 0x0f, 0xc7, 0x13, 0x93, 0x16, 0x39, 0xbd, 0xe5, - 0x5a, 0x9e, 0x22, 0x6d, 0x2f, 0x25, 0xa5, 0x3b, 0xb1, 0x50, 0x98, 0x25, 0xc7, 0x27, 0x61, 0x96, - 0x56, 0x66, 0x49, 0x69, 0xcf, 0xcc, 0xba, 0x0c, 0xc5, 0xab, 0x21, 0x75, 0x77, 0xd7, 0x89, 0x67, - 0xd3, 0x2e, 0xf1, 0x44, 0x1f, 0x63, 0xc1, 0xd0, 0x57, 0x9e, 0x22, 0x04, 0x97, 0x09, 0xb1, 0xde, - 0xcb, 0x15, 0x61, 0xfd, 0x68, 0x40, 0x56, 0x0d, 0xcf, 0x84, 0x53, 0x1b, 0x93, 0x4e, 0x7d, 0x0a, - 0x72, 0x4a, 0xa0, 0xae, 0x51, 0x01, 0x90, 0x7d, 0x86, 0x69, 0x43, 0x21, 0x69, 0xa6, 0x06, 0x64, - 0xea, 0xc4, 0x0e, 0xf8, 0xb0, 0xbe, 0x35, 0xa0, 0xa0, 0xce, 0xbc, 0x43, 0xb7, 0xfd, 0xb6, 0x5c, - 0x11, 0xc6, 0xad, 0xb7, 0xfa, 0xfe, 0xd7, 0x8b, 0x6d, 0x2f, 0x2b, 0xa9, 0xb1, 0x59, 0x49, 0x27, - 0xb2, 0x22, 0x66, 0x12, 0x3f, 0xe0, 0x0c, 0x39, 0xbb, 0x28, 0xda, 0xd5, 0xef, 0x82, 0x9c, 0xe4, - 0x5c, 0x47, 0xd1, 0xae, 0xe8, 0x7f, 0x85, 0x42, 0xfa, 0x42, 0xd0, 0x94, 0xf5, 0x8d, 0x01, 0x0b, - 0x57, 0xf7, 0x30, 0xe1, 0x6a, 0x72, 0xb6, 0x90, 0xef, 0x4d, 0xd3, 0xb2, 0xa7, 0x01, 0x42, 0xd1, - 0xe6, 0xc9, 0x86, 0xcd, 0x49, 0x8e, 0x14, 0x7f, 0x08, 0x59, 0x14, 0xc8, 0x55, 0x46, 0xdd, 0xc5, - 0x07, 0x0f, 0xd0, 0x46, 0x46, 0xe4, 0xd7, 0xd6, 0xea, 0xd6, 0xbf, 0x06, 0x98, 0xf2, 0x58, 0xea, - 0x46, 0xb8, 0x13, 0x7a, 0x88, 0x63, 0xcf, 0xbc, 0x0e, 0x73, 0x6e, 0x97, 0x31, 0xac, 0x77, 0xa3, - 0xe9, 0x81, 0x3a, 0x36, 0x37, 0x1b, 0x30, 0x2f, 0xf3, 0x26, 0x2e, 0xec, 0xd4, 0xab, 0xb9, 0x92, - 0xf6, 0x0d, 0xcf, 0xdc, 0x04, 0xe8, 0xaa, 0xf3, 0x39, 0x28, 0xfe, 0xd0, 0xe5, 0x9a, 0x7a, 0xad, - 0xd6, 0xe2, 0xd7, 0x6a, 0xad, 0xd7, 0x7d, 0x1b, 0xf3, 0x22, 0xd0, 0xc3, 0x3f, 0x2b, 0x86, 0x9d, - 0xd3, 0x76, 0xeb, 0x5c, 0x3c, 0x84, 0x8a, 0xf2, 0x83, 0x6f, 0xe1, 0xfb, 0x6a, 0x24, 0x92, 0x27, - 0x34, 0x0e, 0x77, 0xc2, 0xd3, 0x00, 0x11, 0x47, 0x4c, 0x9c, 0xb0, 0xb9, 0x1f, 0x57, 0x49, 0x73, - 0x36, 0xf6, 0xc5, 0x07, 0xc4, 0xe2, 0x69, 0x3f, 0x40, 0xdb, 0xad, 0x73, 0xeb, 0x26, 0x1c, 0x91, - 0xe7, 0xdf, 0xe9, 0x75, 0x88, 0x77, 0x88, 0x26, 0xb7, 0xfe, 0x4e, 0xc3, 0x62, 0x9c, 0x8f, 0x01, - 0xc0, 0x3b, 0x70, 0xd1, 0xaa, 0xc1, 0x31, 0xd4, 0x6e, 0x33, 0xdc, 0x46, 0x9c, 0x32, 0x67, 0xa0, - 0xb8, 0x45, 0xfb, 0x68, 0x5f, 0x64, 0xeb, 0xa4, 0xf4, 0x91, 0x33, 0x7d, 0x28, 0xe4, 0xac, 0x42, - 0x3e, 0x31, 0x15, 0xea, 0xc1, 0x64, 0x27, 0x59, 0x13, 0x50, 0x6a, 0x76, 0x12, 0x4a, 0x0d, 0xe3, - 0x50, 0xf6, 0xf0, 0x38, 0x34, 0x88, 0x7c, 0x73, 0xc3, 0xc8, 0x37, 0x52, 0xaf, 0xf9, 0x31, 0xf5, - 0xba, 0x01, 0x0b, 0xb2, 0x44, 0x0e, 0x22, 0x9e, 0x4a, 0xb3, 0x5c, 0x9a, 0xf2, 0x6b, 0x6f, 0x1d, - 0x70, 0xbb, 0x0f, 0x20, 0xbd, 0x5d, 0xc4, 0x49, 0xd2, 0xfa, 0xcf, 0x80, 0x92, 0xac, 0xb3, 0x5a, - 0x6c, 0xb6, 0x31, 0x7f, 0xb9, 0xae, 0xf9, 0x18, 0x4e, 0x85, 0x0c, 0xef, 0xf9, 0xb4, 0x1b, 0x8d, - 0x7d, 0xb6, 0xab, 0x5b, 0xeb, 0x64, 0xac, 0x33, 0xf2, 0x70, 0x3f, 0xc4, 0x33, 0xc1, 0xbc, 0x06, - 0xfa, 0x49, 0xe6, 0xf8, 0xa4, 0x45, 0x65, 0xc5, 0x27, 0xef, 0x36, 0xfd, 0xff, 0x6e, 0xd8, 0xe0, - 0xf6, 0x7e, 0x6f, 0xb8, 0x8f, 0x9f, 0xad, 0x18, 0x4f, 0x9e, 0xad, 0x18, 0x7f, 0x3d, 0x5b, 0x31, - 0x1e, 0x3e, 0x5f, 0x99, 0x79, 0xf2, 0x7c, 0x65, 0xe6, 0xf7, 0xe7, 0x2b, 0x33, 0x9f, 0x36, 0x12, - 0xc5, 0x6d, 0xc4, 0x6e, 0x6f, 0xa0, 0x66, 0x54, 0xef, 0x05, 0xb9, 0xe0, 0x52, 0x86, 0x93, 0xa4, - 0xd8, 0xee, 0xeb, 0xea, 0x9f, 0x2b, 0x91, 0xfc, 0x57, 0x9d, 0xec, 0x81, 0x66, 0x56, 0x0e, 0xf0, - 0x7b, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x29, 0x4b, 0xf3, 0x34, 0xc8, 0x13, 0x00, 0x00, + // 1648 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x3b, 0x6f, 0x1b, 0xc7, + 0x16, 0xd6, 0x92, 0x14, 0x25, 0x1e, 0x3e, 0x64, 0xad, 0x24, 0x9b, 0xd6, 0xb5, 0x44, 0x7a, 0x7d, + 0x8d, 0xab, 0x7b, 0x01, 0x93, 0xd7, 0x0a, 0x12, 0x27, 0x76, 0x91, 0x88, 0xf2, 0x4b, 0x80, 0x1f, + 0xca, 0x4a, 0x76, 0x91, 0x66, 0x31, 0xdc, 0x1d, 0x92, 0x1b, 0x73, 0x67, 0x98, 0xd9, 0xa1, 0x6c, + 0xfd, 0x82, 0x04, 0xa9, 0x0c, 0x24, 0x48, 0xed, 0x2a, 0x45, 0x80, 0x00, 0x29, 0xdc, 0xa4, 0x49, + 0x95, 0xc2, 0x08, 0x02, 0xc4, 0x65, 0x90, 0xc2, 0x09, 0xec, 0x22, 0xfe, 0x0b, 0xa9, 0x12, 0xcc, + 0x83, 0xe4, 0xf2, 0x21, 0x5a, 0xb4, 0xd5, 0x10, 0x3b, 0xdf, 0x79, 0xcc, 0xd9, 0xf3, 0xf8, 0x66, + 0x96, 0x50, 0xf0, 0xc9, 0xc7, 0xd8, 0xe5, 0xfe, 0x1e, 0x2e, 0x53, 0x97, 0x95, 0xf7, 0xce, 0x57, + 0x31, 0x47, 0xe7, 0xc5, 0x73, 0xa9, 0xc5, 0x28, 0xa7, 0xe6, 0x52, 0x57, 0xa1, 0x24, 0x40, 0xad, + 0xb0, 0xbc, 0xea, 0xd2, 0x30, 0xa0, 0x61, 0xb9, 0x8a, 0x42, 0xdc, 0xb5, 0x72, 0xa9, 0x4f, 0x94, + 0xd9, 0xf2, 0x49, 0x25, 0x77, 0xe4, 0xaa, 0xac, 0x16, 0x5a, 0xb4, 0x58, 0xa7, 0x75, 0xaa, 0x70, + 0xf1, 0xa4, 0xd1, 0x42, 0x9d, 0xd2, 0x7a, 0x13, 0x97, 0xe5, 0xaa, 0xda, 0xae, 0x95, 0xb9, 0x1f, + 0xe0, 0x90, 0xa3, 0xa0, 0xa5, 0x15, 0xe6, 0x51, 0xe0, 0x13, 0x5a, 0x96, 0xbf, 0x0a, 0xb2, 0xbe, + 0x30, 0x20, 0xb9, 0x8d, 0x18, 0x0a, 0x42, 0x73, 0x05, 0xa0, 0xe9, 0x93, 0x7b, 0x8e, 0x87, 0x09, + 0x0d, 0xf2, 0x46, 0xd1, 0x58, 0x4b, 0xd9, 0x29, 0x81, 0x5c, 0x16, 0x80, 0xb9, 0x0e, 0x4b, 0x2d, + 0xb4, 0x4f, 0xdb, 0xdc, 0xa9, 0x36, 0xa9, 0x7b, 0xcf, 0xf1, 0x09, 0xc7, 0x6c, 0x0f, 0x35, 0xf3, + 0xb1, 0xa2, 0xb1, 0x96, 0xb0, 0x17, 0x94, 0xb0, 0x22, 0x64, 0x5b, 0x5a, 0x64, 0x9e, 0x86, 0x4c, + 0x40, 0xbd, 0x76, 0x13, 0x3b, 0xc8, 0x0b, 0x7c, 0x92, 0x8f, 0x4b, 0xa7, 0x69, 0x85, 0x6d, 0x08, + 0xe8, 0xe2, 0xc2, 0xcb, 0x47, 0x05, 0xe3, 0xf3, 0x3f, 0xbf, 0xfb, 0x1f, 0x88, 0xe4, 0xa9, 0x50, + 0xac, 0x6f, 0x62, 0x00, 0x57, 0x31, 0xf6, 0x36, 0x29, 0xa9, 0xf9, 0x75, 0x33, 0x0f, 0x33, 0xa1, + 0x5f, 0x27, 0x98, 0x85, 0x79, 0xa3, 0x18, 0x5f, 0x4b, 0xd9, 0x9d, 0xa5, 0x69, 0x41, 0x86, 0x33, + 0x44, 0xc2, 0xc0, 0xe7, 0x5c, 0x88, 0x63, 0x52, 0xdc, 0x87, 0x99, 0x19, 0x30, 0x6a, 0x72, 0xe7, + 0xac, 0x6d, 0xd4, 0xcc, 0xb3, 0x90, 0xa3, 0xc4, 0x6d, 0x20, 0x9f, 0x38, 0xae, 0xf4, 0x9e, 0x4f, + 0x14, 0x8d, 0xb5, 0x8c, 0x9d, 0xd5, 0xa8, 0xde, 0xf2, 0x1d, 0x38, 0x41, 0x6b, 0xb5, 0xa8, 0x9e, + 0xb3, 0x87, 0x59, 0xe8, 0x53, 0x92, 0x9f, 0x96, 0xef, 0xbb, 0xd4, 0x11, 0x2b, 0x83, 0xbb, 0x4a, + 0x68, 0xfe, 0x07, 0xe6, 0x06, 0xec, 0xf2, 0x49, 0xe9, 0x3f, 0xd7, 0xaf, 0x6f, 0x5e, 0x87, 0xac, + 0x4e, 0x4d, 0x4b, 0xbe, 0x73, 0x7e, 0xa6, 0x68, 0xac, 0xa5, 0xd7, 0xcf, 0x94, 0x46, 0x36, 0x4b, + 0xe9, 0xa6, 0xd4, 0x55, 0xe9, 0xb1, 0x75, 0x52, 0x75, 0xb2, 0x7e, 0x30, 0x20, 0xd7, 0x4b, 0xd6, + 0x16, 0xa9, 0x51, 0xf3, 0xff, 0xb0, 0xd8, 0x44, 0x1c, 0x87, 0xbc, 0x13, 0xbb, 0xe7, 0xd7, 0x71, + 0xc8, 0x65, 0x51, 0x33, 0xb6, 0xa9, 0x64, 0x4a, 0xff, 0xb2, 0x94, 0xa8, 0x24, 0xc5, 0x3a, 0x49, + 0xca, 0x80, 0x41, 0x3a, 0x29, 0x23, 0xa2, 0x8a, 0xda, 0x8d, 0x4b, 0xdb, 0x84, 0xcb, 0x84, 0x25, + 0xec, 0xb4, 0xc2, 0x36, 0x05, 0x64, 0x5e, 0x82, 0xe5, 0xfe, 0x0d, 0x55, 0x8f, 0x90, 0x76, 0x50, + 0xc5, 0x4c, 0x66, 0x2c, 0x6e, 0x9f, 0x88, 0x6e, 0x2b, 0xfb, 0xe4, 0x96, 0x14, 0x5b, 0x7f, 0xc7, + 0x21, 0x13, 0x7d, 0x3f, 0xf3, 0x04, 0xcc, 0xd4, 0x30, 0xf6, 0x1c, 0xdf, 0xd3, 0x6d, 0x98, 0x14, + 0xcb, 0x2d, 0xcf, 0xac, 0x00, 0x04, 0x3e, 0x71, 0x10, 0x09, 0xef, 0x63, 0x26, 0xc3, 0x4d, 0x55, + 0xce, 0x3c, 0x79, 0x56, 0x98, 0xfa, 0xed, 0x59, 0xe1, 0x5f, 0x6a, 0x42, 0x42, 0xef, 0x5e, 0xc9, + 0xa7, 0xe5, 0x00, 0xf1, 0x46, 0xe9, 0x06, 0xae, 0x23, 0x77, 0xff, 0x32, 0x76, 0xed, 0x54, 0xe0, + 0x93, 0x0d, 0x69, 0x25, 0x7d, 0xa0, 0x07, 0x1d, 0x1f, 0xf1, 0x49, 0x7c, 0xa0, 0x07, 0xda, 0xc7, + 0x6d, 0x58, 0x94, 0xa3, 0xd2, 0xc2, 0xcc, 0xa1, 0xd5, 0x50, 0x34, 0x3b, 0x17, 0xad, 0x91, 0x90, + 0xde, 0x56, 0xb4, 0xb7, 0xa5, 0x61, 0x6f, 0x5b, 0x84, 0xdb, 0xa6, 0x30, 0xdd, 0xc6, 0xec, 0x76, + 0xcf, 0xd0, 0xfc, 0x10, 0x96, 0xba, 0x0e, 0x75, 0xf3, 0x86, 0xdd, 0x66, 0x7b, 0xa5, 0xc7, 0x05, + 0xed, 0x71, 0x37, 0x62, 0x39, 0x30, 0xce, 0xc9, 0xc1, 0x71, 0x3e, 0x0b, 0xb9, 0x36, 0xf1, 0x3f, + 0x69, 0x63, 0x87, 0xe1, 0x16, 0x65, 0x5c, 0x35, 0xe0, 0xac, 0x9d, 0x55, 0xa8, 0xad, 0x40, 0xb3, + 0x08, 0x69, 0x0f, 0x87, 0x2e, 0xf3, 0x5b, 0xf2, 0x05, 0x67, 0xd5, 0x00, 0x47, 0x20, 0xb1, 0x8f, + 0x2c, 0x96, 0x9a, 0xf0, 0x94, 0xda, 0x47, 0x20, 0x72, 0xbe, 0xcd, 0x33, 0x90, 0xad, 0xfa, 0xcd, + 0xa6, 0x4f, 0xea, 0x5a, 0x03, 0xa4, 0x46, 0x46, 0x83, 0x52, 0xc9, 0xfa, 0x34, 0x06, 0xb9, 0x4d, + 0x4a, 0x38, 0x43, 0xae, 0xee, 0x8f, 0xa1, 0xa6, 0x33, 0x86, 0x9b, 0x2e, 0x42, 0x0b, 0xb1, 0xf1, + 0xb4, 0x10, 0x3f, 0x88, 0x16, 0x12, 0x07, 0xd3, 0xc2, 0xf4, 0x84, 0xb4, 0x90, 0x9c, 0x90, 0x16, + 0x66, 0x46, 0xd1, 0x82, 0xf5, 0xc4, 0x80, 0xf9, 0x1d, 0xac, 0x93, 0xb0, 0xcd, 0x68, 0x8b, 0x86, + 0xa8, 0x69, 0x2e, 0xc2, 0x34, 0xf7, 0x79, 0x13, 0xeb, 0x71, 0x50, 0x8b, 0xc1, 0xda, 0xc4, 0x86, + 0x6b, 0xf3, 0x1e, 0x24, 0xf5, 0x6e, 0x71, 0xc9, 0x2e, 0xa7, 0x0f, 0x60, 0x97, 0x1e, 0x7d, 0xd8, + 0xda, 0xe0, 0xe2, 0x07, 0x9f, 0x3d, 0x2a, 0x4c, 0xbd, 0x7c, 0x54, 0x98, 0xfa, 0xe9, 0xf1, 0xb9, + 0x65, 0x7d, 0xf8, 0xd4, 0xe9, 0x5e, 0xd7, 0x44, 0x94, 0x0b, 0x13, 0x2e, 0x98, 0x7b, 0x49, 0x30, + 0xf7, 0x50, 0xd0, 0xd6, 0xe3, 0x84, 0xe2, 0x25, 0x01, 0x60, 0xc6, 0x7d, 0x3c, 0x66, 0xb0, 0xfb, + 0xe9, 0x67, 0xb8, 0x18, 0xf1, 0x09, 0x8b, 0x91, 0x98, 0xb0, 0x18, 0xd3, 0x23, 0x39, 0xba, 0x9f, + 0x6e, 0x92, 0x47, 0x40, 0x37, 0x33, 0x47, 0x4a, 0x37, 0xb3, 0x47, 0x4e, 0x37, 0xa9, 0xd7, 0xa6, + 0x9b, 0x61, 0x3e, 0x81, 0x43, 0xf0, 0x49, 0x7a, 0xa8, 0x67, 0xad, 0x1f, 0x63, 0x70, 0x7c, 0x07, + 0xf3, 0x0a, 0xe2, 0x6e, 0xe3, 0x88, 0xc6, 0x20, 0x42, 0x14, 0xf1, 0xf1, 0x44, 0x91, 0x18, 0x41, + 0x14, 0xfd, 0x44, 0x3a, 0x3d, 0x48, 0xa4, 0xb7, 0x60, 0x4e, 0xf6, 0x74, 0xab, 0xdb, 0xe6, 0xf9, + 0x64, 0x31, 0xbe, 0x96, 0x5e, 0x3f, 0x3b, 0x66, 0xd8, 0x7a, 0x33, 0x61, 0xe7, 0x6a, 0x7d, 0xeb, + 0x8b, 0x57, 0x0e, 0x3f, 0x78, 0xcb, 0x7a, 0xf0, 0x46, 0xe4, 0xca, 0x5a, 0x87, 0xfc, 0x6d, 0x86, + 0xdc, 0x26, 0x8e, 0xd4, 0x3d, 0x94, 0xbc, 0x19, 0x9a, 0xc7, 0x05, 0x2d, 0x88, 0x27, 0x79, 0x9d, + 0xca, 0xda, 0x7a, 0x65, 0xdd, 0x85, 0xf9, 0x6b, 0x28, 0xb4, 0xb1, 0x1f, 0x54, 0xdb, 0x2c, 0xc4, + 0x01, 0x16, 0xca, 0x1b, 0x90, 0x63, 0x7d, 0x88, 0x34, 0x4a, 0xaf, 0x9f, 0x2c, 0xe9, 0xe0, 0xc4, + 0xfd, 0x35, 0x12, 0x9d, 0x4f, 0xec, 0x01, 0x03, 0xeb, 0x0e, 0x4c, 0x6f, 0xa3, 0x7d, 0x8c, 0xcd, + 0xff, 0xc2, 0xb1, 0x48, 0x6a, 0x1d, 0xe4, 0x79, 0x4c, 0xd7, 0x72, 0x2e, 0x82, 0x6f, 0x78, 0x1e, + 0x13, 0xfc, 0xdf, 0x42, 0xfb, 0xc2, 0x5e, 0xa9, 0xe9, 0xb2, 0x6a, 0x4c, 0xa8, 0x58, 0xdf, 0x1b, + 0x90, 0xe9, 0xeb, 0xc1, 0x4b, 0x90, 0xd4, 0x73, 0x66, 0x1c, 0x7e, 0xce, 0xb4, 0x89, 0xf9, 0x36, + 0x1c, 0x8f, 0xcc, 0x56, 0xe8, 0x74, 0x2f, 0xcf, 0x72, 0xeb, 0xb8, 0xbd, 0x14, 0x95, 0xee, 0x76, + 0x84, 0xc2, 0x2c, 0x3a, 0x41, 0x11, 0xb3, 0xb8, 0x32, 0x8b, 0x4a, 0xbb, 0x66, 0xd6, 0x25, 0xc8, + 0x5e, 0x69, 0x51, 0xb7, 0xb1, 0x41, 0x3c, 0x9b, 0xb6, 0x89, 0x27, 0x7a, 0x1b, 0x0b, 0x40, 0x1f, + 0x74, 0x6a, 0x21, 0x50, 0x26, 0xc4, 0xfa, 0x92, 0xad, 0x16, 0xd6, 0xd7, 0x06, 0x24, 0xd5, 0x40, + 0x8d, 0x89, 0xda, 0x18, 0x17, 0xf5, 0x29, 0x48, 0x29, 0x81, 0x3a, 0x3c, 0x05, 0xf9, 0xf5, 0x00, + 0xf3, 0x1a, 0x64, 0xa2, 0x66, 0x6a, 0x68, 0x0e, 0x97, 0xcd, 0x3e, 0x43, 0xeb, 0x2b, 0x03, 0x32, + 0x2a, 0xd0, 0x5d, 0xba, 0xe3, 0xd7, 0xe5, 0x6d, 0x60, 0xd4, 0x8d, 0x54, 0x1f, 0xf5, 0xfa, 0x2e, + 0xda, 0x4d, 0x45, 0x6c, 0x64, 0x2a, 0xe2, 0x91, 0x54, 0x88, 0xe1, 0xc4, 0x0f, 0x38, 0x43, 0x4e, + 0x03, 0x85, 0x0d, 0x7d, 0x95, 0x4f, 0x49, 0xe4, 0x3a, 0x0a, 0x1b, 0xa2, 0xd3, 0x15, 0x1d, 0x69, + 0x86, 0xd7, 0x2b, 0xeb, 0x4b, 0x03, 0xe6, 0xae, 0xec, 0x61, 0xc2, 0xd5, 0x8c, 0x6c, 0x23, 0xdf, + 0x9b, 0xa4, 0x39, 0x57, 0x00, 0x5a, 0xa2, 0xa1, 0xa3, 0xad, 0x99, 0x92, 0x88, 0x14, 0x5f, 0x80, + 0x24, 0x0a, 0xe4, 0xad, 0x45, 0x1d, 0xbb, 0x07, 0x8f, 0x4a, 0x25, 0x21, 0x92, 0x6a, 0x6b, 0x75, + 0xeb, 0x67, 0x03, 0x4c, 0x19, 0x96, 0x22, 0xfe, 0x3b, 0x2d, 0x0f, 0x71, 0xec, 0x99, 0x17, 0x60, + 0xc6, 0x6d, 0x33, 0x86, 0xf5, 0x35, 0xe8, 0x95, 0x04, 0xdd, 0xd1, 0x36, 0xdf, 0x85, 0x59, 0x99, + 0x26, 0x71, 0xe0, 0xc6, 0x0e, 0x65, 0x29, 0xd5, 0xb7, 0x3c, 0x73, 0x13, 0xa0, 0xad, 0x76, 0x77, + 0x50, 0xe7, 0x35, 0x96, 0x4b, 0xea, 0x03, 0xb3, 0xd4, 0xf9, 0xc0, 0x2c, 0x75, 0x1b, 0xaa, 0x32, + 0x2b, 0xfc, 0x3e, 0xfc, 0xbd, 0x60, 0xd8, 0x29, 0x6d, 0xb7, 0xc1, 0xad, 0x6f, 0x0d, 0xc8, 0xca, + 0xd7, 0xb9, 0x85, 0xef, 0xab, 0x2e, 0x8f, 0x06, 0x64, 0x4c, 0x14, 0xd0, 0x0a, 0x40, 0xc8, 0x11, + 0x13, 0x01, 0x55, 0xf7, 0x3b, 0x29, 0xd7, 0x48, 0x65, 0x5f, 0xc4, 0xdb, 0x11, 0x4f, 0x1a, 0xaf, + 0xb6, 0xdb, 0xe0, 0xd6, 0x4d, 0x38, 0x26, 0xc3, 0xdd, 0xed, 0x96, 0xdb, 0x7b, 0x83, 0x8e, 0xb5, + 0x7e, 0x89, 0xc3, 0x62, 0xe7, 0xf5, 0xfb, 0x78, 0xea, 0xc0, 0x6b, 0x50, 0x09, 0x16, 0x50, 0xbd, + 0xce, 0x70, 0x1d, 0x71, 0xca, 0x9c, 0xbe, 0xd2, 0x65, 0xed, 0xf9, 0x9e, 0xc8, 0xd6, 0x49, 0xe9, + 0x11, 0x5e, 0x7c, 0x72, 0xc2, 0x2b, 0x42, 0x3a, 0xd2, 0xd7, 0xea, 0xdb, 0xc5, 0x8e, 0x42, 0x63, + 0xc8, 0x65, 0x7a, 0x1c, 0xb9, 0x0c, 0xd2, 0x47, 0xf2, 0x35, 0xe9, 0xa3, 0x9f, 0xa5, 0x66, 0x06, + 0x59, 0x6a, 0xa8, 0x32, 0xb3, 0x23, 0x2a, 0x73, 0x03, 0xe6, 0x64, 0x31, 0x1c, 0x44, 0x3c, 0x95, + 0x50, 0x79, 0xc7, 0x49, 0xaf, 0xff, 0xfb, 0x80, 0xd3, 0xb9, 0x8f, 0x95, 0xed, 0x2c, 0x8e, 0x2e, + 0xad, 0xbf, 0x0c, 0xc8, 0xc9, 0x8a, 0xaa, 0xc3, 0x76, 0x07, 0xf3, 0xc3, 0xf5, 0xc7, 0xfb, 0x70, + 0xaa, 0xc5, 0xf0, 0x9e, 0x4f, 0xdb, 0xe1, 0xc8, 0x0f, 0x64, 0x75, 0xc2, 0x9c, 0xec, 0xe8, 0x0c, + 0x7d, 0x22, 0xbf, 0xc1, 0x45, 0xde, 0xbc, 0x0a, 0xfa, 0xa3, 0xc9, 0xf1, 0x49, 0x8d, 0xca, 0x32, + 0x8f, 0xbf, 0x9b, 0xf4, 0xfe, 0x47, 0xb0, 0xc1, 0xed, 0x3e, 0x57, 0xdc, 0x27, 0xcf, 0x57, 0x8d, + 0xa7, 0xcf, 0x57, 0x8d, 0x3f, 0x9e, 0xaf, 0x1a, 0x0f, 0x5f, 0xac, 0x4e, 0x3d, 0x7d, 0xb1, 0x3a, + 0xf5, 0xeb, 0x8b, 0xd5, 0xa9, 0x8f, 0xb6, 0xea, 0x3e, 0x6f, 0xb4, 0xab, 0x25, 0x97, 0x06, 0xe5, + 0xad, 0x8e, 0xdb, 0x1b, 0xa8, 0x1a, 0x96, 0xbb, 0x9b, 0x9c, 0x73, 0x29, 0xc3, 0xd1, 0xa5, 0xb8, + 0x65, 0x97, 0xd5, 0xdf, 0x18, 0xa1, 0xfc, 0xdb, 0x8c, 0xef, 0xb7, 0x70, 0x58, 0x4d, 0xca, 0x51, + 0x7d, 0xeb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x77, 0x1a, 0x63, 0x54, 0x13, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -5917,7 +5921,7 @@ func (m *Report) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Observations = append(m.Observations, v) if err := m.Observations[len(m.Observations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6879,7 +6883,7 @@ func (m *EventNewTransmission) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Observations = append(m.Observations, v) if err := m.Observations[len(m.Observations)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/chain/ocr/types/tx.pb.go b/chain/ocr/types/tx.pb.go index 76af8a8c..82284d8a 100644 --- a/chain/ocr/types/tx.pb.go +++ b/chain/ocr/types/tx.pb.go @@ -5,11 +5,12 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/cosmos/cosmos-proto" - 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/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -116,9 +117,9 @@ type MsgUpdateFeed struct { // via the transmit method Transmitters []string `protobuf:"bytes,4,rep,name=transmitters,proto3" json:"transmitters,omitempty"` // Fixed LINK reward for each observer - LinkPerObservation *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_observation,omitempty"` + LinkPerObservation *cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=link_per_observation,json=linkPerObservation,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_observation,omitempty"` // Fixed LINK reward for transmitter - LinkPerTransmission *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"link_per_transmission,omitempty"` + LinkPerTransmission *cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=link_per_transmission,json=linkPerTransmission,proto3,customtype=cosmossdk.io/math.Int" json:"link_per_transmission,omitempty"` // Native denom for LINK coin in the bank keeper LinkDenom string `protobuf:"bytes,7,opt,name=link_denom,json=linkDenom,proto3" json:"link_denom,omitempty"` // feed administrator @@ -776,76 +777,82 @@ func init() { func init() { proto.RegisterFile("injective/ocr/v1beta1/tx.proto", fileDescriptor_570bfdb24a1374f8) } var fileDescriptor_570bfdb24a1374f8 = []byte{ - // 1094 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xc6, 0x89, 0x13, 0xbf, 0xb8, 0x54, 0x6c, 0x9c, 0x64, 0xb3, 0x6a, 0x6c, 0xd7, 0x41, - 0x55, 0x68, 0x89, 0x4d, 0x52, 0x7e, 0x86, 0x53, 0x92, 0xaa, 0x22, 0x12, 0x16, 0xd1, 0x16, 0x84, - 0x54, 0x09, 0xb9, 0xeb, 0xdd, 0xc9, 0x7a, 0x68, 0xbc, 0xb3, 0x9a, 0x19, 0xe7, 0xc7, 0x09, 0x09, - 0x71, 0xe0, 0xd8, 0x13, 0x07, 0x4e, 0xbd, 0x72, 0xe3, 0xc0, 0x91, 0x3f, 0x20, 0xc7, 0x0a, 0x09, - 0x09, 0x71, 0x88, 0x50, 0x72, 0x80, 0x3f, 0x03, 0xcd, 0xec, 0x78, 0xbc, 0x49, 0x76, 0x93, 0x18, - 0x2e, 0x9c, 0xec, 0xf7, 0xde, 0x37, 0xef, 0xfb, 0xe6, 0xbd, 0x99, 0x37, 0x36, 0x54, 0x70, 0xf8, - 0x15, 0xf2, 0x38, 0xde, 0x47, 0x4d, 0xe2, 0xd1, 0xe6, 0xfe, 0x6a, 0x07, 0x71, 0x77, 0xb5, 0xc9, - 0x0f, 0x1b, 0x11, 0x25, 0x9c, 0x98, 0xb3, 0x3a, 0xde, 0x20, 0x1e, 0x6d, 0xa8, 0xb8, 0x5d, 0xf1, - 0x08, 0xeb, 0x11, 0xd6, 0xec, 0xb8, 0x0c, 0xe9, 0x45, 0x1e, 0xc1, 0x61, 0xbc, 0xcc, 0x9e, 0x57, - 0xf1, 0x1e, 0x0b, 0x9a, 0xfb, 0xab, 0xe2, 0x43, 0x05, 0xca, 0x01, 0x09, 0x88, 0xfc, 0xda, 0x14, - 0xdf, 0x94, 0xb7, 0x9a, 0xae, 0x42, 0x30, 0xc6, 0x80, 0x85, 0x38, 0x5f, 0x3b, 0x5e, 0x19, 0x1b, - 0x71, 0xa8, 0x7e, 0x00, 0xb7, 0x5a, 0x2c, 0xd8, 0xa2, 0xc8, 0xe5, 0xe8, 0x31, 0x42, 0xbe, 0x39, - 0x07, 0x05, 0x86, 0x42, 0x1f, 0x51, 0xcb, 0xa8, 0x19, 0xcb, 0x45, 0x47, 0x59, 0xe6, 0x87, 0x50, - 0xf0, 0x48, 0xb8, 0x8b, 0x03, 0x6b, 0xac, 0x66, 0x2c, 0x4f, 0xaf, 0xdd, 0x6d, 0xa4, 0xee, 0xad, - 0x21, 0x92, 0x6c, 0x49, 0xa0, 0xa3, 0x16, 0xac, 0xcf, 0x7c, 0xf7, 0xb2, 0x9a, 0xfb, 0xfb, 0x65, - 0x35, 0xf7, 0xcd, 0x5f, 0x3f, 0xdd, 0x57, 0xf9, 0xea, 0xf3, 0x30, 0x7b, 0x8e, 0xd8, 0x41, 0x2c, - 0x22, 0x21, 0x43, 0xf5, 0x5f, 0xf2, 0x52, 0xd2, 0xe7, 0x91, 0x7f, 0x9d, 0xa4, 0x79, 0x98, 0xdc, - 0x45, 0xc8, 0x6f, 0x63, 0x5f, 0x6a, 0x2a, 0x3a, 0x05, 0x61, 0x6e, 0xfb, 0xa6, 0x05, 0x93, 0x0c, - 0x07, 0x21, 0xa2, 0xcc, 0xca, 0xd7, 0xf2, 0xcb, 0x45, 0x67, 0x60, 0x9a, 0x75, 0x28, 0x71, 0xea, - 0x86, 0xac, 0x87, 0x39, 0x17, 0xe1, 0x71, 0x19, 0x3e, 0xe7, 0x33, 0x9f, 0x41, 0x79, 0x0f, 0x87, - 0xcf, 0xdb, 0x11, 0xa2, 0x6d, 0xd2, 0x61, 0x88, 0xee, 0xbb, 0x1c, 0x93, 0xd0, 0x9a, 0x10, 0x1c, - 0x9b, 0x8d, 0xe3, 0x93, 0xaa, 0xf1, 0xc7, 0x49, 0xf5, 0x5e, 0x80, 0x79, 0xb7, 0xdf, 0x69, 0x78, - 0xa4, 0xa7, 0x2a, 0xaa, 0x3e, 0x56, 0x98, 0xff, 0xbc, 0xc9, 0x8f, 0x22, 0xc4, 0x1a, 0xdb, 0x21, - 0x77, 0x4c, 0x91, 0x6b, 0x07, 0xd1, 0x4f, 0x87, 0x99, 0xcc, 0x0e, 0xcc, 0x6a, 0x06, 0x45, 0xcd, - 0x98, 0xa0, 0x28, 0xfc, 0x2b, 0x8a, 0x19, 0x45, 0xf1, 0x59, 0x22, 0x95, 0xb9, 0x08, 0x20, 0x39, - 0x7c, 0x14, 0x92, 0x9e, 0x35, 0x29, 0xeb, 0x53, 0x14, 0x9e, 0x47, 0xc2, 0x21, 0xc2, 0xb2, 0x76, - 0xae, 0xdf, 0xc3, 0xa1, 0x35, 0x15, 0x87, 0x85, 0x67, 0x43, 0x38, 0xcc, 0x25, 0xb8, 0xd5, 0xc1, - 0x7b, 0x7b, 0x38, 0x0c, 0x14, 0xa2, 0x28, 0x11, 0x25, 0xe5, 0x94, 0xa0, 0xab, 0xfa, 0x3a, 0xec, - 0x9e, 0xee, 0xeb, 0x8f, 0x63, 0x30, 0xdd, 0x62, 0x81, 0x12, 0xc9, 0xcd, 0x1a, 0x4c, 0x27, 0xca, - 0xae, 0x5a, 0x9b, 0x74, 0x09, 0x11, 0xf1, 0x09, 0x6a, 0xfb, 0x38, 0x40, 0x8c, 0xcb, 0x2e, 0x97, - 0x9c, 0x52, 0xec, 0x7c, 0x24, 0x7d, 0xc9, 0x43, 0x90, 0x3f, 0x77, 0x08, 0xca, 0x30, 0x81, 0x22, - 0xe2, 0x75, 0xad, 0xf1, 0x9a, 0xb1, 0x3c, 0xee, 0xc4, 0x86, 0xf0, 0x52, 0xd2, 0x0f, 0x7d, 0xd9, - 0xcd, 0x71, 0x27, 0x36, 0x44, 0x35, 0xd0, 0x21, 0xa7, 0x6e, 0xbb, 0xeb, 0xb2, 0xae, 0xec, 0x42, - 0xc9, 0x29, 0x4a, 0xcf, 0xc7, 0x2e, 0xeb, 0x9a, 0xef, 0x42, 0x81, 0xa2, 0x88, 0x50, 0x2e, 0xeb, - 0x38, 0xbd, 0xb6, 0x98, 0x71, 0xf6, 0x1d, 0x09, 0x72, 0x14, 0xd8, 0xac, 0x00, 0x88, 0x73, 0xe7, - 0xf2, 0x3e, 0x45, 0xcc, 0x9a, 0xaa, 0xe5, 0x97, 0x4b, 0x4e, 0xc2, 0xb3, 0x6e, 0x25, 0xeb, 0x97, - 0xdc, 0x79, 0x7d, 0x16, 0x66, 0x12, 0xa5, 0xd2, 0x25, 0xfc, 0xde, 0x90, 0xc5, 0x7d, 0xdc, 0x0f, - 0xfd, 0xb8, 0xb4, 0x07, 0x2e, 0xf5, 0x77, 0x08, 0xd9, 0x1b, 0xfd, 0x8a, 0xbc, 0x0f, 0x05, 0xb7, - 0x47, 0xfa, 0x21, 0x97, 0x55, 0x9b, 0x5e, 0x5b, 0x68, 0xa8, 0xb1, 0x20, 0x66, 0x92, 0xde, 0xd0, - 0x16, 0xc1, 0xe1, 0xe6, 0xf8, 0xf1, 0x49, 0x35, 0xe7, 0x28, 0x78, 0x7a, 0xd3, 0xab, 0xb0, 0x98, - 0xaa, 0x4b, 0x2b, 0xff, 0xc1, 0x80, 0x85, 0x16, 0x0b, 0xbe, 0xc0, 0xbc, 0xeb, 0x53, 0xf7, 0xe0, - 0xff, 0xa5, 0x7e, 0x09, 0xee, 0x66, 0x6a, 0xd3, 0x3b, 0x78, 0x61, 0x40, 0xa9, 0xc5, 0x82, 0x27, - 0x88, 0xef, 0xb8, 0x47, 0x08, 0xb1, 0xd1, 0x45, 0x5f, 0x9c, 0x3d, 0xf9, 0x94, 0xd9, 0x33, 0x07, - 0x85, 0x48, 0xa6, 0x57, 0x93, 0x49, 0x59, 0xe9, 0xba, 0xe7, 0xa0, 0x9c, 0x54, 0x94, 0x2c, 0x76, - 0x79, 0x70, 0x7c, 0x76, 0x11, 0x8d, 0xa3, 0x5d, 0x1c, 0x65, 0x4a, 0xbe, 0x70, 0x15, 0xc7, 0x2e, - 0x5f, 0xc5, 0xcc, 0x5b, 0x66, 0xc3, 0x54, 0x44, 0x49, 0x44, 0x18, 0xf2, 0xe5, 0x45, 0x2b, 0x3a, - 0xda, 0x4e, 0x17, 0x5d, 0x81, 0x3b, 0x69, 0xda, 0xb4, 0xf8, 0xaf, 0xc1, 0x6c, 0xb1, 0x60, 0xc3, - 0xf3, 0x50, 0xc4, 0x87, 0xca, 0xcb, 0x30, 0x21, 0x2b, 0xa1, 0x84, 0xc7, 0xc6, 0x7f, 0xd0, 0x7d, - 0xc5, 0xdd, 0xbb, 0x03, 0xf6, 0x65, 0x01, 0xc9, 0x2b, 0x78, 0x5b, 0xcf, 0xb7, 0x1d, 0x97, 0xba, - 0x3d, 0x66, 0xbe, 0x07, 0x45, 0xb7, 0xcf, 0xbb, 0x84, 0x62, 0x7e, 0x14, 0x0b, 0xdc, 0xb4, 0x7e, - 0xfd, 0x79, 0xa5, 0xac, 0xce, 0xe4, 0x86, 0xef, 0x53, 0xc4, 0xd8, 0x13, 0x4e, 0x71, 0x18, 0x38, - 0x43, 0xa8, 0xf9, 0x91, 0x68, 0xb6, 0xc8, 0xa0, 0x9e, 0xd4, 0xac, 0xb1, 0x12, 0xd3, 0x0c, 0x4e, - 0x72, 0xbc, 0x64, 0xfd, 0x35, 0x21, 0x7c, 0x98, 0xac, 0xbe, 0x00, 0xf3, 0x17, 0x74, 0x0d, 0x34, - 0xaf, 0xfd, 0x36, 0x09, 0xf9, 0x16, 0x0b, 0xcc, 0x67, 0x00, 0x89, 0x87, 0xfe, 0x8d, 0x0c, 0xb6, - 0x73, 0xaf, 0xb2, 0xfd, 0xd6, 0x4d, 0x50, 0x03, 0x26, 0xc1, 0x90, 0x78, 0xb7, 0xaf, 0x60, 0x18, - 0xa2, 0xae, 0x62, 0xb8, 0xfc, 0x8a, 0x98, 0x4f, 0x61, 0x4a, 0xbf, 0x20, 0xf5, 0xec, 0x95, 0x03, - 0x8c, 0x7d, 0xff, 0x7a, 0x8c, 0xce, 0x7d, 0x08, 0x66, 0xca, 0x68, 0xbd, 0x42, 0xdf, 0x65, 0xb4, - 0xfd, 0xce, 0x28, 0x68, 0xcd, 0xfc, 0xad, 0x01, 0x73, 0x19, 0xb3, 0xf1, 0xed, 0xec, 0x84, 0xe9, - 0x2b, 0xec, 0x0f, 0x46, 0x5d, 0xa1, 0x65, 0x7c, 0x09, 0xc5, 0xe1, 0x7c, 0x5b, 0xca, 0x4e, 0xa3, - 0x41, 0xf6, 0x83, 0x1b, 0x80, 0x74, 0xfa, 0x3e, 0xbc, 0x7e, 0x79, 0x26, 0x3d, 0xb8, 0xa6, 0x41, - 0x49, 0xb0, 0xfd, 0x70, 0x04, 0xb0, 0xa6, 0x25, 0x70, 0xfb, 0xe2, 0x38, 0x79, 0x33, 0x3b, 0xcf, - 0x05, 0xa8, 0xbd, 0x7a, 0x63, 0xa8, 0x26, 0xdc, 0x85, 0xd2, 0xb9, 0xf9, 0x70, 0xef, 0xba, 0x13, - 0x1e, 0xe3, 0xec, 0xc6, 0xcd, 0x70, 0x03, 0x9e, 0x4d, 0xef, 0xf8, 0xb4, 0x62, 0xbc, 0x3a, 0xad, - 0x18, 0x7f, 0x9e, 0x56, 0x8c, 0x17, 0x67, 0x95, 0xdc, 0xab, 0xb3, 0x4a, 0xee, 0xf7, 0xb3, 0x4a, - 0xee, 0xe9, 0x76, 0xe2, 0x97, 0xe3, 0xf6, 0x20, 0xe7, 0x27, 0x6e, 0x87, 0x35, 0x35, 0xc3, 0x8a, - 0x47, 0x28, 0x4a, 0x9a, 0x5d, 0x17, 0x87, 0xcd, 0x1e, 0xf1, 0xfb, 0x7b, 0x88, 0xc9, 0xff, 0x11, - 0xf2, 0x07, 0x66, 0xa7, 0x20, 0xff, 0x27, 0x3c, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x49, 0x46, - 0xe8, 0x84, 0xeb, 0x0c, 0x00, 0x00, + // 1186 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xf7, 0xd6, 0x89, 0x13, 0xbf, 0xb8, 0xea, 0xb7, 0x5b, 0x27, 0x71, 0x56, 0x8d, 0xed, 0x6e, + 0xbf, 0xaa, 0xdc, 0xb4, 0xb5, 0x9b, 0x84, 0xf2, 0xc3, 0x9c, 0x92, 0x54, 0x15, 0x91, 0xb0, 0x1a, + 0xb6, 0x20, 0xa4, 0x4a, 0xc8, 0xac, 0x77, 0x27, 0xeb, 0xa5, 0xf1, 0xce, 0x6a, 0x66, 0x9c, 0x26, + 0x37, 0x84, 0x38, 0x20, 0x24, 0x24, 0xce, 0x9c, 0x7a, 0xe1, 0x8a, 0x72, 0xa8, 0xc4, 0x05, 0xee, + 0x39, 0x56, 0x9c, 0x10, 0x42, 0x11, 0x4a, 0x0e, 0xe1, 0xcf, 0x40, 0x33, 0x3b, 0x1e, 0xaf, 0x7f, + 0x6c, 0x7e, 0x88, 0x03, 0x97, 0xc4, 0xef, 0xbd, 0xcf, 0xfb, 0xf1, 0x79, 0x6f, 0xe6, 0x8d, 0x0d, + 0x45, 0x3f, 0xf8, 0x02, 0x39, 0xcc, 0xdf, 0x45, 0x35, 0xec, 0x90, 0xda, 0xee, 0x72, 0x0b, 0x31, + 0x7b, 0xb9, 0xc6, 0xf6, 0xaa, 0x21, 0xc1, 0x0c, 0xeb, 0xb3, 0xca, 0x5e, 0xc5, 0x0e, 0xa9, 0x4a, + 0xbb, 0x51, 0x74, 0x30, 0xed, 0x60, 0x5a, 0x6b, 0xd9, 0x14, 0x29, 0x27, 0x07, 0xfb, 0x41, 0xe4, + 0x66, 0xcc, 0x4b, 0x7b, 0x87, 0x7a, 0xb5, 0xdd, 0x65, 0xfe, 0x4f, 0x1a, 0xf2, 0x1e, 0xf6, 0xb0, + 0xf8, 0x58, 0xe3, 0x9f, 0xa4, 0xb6, 0x34, 0xbe, 0x0a, 0x9e, 0x31, 0x02, 0x2c, 0x44, 0xf1, 0x9a, + 0x91, 0x67, 0x24, 0x48, 0xd3, 0x75, 0xbb, 0xe3, 0x07, 0xb8, 0x26, 0xfe, 0x46, 0x2a, 0xf3, 0x3b, + 0x0d, 0xae, 0x36, 0xa8, 0xb7, 0x41, 0x90, 0xcd, 0xd0, 0x13, 0x84, 0x5c, 0x7d, 0x0e, 0x32, 0x14, + 0x05, 0x2e, 0x22, 0x05, 0xad, 0xac, 0x55, 0xb2, 0x96, 0x94, 0xf4, 0xf7, 0x20, 0xe3, 0xe0, 0x60, + 0xdb, 0xf7, 0x0a, 0x57, 0xca, 0x5a, 0x65, 0x66, 0xe5, 0x56, 0x75, 0x2c, 0xdf, 0x2a, 0x0f, 0xb2, + 0x21, 0x80, 0x96, 0x74, 0xa8, 0xdf, 0xfd, 0xe6, 0x55, 0x29, 0xf5, 0xf7, 0xab, 0x52, 0xea, 0xab, + 0xd3, 0x83, 0x25, 0x19, 0xef, 0xdb, 0xd3, 0x83, 0xa5, 0xeb, 0x9c, 0xc1, 0x40, 0x76, 0x73, 0x1e, + 0x66, 0x07, 0x14, 0x16, 0xa2, 0x21, 0x0e, 0x28, 0x32, 0x0f, 0xd2, 0xa2, 0xd0, 0x4f, 0x42, 0xf7, + 0xbc, 0x42, 0xe7, 0x61, 0x6a, 0x1b, 0x21, 0xb7, 0xe9, 0xbb, 0xa2, 0xd2, 0xac, 0x95, 0xe1, 0xe2, + 0xa6, 0xab, 0x17, 0x60, 0x8a, 0xfa, 0x5e, 0x80, 0x08, 0x2d, 0xa4, 0xcb, 0xe9, 0x4a, 0xd6, 0xea, + 0x89, 0xba, 0x09, 0x39, 0x46, 0xec, 0x80, 0x76, 0x7c, 0xc6, 0xb8, 0x79, 0x42, 0x98, 0x07, 0x74, + 0xfa, 0x53, 0xc8, 0xef, 0xf8, 0xc1, 0x8b, 0x66, 0x88, 0x48, 0x13, 0xb7, 0x28, 0x22, 0xbb, 0x36, + 0xf3, 0x71, 0x50, 0x98, 0xe4, 0x39, 0xd6, 0x17, 0x0f, 0x8f, 0x4a, 0xda, 0x1f, 0x47, 0xa5, 0xd9, + 0xa8, 0xe1, 0xd4, 0x7d, 0x51, 0xf5, 0x71, 0xad, 0x63, 0xb3, 0x76, 0x75, 0x33, 0x60, 0x96, 0xce, + 0x5d, 0xb7, 0x10, 0x79, 0xda, 0x77, 0xd4, 0x3f, 0x82, 0x59, 0x15, 0x50, 0x66, 0xa2, 0x94, 0x47, + 0xcc, 0x5c, 0x24, 0xe2, 0x0d, 0x19, 0xf1, 0xe3, 0x98, 0xa7, 0xbe, 0x08, 0x20, 0x42, 0xba, 0x28, + 0xc0, 0x9d, 0xc2, 0x94, 0x60, 0x9f, 0xe5, 0x9a, 0xc7, 0x5c, 0xc1, 0xcd, 0xa2, 0x33, 0xb6, 0xdb, + 0xf1, 0x83, 0xc2, 0x74, 0x64, 0xe6, 0x9a, 0x35, 0xae, 0xd0, 0x6f, 0xc3, 0xd5, 0x96, 0xbf, 0xb3, + 0xe3, 0x07, 0x9e, 0x44, 0x64, 0x05, 0x22, 0x27, 0x95, 0x02, 0x74, 0xee, 0x2c, 0xfb, 0x03, 0x92, + 0xb3, 0xec, 0x2b, 0xd4, 0x2c, 0x7f, 0xbd, 0x02, 0x33, 0x0d, 0xea, 0xc9, 0xd2, 0x99, 0x5e, 0x86, + 0x99, 0x58, 0xab, 0xe5, 0x38, 0xe3, 0x2a, 0x5e, 0x5a, 0x74, 0x96, 0x9a, 0xae, 0xef, 0x21, 0xca, + 0xc4, 0x64, 0x73, 0x56, 0x2e, 0x52, 0x3e, 0x16, 0xba, 0xf8, 0xe0, 0xd3, 0x03, 0x83, 0xcf, 0xc3, + 0x24, 0x0a, 0xb1, 0xd3, 0x2e, 0x4c, 0x94, 0xb5, 0xca, 0x84, 0x15, 0x09, 0x5c, 0x4b, 0x70, 0x37, + 0x70, 0xc5, 0x04, 0x27, 0xac, 0x48, 0xe0, 0x3d, 0x42, 0x7b, 0x8c, 0xd8, 0xcd, 0xb6, 0x4d, 0xdb, + 0x62, 0x14, 0x39, 0x2b, 0x2b, 0x34, 0x1f, 0xd8, 0xb4, 0xad, 0x3f, 0x82, 0x0c, 0x41, 0x21, 0x26, + 0x4c, 0x74, 0x77, 0x66, 0x65, 0x31, 0xe1, 0x16, 0x58, 0x02, 0x64, 0x49, 0xb0, 0x5e, 0x04, 0xe0, + 0x67, 0xcd, 0x66, 0x5d, 0x82, 0x68, 0x61, 0xba, 0x9c, 0xae, 0xe4, 0xac, 0x98, 0xa6, 0x7e, 0x3f, + 0xde, 0xd5, 0x38, 0x73, 0xde, 0xda, 0x6b, 0xb2, 0xb5, 0xbd, 0x7e, 0x99, 0xb3, 0x70, 0x23, 0x26, + 0xaa, 0xb6, 0xbe, 0xd6, 0x44, 0xc3, 0x9f, 0x74, 0x03, 0x37, 0x6a, 0xf7, 0x4b, 0x9b, 0xb8, 0x5b, + 0x18, 0xef, 0x5c, 0xfe, 0xaa, 0xbc, 0x03, 0x19, 0xbb, 0x83, 0xbb, 0x01, 0x13, 0x9d, 0x9c, 0x59, + 0x59, 0xa8, 0xca, 0x45, 0xc2, 0xb7, 0x98, 0x22, 0xb9, 0x81, 0xfd, 0x60, 0x7d, 0xe2, 0xf0, 0xa8, + 0x94, 0xb2, 0x24, 0xbc, 0xbe, 0x9c, 0x70, 0x3c, 0x16, 0x24, 0x87, 0xd1, 0xe2, 0xcc, 0x12, 0x2c, + 0x8e, 0x35, 0x28, 0x5e, 0xbf, 0x68, 0xb0, 0xd0, 0xa0, 0xde, 0xa7, 0x3e, 0x6b, 0xbb, 0xc4, 0x7e, + 0xf9, 0x9f, 0x71, 0x7b, 0x94, 0xc0, 0x6d, 0x51, 0x72, 0x1b, 0x5f, 0xa0, 0x79, 0x1b, 0x6e, 0x25, + 0x1a, 0x15, 0xc7, 0x1f, 0x35, 0xc8, 0x35, 0xa8, 0xf7, 0x0c, 0xb1, 0x2d, 0x7b, 0x1f, 0x21, 0x7a, + 0x79, 0x5a, 0xc3, 0x3b, 0x2c, 0x3d, 0x66, 0x87, 0xcd, 0x41, 0x26, 0x14, 0xe1, 0xe5, 0x86, 0x93, + 0x52, 0xbd, 0x92, 0xc0, 0xec, 0x7f, 0x92, 0x99, 0x2a, 0xcb, 0x9c, 0x83, 0x7c, 0x5c, 0x56, 0xf5, + 0xff, 0xac, 0x09, 0x83, 0x38, 0x93, 0xdb, 0x88, 0x44, 0xd6, 0xb6, 0x1f, 0x26, 0xf2, 0x18, 0xba, + 0xf3, 0x57, 0x46, 0xef, 0x7c, 0xe2, 0x75, 0x36, 0x60, 0x3a, 0x24, 0x38, 0xc4, 0x14, 0xb9, 0xe2, + 0x46, 0x67, 0x2d, 0x25, 0xd7, 0x1f, 0x26, 0x30, 0x29, 0xc4, 0xef, 0x50, 0xbc, 0x40, 0xb3, 0x08, + 0x37, 0xc7, 0xe9, 0x15, 0xb3, 0x1f, 0x34, 0xd0, 0x1b, 0xd4, 0x5b, 0x73, 0x1c, 0x14, 0xb2, 0x3e, + 0xaf, 0x3c, 0x4c, 0x8a, 0xe6, 0x49, 0x5a, 0x91, 0xf0, 0x2f, 0x58, 0xd5, 0x57, 0xcf, 0x5a, 0x01, + 0x73, 0xb2, 0xfc, 0xa1, 0x2a, 0xcc, 0x9b, 0x60, 0x8c, 0x6a, 0x55, 0xe9, 0x3f, 0x69, 0x70, 0x4d, + 0x6d, 0xe0, 0x2d, 0x9b, 0xd8, 0x1d, 0xaa, 0xbf, 0x0d, 0x59, 0xbb, 0xcb, 0xda, 0x98, 0xf8, 0x6c, + 0x3f, 0xaa, 0x7d, 0xbd, 0xf0, 0xdb, 0xeb, 0x07, 0x79, 0x79, 0x07, 0xd6, 0x5c, 0x97, 0x20, 0x4a, + 0x9f, 0x31, 0xe2, 0x07, 0x9e, 0xd5, 0x87, 0xea, 0xef, 0xf3, 0xa3, 0xc3, 0x23, 0xc8, 0xe7, 0x3f, + 0x69, 0xf1, 0x45, 0x69, 0x7a, 0x37, 0x27, 0x72, 0xa9, 0xdf, 0xe1, 0x9c, 0xfa, 0xc1, 0x38, 0xa3, + 0x1b, 0x03, 0xef, 0x45, 0xe4, 0x65, 0x2e, 0xc0, 0xfc, 0x90, 0xaa, 0xc7, 0x65, 0xe5, 0xcf, 0x29, + 0x48, 0x37, 0xa8, 0xa7, 0x7f, 0x0e, 0x10, 0xfb, 0xb2, 0xf2, 0xff, 0x84, 0x2a, 0x06, 0xbe, 0x43, + 0x18, 0xf7, 0x2f, 0x82, 0xea, 0x65, 0xe2, 0x19, 0x62, 0xdf, 0x32, 0xce, 0xc8, 0xd0, 0x47, 0x9d, + 0x95, 0x61, 0xf4, 0xfd, 0xd3, 0x9f, 0xc3, 0xb4, 0x7a, 0xfb, 0xcc, 0x64, 0xcf, 0x1e, 0xc6, 0x58, + 0x3a, 0x1f, 0xa3, 0x62, 0xef, 0x81, 0x3e, 0xe6, 0x01, 0x38, 0xa3, 0xbe, 0x51, 0xb4, 0xf1, 0xd6, + 0x65, 0xd0, 0x2a, 0xf3, 0xd7, 0x1a, 0xcc, 0x25, 0xec, 0xe8, 0x87, 0xc9, 0x01, 0xc7, 0x7b, 0x18, + 0xef, 0x5e, 0xd6, 0x43, 0x95, 0xf1, 0x19, 0x64, 0xfb, 0x5b, 0xf4, 0x76, 0x72, 0x18, 0x05, 0x32, + 0xee, 0x5d, 0x00, 0xa4, 0xc2, 0x77, 0xe1, 0xfa, 0xe8, 0x92, 0xbb, 0x77, 0xce, 0x80, 0xe2, 0x60, + 0x63, 0xf5, 0x12, 0x60, 0x95, 0x16, 0xc3, 0xb5, 0xe1, 0x0d, 0x74, 0x37, 0x39, 0xce, 0x10, 0xd4, + 0x58, 0xbe, 0x30, 0x54, 0x25, 0xdc, 0x86, 0xdc, 0xc0, 0xde, 0xb8, 0x73, 0xde, 0x09, 0x8f, 0x70, + 0x46, 0xf5, 0x62, 0xb8, 0x5e, 0x1e, 0x63, 0xf2, 0xcb, 0xd3, 0x83, 0x25, 0x6d, 0xdd, 0x39, 0x3c, + 0x2e, 0x6a, 0x6f, 0x8e, 0x8b, 0xda, 0x5f, 0xc7, 0x45, 0xed, 0xfb, 0x93, 0x62, 0xea, 0xcd, 0x49, + 0x31, 0xf5, 0xfb, 0x49, 0x31, 0xf5, 0x7c, 0xd3, 0xf3, 0x59, 0xbb, 0xdb, 0xaa, 0x3a, 0xb8, 0x53, + 0xdb, 0xec, 0x85, 0xfe, 0xd0, 0x6e, 0xd1, 0x9a, 0x4a, 0xf4, 0xc0, 0xc1, 0x04, 0xc5, 0xc5, 0xb6, + 0xed, 0x07, 0xb5, 0x0e, 0x76, 0xbb, 0x3b, 0x88, 0x8a, 0x9f, 0x49, 0x6c, 0x3f, 0x44, 0xb4, 0x95, + 0x11, 0xbf, 0x79, 0x56, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x3b, 0x8a, 0x4c, 0xca, 0x0d, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2643,7 +2650,7 @@ func (m *MsgUpdateFeed) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Int + var v cosmossdk_io_math.Int m.LinkPerObservation = &v if err := m.LinkPerObservation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2679,7 +2686,7 @@ func (m *MsgUpdateFeed) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Int + var v cosmossdk_io_math.Int m.LinkPerTransmission = &v if err := m.LinkPerTransmission.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err diff --git a/chain/ocr/types/types.go b/chain/ocr/types/types.go index 0723eb75..22ea1fd2 100644 --- a/chain/ocr/types/types.go +++ b/chain/ocr/types/types.go @@ -84,13 +84,13 @@ func (cfg *FeedConfig) ValidateBasic() error { return errors.Wrap(ErrIncorrectConfig, "feed_id cannot have leading or trailing space characters") } - if len(cfg.ModuleParams.FeedAdmin) > 0 { + if cfg.ModuleParams.FeedAdmin != "" { if _, err := sdk.AccAddressFromBech32(cfg.ModuleParams.FeedAdmin); err != nil { return err } } - if len(cfg.ModuleParams.BillingAdmin) > 0 { + if cfg.ModuleParams.BillingAdmin != "" { if _, err := sdk.AccAddressFromBech32(cfg.ModuleParams.BillingAdmin); err != nil { return err } diff --git a/chain/oracle/bandchain/oracle/types/error.go b/chain/oracle/bandchain/oracle/types/error.go index 1e31330f..df4885ca 100644 --- a/chain/oracle/bandchain/oracle/types/error.go +++ b/chain/oracle/bandchain/oracle/types/error.go @@ -54,6 +54,6 @@ var ( ) // WrapMaxError wraps an error message with additional info of the current and max values. -func WrapMaxError(err error, got, max int) error { - return errors.Wrapf(err, "got: %d, max: %d", got, max) +func WrapMaxError(err error, got, maximum int) error { + return errors.Wrapf(err, "got: %d, maximum: %d", got, maximum) } diff --git a/chain/oracle/types/codec.go b/chain/oracle/types/codec.go index c438ad07..bcdcebe3 100644 --- a/chain/oracle/types/codec.go +++ b/chain/oracle/types/codec.go @@ -7,9 +7,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" + + injcodectypes "github.com/InjectiveLabs/sdk-go/chain/codec/types" ) // RegisterLegacyAminoCodec registers the necessary x/oracle interfaces and concrete types @@ -21,6 +21,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgRequestBandIBCRates{}, "oracle/MsgRequestBandIBCRates", nil) cdc.RegisterConcrete(&MsgRelayProviderPrices{}, "oracle/MsgRelayProviderPrices", nil) cdc.RegisterConcrete(&MsgRelayPythPrices{}, "oracle/MsgRelayPythPrices", nil) + cdc.RegisterConcrete(&MsgRelayStorkPrices{}, "oracle/MsgRelayStorkPrices", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "oracle/MsgUpdateParams", nil) cdc.RegisterConcrete(&GrantBandOraclePrivilegeProposal{}, "oracle/GrantBandOraclePrivilegeProposal", nil) @@ -32,6 +33,9 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&EnableBandIBCProposal{}, "oracle/EnableBandIBCProposal", nil) cdc.RegisterConcrete(&GrantProviderPrivilegeProposal{}, "oracle/GrantProviderPrivilegeProposal", nil) cdc.RegisterConcrete(&RevokeProviderPrivilegeProposal{}, "oracle/RevokeProviderPrivilegeProposal", nil) + cdc.RegisterConcrete(&GrantStorkPublisherPrivilegeProposal{}, "oracle/GrantStorkPublisherPrivilegeProposal", nil) + cdc.RegisterConcrete(&RevokeStorkPublisherPrivilegeProposal{}, "oracle/RevokeStorkPublisherPrivilegeProposal", nil) + cdc.RegisterConcrete(&Params{}, "oracle/Params", nil) } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -42,6 +46,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgRequestBandIBCRates{}, &MsgRelayProviderPrices{}, &MsgRelayPythPrices{}, + &MsgRelayStorkPrices{}, &MsgUpdateParams{}, ) @@ -55,6 +60,8 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &EnableBandIBCProposal{}, &GrantProviderPrivilegeProposal{}, &RevokeProviderPrivilegeProposal{}, + &GrantStorkPublisherPrivilegeProposal{}, + &RevokeStorkPublisherPrivilegeProposal{}, ) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) @@ -71,7 +78,7 @@ var ( // defined at the application level. // ModuleCdc = codec.NewAminoCodec(amino) - ModuleCdc = codec.NewProtoCodec(types.NewInterfaceRegistry()) + ModuleCdc = codec.NewProtoCodec(injcodectypes.NewInterfaceRegistry()) ) func init() { @@ -80,6 +87,7 @@ func init() { amino.Seal() RegisterLegacyAminoCodec(authzcdc.Amino) - RegisterLegacyAminoCodec(govcdc.Amino) - RegisterLegacyAminoCodec(groupcdc.Amino) + // TODO: check + // RegisterLegacyAminoCodec(govcdc.Amino) + // RegisterLegacyAminoCodec(groupcdc.Amino) } diff --git a/chain/oracle/types/errors.go b/chain/oracle/types/errors.go index c9a28f15..87bb055b 100644 --- a/chain/oracle/types/errors.go +++ b/chain/oracle/types/errors.go @@ -44,4 +44,8 @@ var ( ErrInvalidPythExponent = errors.Register(ModuleName, 37, "unauthorized Pyth price relay") ErrInvalidPythPublishTime = errors.Register(ModuleName, 38, "unauthorized Pyth price relay") ErrEmptyPriceAttestations = errors.Register(ModuleName, 39, "empty price attestations") + ErrBadStorkMessageTimestamp = errors.Register(ModuleName, 40, "bad Stork message timestamp") + ErrEmptyStorkSender = errors.Register(ModuleName, 41, "sender stork is empty") + ErrInvalidStorkSignature = errors.Register(ModuleName, 42, "invalid stork signature") + ErrStorkAssetIdNotUnique = errors.Register(ModuleName, 43, "stork asset id not unique") ) diff --git a/chain/oracle/types/events.pb.go b/chain/oracle/types/events.pb.go index d8b8118e..7aeda9c2 100644 --- a/chain/oracle/types/events.pb.go +++ b/chain/oracle/types/events.pb.go @@ -4,9 +4,9 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" 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" @@ -26,9 +26,9 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type SetChainlinkPriceEvent struct { - FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` - Answer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=answer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"answer"` - Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + 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"` + Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (m *SetChainlinkPriceEvent) Reset() { *m = SetChainlinkPriceEvent{} } @@ -80,11 +80,11 @@ func (m *SetChainlinkPriceEvent) GetTimestamp() uint64 { // Event type upon set ref 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"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - ResolveTime uint64 `protobuf:"varint,4,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` - RequestId uint64 `protobuf:"varint,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + Relayer string `protobuf:"bytes,1,opt,name=relayer,proto3" json:"relayer,omitempty"` + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + ResolveTime uint64 `protobuf:"varint,4,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` + RequestId uint64 `protobuf:"varint,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` } func (m *SetBandPriceEvent) Reset() { *m = SetBandPriceEvent{} } @@ -149,12 +149,12 @@ func (m *SetBandPriceEvent) GetRequestId() uint64 { } 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"` - Prices []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,rep,name=prices,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"prices"` - ResolveTime uint64 `protobuf:"varint,4,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` - RequestId uint64 `protobuf:"varint,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` - ClientId int64 `protobuf:"varint,6,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` + Relayer string `protobuf:"bytes,1,opt,name=relayer,proto3" json:"relayer,omitempty"` + Symbols []string `protobuf:"bytes,2,rep,name=symbols,proto3" json:"symbols,omitempty"` + Prices []cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,rep,name=prices,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"prices"` + ResolveTime uint64 `protobuf:"varint,4,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` + RequestId uint64 `protobuf:"varint,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + ClientId int64 `protobuf:"varint,6,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` } func (m *SetBandIBCPriceEvent) Reset() { *m = SetBandIBCPriceEvent{} } @@ -378,7 +378,7 @@ type SetPriceFeedPriceEvent struct { Base string `protobuf:"bytes,2,opt,name=base,proto3" json:"base,omitempty"` Quote string `protobuf:"bytes,3,opt,name=quote,proto3" json:"quote,omitempty"` // price defines the price of the oracle base and quote - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` } func (m *SetPriceFeedPriceEvent) Reset() { *m = SetPriceFeedPriceEvent{} } @@ -436,10 +436,10 @@ func (m *SetPriceFeedPriceEvent) GetQuote() string { } type SetProviderPriceEvent struct { - Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` - Relayer string `protobuf:"bytes,2,opt,name=relayer,proto3" json:"relayer,omitempty"` - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` + Relayer string `protobuf:"bytes,2,opt,name=relayer,proto3" json:"relayer,omitempty"` + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` } func (m *SetProviderPriceEvent) Reset() { *m = SetProviderPriceEvent{} } @@ -497,9 +497,9 @@ func (m *SetProviderPriceEvent) GetSymbol() string { } type SetCoinbasePriceEvent struct { - Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (m *SetCoinbasePriceEvent) Reset() { *m = SetCoinbasePriceEvent{} } @@ -549,6 +549,50 @@ func (m *SetCoinbasePriceEvent) GetTimestamp() uint64 { return 0 } +type EventSetStorkPrices struct { + Prices []*StorkPriceState `protobuf:"bytes,1,rep,name=prices,proto3" json:"prices,omitempty"` +} + +func (m *EventSetStorkPrices) Reset() { *m = EventSetStorkPrices{} } +func (m *EventSetStorkPrices) String() string { return proto.CompactTextString(m) } +func (*EventSetStorkPrices) ProtoMessage() {} +func (*EventSetStorkPrices) Descriptor() ([]byte, []int) { + return fileDescriptor_c42b07097291dfa0, []int{9} +} +func (m *EventSetStorkPrices) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSetStorkPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSetStorkPrices.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *EventSetStorkPrices) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSetStorkPrices.Merge(m, src) +} +func (m *EventSetStorkPrices) XXX_Size() int { + return m.Size() +} +func (m *EventSetStorkPrices) XXX_DiscardUnknown() { + xxx_messageInfo_EventSetStorkPrices.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSetStorkPrices proto.InternalMessageInfo + +func (m *EventSetStorkPrices) GetPrices() []*StorkPriceState { + if m != nil { + return m.Prices + } + return nil +} + type EventSetPythPrices struct { Prices []*PythPriceState `protobuf:"bytes,1,rep,name=prices,proto3" json:"prices,omitempty"` } @@ -557,7 +601,7 @@ func (m *EventSetPythPrices) Reset() { *m = EventSetPythPrices{} } func (m *EventSetPythPrices) String() string { return proto.CompactTextString(m) } func (*EventSetPythPrices) ProtoMessage() {} func (*EventSetPythPrices) Descriptor() ([]byte, []int) { - return fileDescriptor_c42b07097291dfa0, []int{9} + return fileDescriptor_c42b07097291dfa0, []int{10} } func (m *EventSetPythPrices) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -603,6 +647,7 @@ func init() { proto.RegisterType((*SetPriceFeedPriceEvent)(nil), "injective.oracle.v1beta1.SetPriceFeedPriceEvent") proto.RegisterType((*SetProviderPriceEvent)(nil), "injective.oracle.v1beta1.SetProviderPriceEvent") proto.RegisterType((*SetCoinbasePriceEvent)(nil), "injective.oracle.v1beta1.SetCoinbasePriceEvent") + proto.RegisterType((*EventSetStorkPrices)(nil), "injective.oracle.v1beta1.EventSetStorkPrices") proto.RegisterType((*EventSetPythPrices)(nil), "injective.oracle.v1beta1.EventSetPythPrices") } @@ -611,49 +656,51 @@ func init() { } var fileDescriptor_c42b07097291dfa0 = []byte{ - // 664 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xbd, 0x6e, 0xdb, 0x48, - 0x10, 0xd6, 0x4a, 0xb2, 0x6c, 0xad, 0xaf, 0x39, 0x42, 0xe7, 0x23, 0xec, 0x3b, 0x5a, 0x11, 0x90, - 0x40, 0x8d, 0x49, 0x38, 0xe9, 0x52, 0x25, 0xf2, 0x0f, 0x20, 0xc0, 0x85, 0x41, 0x19, 0x29, 0xd2, - 0x18, 0xd4, 0x72, 0x6c, 0x6f, 0x44, 0x72, 0xe5, 0xdd, 0xa5, 0x02, 0xbd, 0x45, 0x80, 0x14, 0xe9, - 0xd3, 0xe6, 0x45, 0xdc, 0x04, 0x70, 0x19, 0xa4, 0x30, 0x02, 0xfb, 0x09, 0xf2, 0x06, 0xc1, 0xfe, - 0x48, 0x62, 0x04, 0x2b, 0xb0, 0xa1, 0x8a, 0x9c, 0xd9, 0x99, 0x6f, 0xbe, 0x6f, 0x77, 0x66, 0xf0, - 0x53, 0x9a, 0xbd, 0x03, 0x22, 0xe9, 0x08, 0x02, 0xc6, 0x23, 0x92, 0x40, 0x30, 0xda, 0xed, 0x83, - 0x8c, 0x76, 0x03, 0x18, 0x41, 0x26, 0x85, 0x3f, 0xe4, 0x4c, 0x32, 0xc7, 0x9d, 0x86, 0xf9, 0x26, - 0xcc, 0xb7, 0x61, 0x9b, 0x8d, 0x73, 0x76, 0xce, 0x74, 0x50, 0xa0, 0xfe, 0x4c, 0xfc, 0xa6, 0x47, - 0x98, 0x48, 0x99, 0x08, 0xfa, 0x91, 0x98, 0x21, 0x12, 0x46, 0x33, 0x7b, 0xbe, 0xb8, 0xac, 0x85, - 0xd7, 0x61, 0xad, 0x4f, 0x08, 0x6f, 0xf4, 0x40, 0xee, 0x5d, 0x44, 0x34, 0x4b, 0x68, 0x36, 0x38, - 0xe6, 0x94, 0xc0, 0x81, 0x22, 0xe6, 0xfc, 0x8b, 0x57, 0xcf, 0x00, 0xe2, 0x53, 0x1a, 0xbb, 0xa8, - 0x89, 0xda, 0xf5, 0xb0, 0xa6, 0xcc, 0x6e, 0xec, 0x1c, 0xe2, 0x5a, 0x94, 0x89, 0xf7, 0xc0, 0xdd, - 0xb2, 0xf2, 0x77, 0xfc, 0xab, 0x9b, 0xed, 0xd2, 0xf7, 0x9b, 0xed, 0x67, 0xe7, 0x54, 0x5e, 0xe4, - 0x7d, 0x9f, 0xb0, 0x34, 0xb0, 0xec, 0xcc, 0x67, 0x47, 0xc4, 0x83, 0x40, 0x8e, 0x87, 0x20, 0xfc, - 0x7d, 0x20, 0xa1, 0xcd, 0x76, 0xfe, 0xc3, 0x75, 0x49, 0x53, 0x10, 0x32, 0x4a, 0x87, 0x6e, 0xa5, - 0x89, 0xda, 0xd5, 0x70, 0xe6, 0x68, 0x7d, 0x45, 0xf8, 0xef, 0x1e, 0xc8, 0x4e, 0x94, 0xc5, 0x05, - 0x52, 0x2e, 0x5e, 0xe5, 0x90, 0x44, 0x63, 0xe0, 0x96, 0xd4, 0xc4, 0x74, 0x36, 0x70, 0x4d, 0x8c, - 0xd3, 0x3e, 0x4b, 0x0c, 0xab, 0xd0, 0x5a, 0xce, 0x3e, 0x5e, 0x19, 0xaa, 0x7c, 0x5d, 0xe1, 0xf1, - 0x64, 0x4d, 0xb2, 0xf3, 0x04, 0xff, 0xc5, 0x41, 0xb0, 0x64, 0x04, 0xa7, 0x8a, 0xa2, 0x5b, 0xd5, - 0x74, 0xd7, 0xad, 0xef, 0x84, 0xa6, 0xe0, 0xfc, 0x8f, 0x31, 0x87, 0xcb, 0x1c, 0x84, 0x54, 0x57, - 0xb6, 0x62, 0xf4, 0x58, 0x4f, 0x37, 0x6e, 0xfd, 0x44, 0xb8, 0x61, 0xf5, 0x74, 0x3b, 0x7b, 0x0f, - 0x92, 0xe4, 0xe2, 0x55, 0x23, 0x42, 0xb8, 0xe5, 0x66, 0x45, 0x9d, 0x58, 0x53, 0x3d, 0x81, 0xe6, - 0x25, 0xdc, 0x8a, 0x3a, 0x78, 0xfc, 0x13, 0x98, 0xec, 0xe5, 0x65, 0x39, 0x5b, 0xb8, 0x4e, 0x12, - 0x0a, 0x99, 0x3e, 0xad, 0x35, 0x51, 0xbb, 0x12, 0xae, 0x19, 0x47, 0x37, 0x6e, 0x9d, 0xe0, 0x0d, - 0xad, 0xd1, 0x8a, 0x7e, 0x4d, 0x06, 0xbd, 0x9c, 0x10, 0x10, 0x42, 0xa1, 0x46, 0x64, 0x70, 0xca, - 0x41, 0xe4, 0x89, 0xb4, 0xba, 0xeb, 0x11, 0x19, 0x84, 0xda, 0xf1, 0x3b, 0x6a, 0x79, 0x0e, 0xf5, - 0x18, 0x37, 0xe6, 0x50, 0x0f, 0x38, 0x67, 0x5c, 0x25, 0x29, 0x4c, 0x50, 0x86, 0x85, 0x5c, 0x8b, - 0x0a, 0x87, 0x8b, 0x11, 0x5f, 0xe2, 0xad, 0x22, 0x62, 0x08, 0x62, 0xc8, 0x32, 0xa1, 0xf5, 0xb3, - 0x7c, 0x8e, 0x0d, 0x9a, 0xcb, 0xfd, 0x6c, 0x26, 0x48, 0x3f, 0xe8, 0x21, 0xc0, 0xc3, 0x9a, 0xd5, - 0xc1, 0x55, 0x35, 0xb8, 0xb6, 0x55, 0xf5, 0xbf, 0xd3, 0xc0, 0x2b, 0x97, 0x39, 0x93, 0xb6, 0x51, - 0x43, 0x63, 0xcc, 0xda, 0xb7, 0xba, 0x44, 0xfb, 0xb6, 0xbe, 0x20, 0xfc, 0x8f, 0x26, 0xc9, 0x46, - 0x34, 0x06, 0x5e, 0xe0, 0xb8, 0x89, 0xd7, 0x86, 0xd6, 0x3b, 0xb9, 0xb3, 0x89, 0x5d, 0xe4, 0x5f, - 0x5e, 0x34, 0x6c, 0x95, 0xfb, 0x87, 0x6d, 0x29, 0xb6, 0x1f, 0x0d, 0xdb, 0x3d, 0x46, 0x33, 0x75, - 0x33, 0x05, 0xb6, 0xb3, 0xba, 0xe8, 0xfe, 0xba, 0xe5, 0x65, 0x86, 0xfc, 0xcf, 0x0b, 0xe9, 0x0d, - 0x76, 0x34, 0x09, 0x75, 0x8f, 0x63, 0x79, 0x71, 0x6c, 0x26, 0xe8, 0xd5, 0x74, 0x12, 0x51, 0xb3, - 0xd2, 0x5e, 0x7f, 0xde, 0xf6, 0x17, 0x2d, 0x72, 0x7f, 0x9a, 0xd5, 0x93, 0x91, 0x84, 0xc9, 0x0c, - 0x76, 0xce, 0xae, 0x6e, 0x3d, 0x74, 0x7d, 0xeb, 0xa1, 0x1f, 0xb7, 0x1e, 0xfa, 0x70, 0xe7, 0x95, - 0xae, 0xef, 0xbc, 0xd2, 0xb7, 0x3b, 0xaf, 0xf4, 0xf6, 0xa8, 0x40, 0xbf, 0x3b, 0x41, 0x3d, 0x8a, - 0xfa, 0x22, 0x98, 0xd6, 0xd8, 0x21, 0x8c, 0x43, 0xd1, 0x54, 0x8b, 0x3c, 0x48, 0x59, 0x9c, 0x27, - 0x20, 0x26, 0x9b, 0x5f, 0x0b, 0xed, 0xd7, 0xf4, 0xc6, 0x7f, 0xf1, 0x2b, 0x00, 0x00, 0xff, 0xff, - 0x81, 0xc7, 0x44, 0x17, 0x91, 0x06, 0x00, 0x00, + // 689 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x3f, 0x6f, 0x13, 0x4b, + 0x10, 0xf7, 0xda, 0x8e, 0x13, 0x6f, 0x5e, 0xf3, 0xee, 0xf9, 0x85, 0x53, 0x02, 0x8e, 0x31, 0x42, + 0x32, 0x05, 0x77, 0x0a, 0x54, 0x40, 0x43, 0x1c, 0x82, 0x64, 0x29, 0x45, 0x74, 0x8e, 0x10, 0xa2, + 0x89, 0xd6, 0x7b, 0x13, 0x7b, 0xf1, 0xdd, 0xad, 0xb3, 0xbb, 0x36, 0xf2, 0x37, 0xa0, 0xa0, 0xa0, + 0xa3, 0xe5, 0xb3, 0x50, 0xa5, 0x4c, 0x89, 0x28, 0x22, 0x94, 0x48, 0x7c, 0x0e, 0xb4, 0x7b, 0x6b, + 0xfb, 0x62, 0xc5, 0xc8, 0x11, 0xdd, 0xcd, 0xbf, 0xdf, 0xfc, 0x66, 0x6e, 0x66, 0x16, 0x3f, 0x64, + 0xc9, 0x7b, 0xa0, 0x8a, 0x8d, 0xc0, 0xe7, 0x82, 0xd0, 0x08, 0xfc, 0xd1, 0x4e, 0x07, 0x14, 0xd9, + 0xf1, 0x61, 0x04, 0x89, 0x92, 0xde, 0x40, 0x70, 0xc5, 0x1d, 0x77, 0xea, 0xe6, 0xa5, 0x6e, 0x9e, + 0x75, 0xdb, 0xac, 0x74, 0x79, 0x97, 0x1b, 0x27, 0x5f, 0x7f, 0xa5, 0xfe, 0x9b, 0x55, 0xca, 0x65, + 0xcc, 0xa5, 0xdf, 0x21, 0x72, 0x86, 0x48, 0x39, 0x4b, 0xac, 0x7d, 0x71, 0x5a, 0x0b, 0x6f, 0xdc, + 0xea, 0x9f, 0x10, 0xde, 0x68, 0x83, 0xda, 0xeb, 0x11, 0x96, 0x44, 0x2c, 0xe9, 0x1f, 0x0a, 0x46, + 0x61, 0x5f, 0x13, 0x73, 0xee, 0xe0, 0xd5, 0x13, 0x80, 0xf0, 0x98, 0x85, 0x2e, 0xaa, 0xa1, 0x46, + 0x39, 0x28, 0x69, 0xb1, 0x15, 0x3a, 0x2f, 0x70, 0x89, 0x24, 0xf2, 0x03, 0x08, 0x37, 0xaf, 0xf5, + 0xcd, 0x07, 0x67, 0x17, 0xdb, 0xb9, 0x1f, 0x17, 0xdb, 0x5b, 0x29, 0x25, 0x19, 0xf6, 0x3d, 0xc6, + 0xfd, 0x98, 0xa8, 0x9e, 0x77, 0x00, 0x5d, 0x42, 0xc7, 0xaf, 0x80, 0x06, 0x36, 0xc4, 0xb9, 0x8b, + 0xcb, 0x8a, 0xc5, 0x20, 0x15, 0x89, 0x07, 0x6e, 0xa1, 0x86, 0x1a, 0xc5, 0x60, 0xa6, 0xa8, 0x7f, + 0x43, 0xf8, 0xdf, 0x36, 0xa8, 0x26, 0x49, 0xc2, 0x0c, 0x13, 0x17, 0xaf, 0x0a, 0x88, 0xc8, 0x18, + 0x84, 0x65, 0x32, 0x11, 0x9d, 0x0d, 0x5c, 0x92, 0xe3, 0xb8, 0xc3, 0xa3, 0x94, 0x4a, 0x60, 0x25, + 0xe7, 0x19, 0x5e, 0x19, 0xe8, 0x78, 0x93, 0x61, 0x49, 0x86, 0x69, 0x84, 0x73, 0x1f, 0xff, 0x23, + 0x40, 0xf2, 0x68, 0x04, 0xc7, 0x9a, 0x97, 0x5b, 0x34, 0x1c, 0xd7, 0xad, 0xee, 0x88, 0xc5, 0xe0, + 0xdc, 0xc3, 0x58, 0xc0, 0xe9, 0x10, 0xa4, 0xd2, 0xcd, 0x59, 0x49, 0x8b, 0xb0, 0x9a, 0x56, 0x58, + 0xff, 0x85, 0x70, 0xc5, 0x16, 0xd1, 0x6a, 0xee, 0x2d, 0x55, 0x87, 0x8b, 0x57, 0x53, 0xe6, 0xd2, + 0xcd, 0xd7, 0x0a, 0xda, 0x62, 0x45, 0xdd, 0x6c, 0xc3, 0x4b, 0xba, 0x05, 0x6d, 0x58, 0xb2, 0xd9, + 0x69, 0xc8, 0xdf, 0xd7, 0xe2, 0x6c, 0xe1, 0x32, 0x8d, 0x18, 0x24, 0xc6, 0x5a, 0xaa, 0xa1, 0x46, + 0x21, 0x58, 0x4b, 0x15, 0xad, 0xb0, 0x7e, 0x84, 0x37, 0x4c, 0x61, 0xb6, 0xd2, 0x5d, 0xda, 0x6f, + 0x0f, 0x29, 0x05, 0x29, 0x35, 0x2a, 0xa1, 0xfd, 0x63, 0x01, 0x72, 0x18, 0x29, 0x5b, 0x6c, 0x99, + 0xd0, 0x7e, 0x60, 0x14, 0xd7, 0x51, 0xf3, 0x73, 0xa8, 0x87, 0xb8, 0x32, 0x87, 0xba, 0x2f, 0x04, + 0x17, 0x3a, 0x48, 0x63, 0x82, 0x16, 0x2c, 0xe4, 0x1a, 0xc9, 0x18, 0x17, 0x23, 0x3e, 0xc7, 0x5b, + 0x59, 0xc4, 0x00, 0xe4, 0x80, 0x27, 0xd2, 0xd4, 0xcf, 0x87, 0x73, 0x6c, 0xd0, 0x5c, 0xec, 0x97, + 0x74, 0x41, 0xcc, 0x5f, 0x7c, 0x0d, 0xb0, 0xdc, 0x58, 0x3a, 0xb8, 0xa8, 0xf7, 0xd2, 0x0e, 0xa5, + 0xf9, 0x76, 0x2a, 0x78, 0xe5, 0x74, 0xc8, 0x95, 0x1d, 0xc9, 0x20, 0x15, 0x66, 0x83, 0x5a, 0xbc, + 0xed, 0xa0, 0xd6, 0xbf, 0x22, 0xfc, 0xbf, 0x61, 0xc6, 0x47, 0x2c, 0x04, 0x91, 0x21, 0xb6, 0x89, + 0xd7, 0x06, 0x56, 0x3b, 0x69, 0xd4, 0x44, 0xce, 0x92, 0xce, 0x2f, 0xda, 0xa5, 0xc2, 0xcd, 0xbb, + 0x74, 0x7b, 0x8a, 0x1f, 0x53, 0x8a, 0x7b, 0x9c, 0x25, 0xba, 0x07, 0x19, 0x8a, 0xb3, 0x64, 0xe8, + 0xe6, 0x64, 0xf9, 0x5b, 0x2f, 0xee, 0x9f, 0x2f, 0xcb, 0x5b, 0xfc, 0x9f, 0xc9, 0xdc, 0x06, 0xd5, + 0x56, 0x5c, 0xa4, 0x87, 0x4e, 0x3a, 0xbb, 0xd3, 0xf5, 0x42, 0xb5, 0x42, 0x63, 0xfd, 0xc9, 0x23, + 0x6f, 0xd1, 0x1d, 0xf6, 0x66, 0x61, 0x6d, 0x45, 0x14, 0x4c, 0x96, 0xac, 0xfe, 0x06, 0x3b, 0x13, + 0xe4, 0xc3, 0xb1, 0xea, 0x59, 0xe0, 0x97, 0x73, 0xc0, 0x8d, 0xc5, 0xc0, 0xd3, 0xa8, 0x6b, 0xb8, + 0xcd, 0x93, 0xb3, 0xcb, 0x2a, 0x3a, 0xbf, 0xac, 0xa2, 0x9f, 0x97, 0x55, 0xf4, 0xf9, 0xaa, 0x9a, + 0x3b, 0xbf, 0xaa, 0xe6, 0xbe, 0x5f, 0x55, 0x73, 0xef, 0x0e, 0xba, 0x4c, 0xf5, 0x86, 0x1d, 0x8f, + 0xf2, 0xd8, 0x6f, 0x4d, 0x50, 0x0f, 0x48, 0x47, 0xfa, 0xd3, 0x1c, 0x8f, 0x29, 0x17, 0x90, 0x15, + 0xf5, 0x81, 0xf7, 0x63, 0x1e, 0x0e, 0x23, 0x90, 0x93, 0x17, 0x41, 0x8d, 0x07, 0x20, 0x3b, 0x25, + 0xf3, 0x12, 0x3c, 0xfd, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x2b, 0x3f, 0x45, 0xd4, 0xa9, 0x06, 0x00, + 0x00, } func (m *SetChainlinkPriceEvent) Marshal() (dAtA []byte, err error) { @@ -1077,6 +1124,43 @@ func (m *SetCoinbasePriceEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventSetStorkPrices) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *EventSetStorkPrices) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSetStorkPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Prices) > 0 { + for iNdEx := len(m.Prices) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Prices[iNdEx].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 *EventSetPythPrices) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1310,6 +1394,21 @@ func (m *SetCoinbasePriceEvent) Size() (n int) { return n } +func (m *EventSetStorkPrices) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Prices) > 0 { + for _, e := range m.Prices { + l = e.Size() + n += 1 + l + sovEvents(uint64(l)) + } + } + return n +} + func (m *EventSetPythPrices) Size() (n int) { if m == nil { return 0 @@ -1775,7 +1874,7 @@ func (m *SetBandIBCPriceEvent) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Prices = append(m.Prices, v) if err := m.Prices[len(m.Prices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2625,6 +2724,90 @@ func (m *SetCoinbasePriceEvent) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventSetStorkPrices) Unmarshal(dAtA []byte) 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: EventSetStorkPrices: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSetStorkPrices: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prices", 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 + } + m.Prices = append(m.Prices, &StorkPriceState{}) + if err := m.Prices[len(m.Prices)-1].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 (m *EventSetPythPrices) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/oracle/types/expected_keepers.go b/chain/oracle/types/expected_keepers.go index 7cff08ad..dd6e7ed2 100644 --- a/chain/oracle/types/expected_keepers.go +++ b/chain/oracle/types/expected_keepers.go @@ -1,21 +1,23 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" - channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types" + capabilitytypes "github.com/cosmos/ibc-go/modules/capability/types" + clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" ocrtypes "github.com/InjectiveLabs/sdk-go/chain/ocr/types" ) // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error } // ChannelKeeper defines the expected IBC channel keeper diff --git a/chain/oracle/types/genesis.pb.go b/chain/oracle/types/genesis.pb.go index 04cb607c..537005eb 100644 --- a/chain/oracle/types/genesis.pb.go +++ b/chain/oracle/types/genesis.pb.go @@ -41,6 +41,8 @@ type GenesisState struct { 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"` + StorkPriceStates []*StorkPriceState `protobuf:"bytes,16,rep,name=stork_price_states,json=storkPriceStates,proto3" json:"stork_price_states,omitempty"` + StorkPublishers []string `protobuf:"bytes,17,rep,name=stork_publishers,json=storkPublishers,proto3" json:"stork_publishers,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -181,6 +183,20 @@ func (m *GenesisState) GetPythPriceStates() []*PythPriceState { return nil } +func (m *GenesisState) GetStorkPriceStates() []*StorkPriceState { + if m != nil { + return m.StorkPriceStates + } + return nil +} + +func (m *GenesisState) GetStorkPublishers() []string { + if m != nil { + return m.StorkPublishers + } + return nil +} + type CalldataRecord struct { ClientId uint64 `protobuf:"varint,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` Calldata []byte `protobuf:"bytes,2,opt,name=calldata,proto3" json:"calldata,omitempty"` @@ -243,47 +259,50 @@ func init() { } var fileDescriptor_f7e14cf80151b4d2 = []byte{ - // 639 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xcf, 0x6e, 0xd3, 0x4e, - 0x10, 0xc7, 0xe3, 0xb6, 0xbf, 0xfe, 0x9a, 0x6d, 0xda, 0xc0, 0xd2, 0x16, 0x13, 0x24, 0x63, 0x15, - 0xd1, 0x5a, 0x82, 0xda, 0x6a, 0xb9, 0x20, 0x0e, 0x1c, 0x12, 0x09, 0x64, 0xa9, 0x12, 0x95, 0x0b, - 0x17, 0x38, 0x98, 0xf5, 0x7a, 0x9b, 0x2c, 0x38, 0x5e, 0xb3, 0xbb, 0x89, 0x94, 0xb7, 0xe0, 0xb1, - 0x7a, 0xec, 0x91, 0x13, 0xaa, 0x92, 0x17, 0x41, 0x5e, 0xff, 0x89, 0xdd, 0x2a, 0x89, 0xb8, 0x79, - 0xc6, 0x33, 0x9f, 0xf9, 0xee, 0xcc, 0xec, 0x82, 0x23, 0x1a, 0x7f, 0x27, 0x58, 0xd2, 0x31, 0x71, - 0x18, 0x47, 0x38, 0x22, 0xce, 0xf8, 0x34, 0x20, 0x12, 0x9d, 0x3a, 0x7d, 0x12, 0x13, 0x41, 0x85, - 0x9d, 0x70, 0x26, 0x19, 0xd4, 0xcb, 0x38, 0x3b, 0x8b, 0xb3, 0xf3, 0xb8, 0xce, 0x8b, 0x85, 0x84, - 0x3c, 0x50, 0x01, 0x3a, 0x7b, 0x7d, 0xd6, 0x67, 0xea, 0xd3, 0x49, 0xbf, 0x32, 0xef, 0xe1, 0x6d, - 0x13, 0xb4, 0x3e, 0x64, 0x85, 0x2e, 0x25, 0x92, 0x04, 0xbe, 0x03, 0x9b, 0x09, 0xe2, 0x68, 0x28, - 0x74, 0xcd, 0xd4, 0xac, 0xed, 0x33, 0xd3, 0x5e, 0x54, 0xd8, 0xbe, 0x50, 0x71, 0xdd, 0x8d, 0xeb, - 0x3f, 0xcf, 0x1a, 0x5e, 0x9e, 0x05, 0x9f, 0x83, 0x9d, 0x00, 0xc5, 0xa1, 0xcf, 0x49, 0x84, 0x26, - 0x84, 0x0b, 0x7d, 0xcd, 0x5c, 0xb7, 0x9a, 0x5e, 0x2b, 0x75, 0x7a, 0xb9, 0x0f, 0x7e, 0x02, 0x0f, - 0x55, 0x50, 0xc2, 0x29, 0x26, 0xbe, 0x48, 0x0b, 0x0b, 0x7d, 0xdd, 0x5c, 0xb7, 0xb6, 0xcf, 0xac, - 0xc5, 0xf5, 0xba, 0x28, 0x0e, 0x2f, 0xd2, 0x0c, 0xa5, 0xd4, 0x6b, 0x07, 0x35, 0x5b, 0x40, 0x1f, - 0x3c, 0xce, 0x80, 0x57, 0x84, 0xdc, 0x61, 0x6f, 0xac, 0x62, 0x2b, 0xce, 0x7b, 0x42, 0xc2, 0x8c, - 0xbd, 0x97, 0x14, 0x76, 0xb5, 0xc0, 0x37, 0xb0, 0x8f, 0x19, 0x8d, 0x03, 0x24, 0x48, 0x1d, 0xff, - 0x9f, 0xc2, 0xbf, 0x5a, 0x8c, 0xef, 0xe5, 0x69, 0x15, 0xf9, 0x8f, 0xf0, 0x3d, 0x9f, 0x80, 0x5f, - 0xc1, 0xbe, 0x6a, 0x0c, 0x0d, 0x70, 0xbd, 0xc2, 0xe6, 0x3f, 0x36, 0x07, 0xa6, 0x18, 0x37, 0xc0, - 0x55, 0x78, 0x08, 0xf4, 0x12, 0x9e, 0x65, 0xfb, 0x9c, 0xfc, 0x1c, 0x11, 0x21, 0x85, 0xfe, 0xbf, - 0xe2, 0xbf, 0x5c, 0xce, 0xff, 0xa8, 0x5c, 0x5e, 0x96, 0xe3, 0xed, 0xe7, 0x25, 0x6a, 0x5e, 0x01, - 0x3f, 0x83, 0xf6, 0xfc, 0x08, 0xd9, 0x26, 0x6d, 0xa9, 0x4d, 0x3a, 0x5e, 0x0e, 0x77, 0xbb, 0xbd, - 0xda, 0x42, 0xed, 0x14, 0x27, 0xc8, 0xf6, 0xea, 0x0d, 0x78, 0x52, 0x62, 0xa3, 0xf4, 0x38, 0xd2, - 0xc7, 0x11, 0x25, 0xb1, 0xf4, 0x69, 0xa8, 0x37, 0x4d, 0xcd, 0xda, 0x28, 0x05, 0x9d, 0xab, 0xdf, - 0x3d, 0xf5, 0xd7, 0x0d, 0xe1, 0x25, 0x78, 0x80, 0x51, 0x14, 0x85, 0x48, 0x22, 0x9f, 0x13, 0xcc, - 0x78, 0x28, 0x74, 0xb0, 0xaa, 0x9d, 0xbd, 0x3c, 0xc3, 0x53, 0x09, 0x5e, 0x1b, 0xd7, 0x6c, 0x01, - 0xdf, 0x82, 0xce, 0x5d, 0x39, 0x79, 0x2f, 0x53, 0x3d, 0xdb, 0x4a, 0xcf, 0x41, 0x4d, 0x4f, 0xde, - 0x20, 0x37, 0x84, 0x18, 0x1c, 0xe0, 0x01, 0xa2, 0x71, 0x44, 0xe3, 0x1f, 0xf5, 0x29, 0xb7, 0x94, - 0xac, 0x93, 0x25, 0xb2, 0x8a, 0xbc, 0xca, 0xa8, 0xf7, 0xf0, 0x7d, 0x67, 0xba, 0xab, 0xfa, 0x80, - 0x0a, 0xc9, 0x38, 0xc5, 0x28, 0xca, 0xab, 0x14, 0xa7, 0xdf, 0x51, 0x65, 0x8e, 0x56, 0xdc, 0x86, - 0xfc, 0xa8, 0xde, 0xc1, 0x9c, 0x53, 0xf5, 0xc3, 0x0b, 0xd0, 0x4e, 0x38, 0x1b, 0xd3, 0x90, 0xf0, - 0x42, 0xff, 0xae, 0x02, 0x1f, 0x2f, 0x03, 0x67, 0x09, 0x99, 0xf2, 0xdd, 0xa4, 0x6a, 0xaa, 0x67, - 0x21, 0x99, 0xc8, 0x41, 0xbd, 0x27, 0xed, 0x95, 0x57, 0x77, 0x22, 0x07, 0xd5, 0x67, 0x21, 0xa9, - 0xd9, 0xe2, 0xd0, 0x05, 0xbb, 0xf5, 0x69, 0xc2, 0xa7, 0xa0, 0x39, 0xdf, 0x1d, 0x4d, 0xcd, 0x6a, - 0x0b, 0x17, 0xeb, 0xd2, 0x01, 0x5b, 0xc5, 0xb0, 0xf5, 0x35, 0x53, 0xb3, 0x5a, 0x5e, 0x69, 0x77, - 0xaf, 0xae, 0xa7, 0x86, 0x76, 0x33, 0x35, 0xb4, 0xdb, 0xa9, 0xa1, 0xfd, 0x9a, 0x19, 0x8d, 0x9b, - 0x99, 0xd1, 0xf8, 0x3d, 0x33, 0x1a, 0x5f, 0xce, 0xfb, 0x54, 0x0e, 0x46, 0x81, 0x8d, 0xd9, 0xd0, - 0x71, 0x0b, 0xa5, 0xe7, 0x28, 0x10, 0x4e, 0xa9, 0xfb, 0x04, 0x33, 0x4e, 0xaa, 0x66, 0x3a, 0x36, - 0x67, 0xc8, 0xc2, 0x51, 0x44, 0x44, 0xf1, 0x74, 0xcb, 0x49, 0x42, 0x44, 0xb0, 0xa9, 0x1e, 0xe7, - 0xd7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x53, 0x49, 0x4f, 0x18, 0x1d, 0x06, 0x00, 0x00, + // 681 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0xcf, 0x4f, 0x13, 0x41, + 0x14, 0xc7, 0xbb, 0x80, 0x08, 0x43, 0xa1, 0x65, 0x04, 0x5c, 0x6b, 0x52, 0x1b, 0x8c, 0x50, 0xa2, + 0x74, 0x03, 0x5e, 0x8c, 0x07, 0x0f, 0x6d, 0xa2, 0x69, 0x42, 0x22, 0x59, 0x34, 0x26, 0x7a, 0x58, + 0x67, 0x67, 0x87, 0x76, 0x74, 0xd9, 0x5d, 0x67, 0xa6, 0x24, 0xfd, 0x2f, 0xfc, 0xb3, 0x38, 0x72, + 0xf4, 0x64, 0x0c, 0xf8, 0x87, 0x98, 0xf9, 0xb1, 0xcb, 0x0e, 0xa4, 0x6d, 0xbc, 0xed, 0x7b, 0xfb, + 0xde, 0xe7, 0x7d, 0xdf, 0xdb, 0xb7, 0x33, 0x60, 0x87, 0x26, 0xdf, 0x08, 0x16, 0xf4, 0x9c, 0x78, + 0x29, 0x43, 0x38, 0x26, 0xde, 0xf9, 0x41, 0x48, 0x04, 0x3a, 0xf0, 0x06, 0x24, 0x21, 0x9c, 0xf2, + 0x4e, 0xc6, 0x52, 0x91, 0x42, 0xb7, 0x88, 0xeb, 0xe8, 0xb8, 0x8e, 0x89, 0x6b, 0x3c, 0x9b, 0x48, + 0x30, 0x81, 0x0a, 0xd0, 0xd8, 0x18, 0xa4, 0x83, 0x54, 0x3d, 0x7a, 0xf2, 0x49, 0x7b, 0xb7, 0xff, + 0x02, 0x50, 0x7d, 0xa7, 0x0b, 0x9d, 0x08, 0x24, 0x08, 0x7c, 0x03, 0x16, 0x33, 0xc4, 0xd0, 0x19, + 0x77, 0x9d, 0x96, 0xd3, 0x5e, 0x39, 0x6c, 0x75, 0x26, 0x15, 0xee, 0x1c, 0xab, 0xb8, 0xee, 0xc2, + 0xc5, 0xef, 0x27, 0x15, 0xdf, 0x64, 0xc1, 0xa7, 0x60, 0x35, 0x44, 0x49, 0x14, 0x30, 0x12, 0xa3, + 0x31, 0x61, 0xdc, 0x9d, 0x6b, 0xcd, 0xb7, 0x97, 0xfd, 0xaa, 0x74, 0xfa, 0xc6, 0x07, 0x3f, 0x80, + 0x75, 0x15, 0x94, 0x31, 0x8a, 0x49, 0xc0, 0x65, 0x61, 0xee, 0xce, 0xb7, 0xe6, 0xdb, 0x2b, 0x87, + 0xed, 0xc9, 0xf5, 0xba, 0x28, 0x89, 0x8e, 0x65, 0x86, 0x52, 0xea, 0xd7, 0x42, 0xcb, 0xe6, 0x30, + 0x00, 0x0f, 0x35, 0xf0, 0x94, 0x90, 0x5b, 0xec, 0x85, 0x59, 0x6c, 0xc5, 0x79, 0x4b, 0x48, 0xa4, + 0xd9, 0x1b, 0x59, 0x6e, 0x97, 0x0b, 0x7c, 0x05, 0x9b, 0x38, 0xa5, 0x49, 0x88, 0x38, 0xb1, 0xf1, + 0xf7, 0x14, 0xfe, 0xc5, 0x64, 0x7c, 0xcf, 0xa4, 0x95, 0xe4, 0x3f, 0xc0, 0x77, 0x7c, 0x1c, 0x7e, + 0x01, 0x9b, 0x6a, 0x30, 0x34, 0xc4, 0x76, 0x85, 0xc5, 0xff, 0x1c, 0x0e, 0x94, 0x98, 0x7e, 0x88, + 0xcb, 0xf0, 0x08, 0xb8, 0x05, 0x5c, 0x67, 0x07, 0x8c, 0xfc, 0x18, 0x11, 0x2e, 0xb8, 0x7b, 0x5f, + 0xf1, 0x9f, 0x4f, 0xe7, 0xbf, 0x57, 0x2e, 0x5f, 0xe7, 0xf8, 0x9b, 0xa6, 0x84, 0xe5, 0xe5, 0xf0, + 0x23, 0xa8, 0xdd, 0xb4, 0xa0, 0x37, 0x69, 0x49, 0x6d, 0xd2, 0xee, 0x74, 0x78, 0xbf, 0xdb, 0xb3, + 0x16, 0x6a, 0x35, 0xef, 0x40, 0xef, 0xd5, 0x2b, 0xf0, 0xa8, 0xc0, 0xc6, 0xb2, 0x1d, 0x11, 0xe0, + 0x98, 0x92, 0x44, 0x04, 0x34, 0x72, 0x97, 0x5b, 0x4e, 0x7b, 0xa1, 0x10, 0x74, 0xa4, 0x5e, 0xf7, + 0xd4, 0xdb, 0x7e, 0x04, 0x4f, 0x40, 0x1d, 0xa3, 0x38, 0x8e, 0x90, 0x40, 0x01, 0x23, 0x38, 0x65, + 0x11, 0x77, 0xc1, 0xac, 0x71, 0xf6, 0x4c, 0x86, 0xaf, 0x12, 0xfc, 0x1a, 0xb6, 0x6c, 0x0e, 0x5f, + 0x83, 0xc6, 0x6d, 0x39, 0x66, 0x96, 0x52, 0xcf, 0x8a, 0xd2, 0xb3, 0x65, 0xe9, 0x31, 0x03, 0xea, + 0x47, 0x10, 0x83, 0x2d, 0x3c, 0x44, 0x34, 0x89, 0x69, 0xf2, 0xdd, 0xfe, 0xca, 0x55, 0x25, 0x6b, + 0x7f, 0x8a, 0xac, 0x3c, 0xaf, 0xf4, 0xa9, 0x37, 0xf0, 0x5d, 0xa7, 0xdc, 0x55, 0x77, 0x48, 0xb9, + 0x48, 0x19, 0xc5, 0x28, 0x36, 0x55, 0xf2, 0xee, 0x57, 0x55, 0x99, 0x9d, 0x19, 0x7f, 0x83, 0x69, + 0xd5, 0xdf, 0xba, 0xe1, 0x94, 0xfd, 0xf0, 0x18, 0xd4, 0x32, 0x96, 0x9e, 0xd3, 0x88, 0xb0, 0x5c, + 0xff, 0x9a, 0x02, 0xef, 0x4e, 0x03, 0xeb, 0x04, 0xad, 0x7c, 0x2d, 0x2b, 0x9b, 0xea, 0x58, 0xc8, + 0xc6, 0x62, 0x68, 0xcf, 0xa4, 0x36, 0xf3, 0xd7, 0x1d, 0x8b, 0x61, 0xf9, 0x58, 0xc8, 0x2c, 0x9b, + 0xc3, 0x4f, 0x00, 0x4a, 0xfd, 0xb7, 0x46, 0x5d, 0x57, 0xd8, 0xbd, 0xc9, 0xd8, 0x13, 0x99, 0x53, + 0xe2, 0xd6, 0xb9, 0xed, 0xe0, 0x70, 0x0f, 0xd4, 0x0d, 0x78, 0x14, 0xc6, 0x94, 0x0f, 0xe5, 0x69, + 0xb7, 0xae, 0x4e, 0xbb, 0x9a, 0x8e, 0x2d, 0xdc, 0xdb, 0x7d, 0xb0, 0x66, 0x6f, 0x14, 0x7c, 0x0c, + 0x96, 0x6f, 0xf6, 0xd7, 0x51, 0xfb, 0xb2, 0x84, 0xf3, 0x95, 0x6d, 0x80, 0xa5, 0x7c, 0xe1, 0xdc, + 0xb9, 0x96, 0xd3, 0xae, 0xfa, 0x85, 0xdd, 0x3d, 0xbd, 0xb8, 0x6a, 0x3a, 0x97, 0x57, 0x4d, 0xe7, + 0xcf, 0x55, 0xd3, 0xf9, 0x79, 0xdd, 0xac, 0x5c, 0x5e, 0x37, 0x2b, 0xbf, 0xae, 0x9b, 0x95, 0xcf, + 0x47, 0x03, 0x2a, 0x86, 0xa3, 0xb0, 0x83, 0xd3, 0x33, 0xaf, 0x9f, 0xb7, 0x75, 0x84, 0x42, 0xee, + 0x15, 0x4d, 0xee, 0xe3, 0x94, 0x91, 0xb2, 0x29, 0x57, 0xc7, 0x3b, 0x4b, 0xa3, 0x51, 0x4c, 0x78, + 0x7e, 0x7d, 0x88, 0x71, 0x46, 0x78, 0xb8, 0xa8, 0x2e, 0x88, 0x97, 0xff, 0x02, 0x00, 0x00, 0xff, + 0xff, 0xe6, 0xf9, 0xcd, 0x82, 0xa1, 0x06, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -306,6 +325,33 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.StorkPublishers) > 0 { + for iNdEx := len(m.StorkPublishers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.StorkPublishers[iNdEx]) + copy(dAtA[i:], m.StorkPublishers[iNdEx]) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.StorkPublishers[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if len(m.StorkPriceStates) > 0 { + for iNdEx := len(m.StorkPriceStates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.StorkPriceStates[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] = 0x82 + } + } if len(m.PythPriceStates) > 0 { for iNdEx := len(m.PythPriceStates) - 1; iNdEx >= 0; iNdEx-- { { @@ -616,6 +662,18 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } + if len(m.StorkPriceStates) > 0 { + for _, e := range m.StorkPriceStates { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.StorkPublishers) > 0 { + for _, s := range m.StorkPublishers { + l = len(s) + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -1146,6 +1204,72 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorkPriceStates", 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.StorkPriceStates = append(m.StorkPriceStates, &StorkPriceState{}) + if err := m.StorkPriceStates[len(m.StorkPriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorkPublishers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorkPublishers = append(m.StorkPublishers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/oracle/types/key.go b/chain/oracle/types/key.go index b2ed36ee..8b386bc3 100644 --- a/chain/oracle/types/key.go +++ b/chain/oracle/types/key.go @@ -58,6 +58,10 @@ var ( // PythPriceKey is the prefix for the priceID => PythPriceState store. PythPriceKey = []byte{0x71} + + // StorkPriceKey is the prefix for the priceID => StorkPriceState store. + StorkPriceKey = []byte{0x81} + StorkPublisherKey = []byte{0x82} ) func GetBandPriceStoreKey(symbol string) []byte { @@ -109,6 +113,10 @@ func GetCoinbasePriceStoreIterationKey(key string) []byte { return append(CoinbasePriceKey, []byte(key)...) } +func GetStorkPriceStoreKey(key string) []byte { + return append(StorkPriceKey, []byte(key)...) +} + func GetChainlinkPriceStoreKey(feedId string) []byte { feedIdBz := getPaddedFeedIdBz(feedId) diff --git a/chain/oracle/types/msgs.go b/chain/oracle/types/msgs.go index 6cde9154..ba4f9b5b 100644 --- a/chain/oracle/types/msgs.go +++ b/chain/oracle/types/msgs.go @@ -1,11 +1,16 @@ package types import ( + "fmt" + "math/big" + "strconv" "strings" "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/ethereum/go-ethereum/common" ) // oracle message types @@ -18,6 +23,7 @@ const ( TypeMsgRequestBandIBCRates = "requestBandIBCRates" TypeMsgRelayProviderPrices = "relayProviderPrices" TypeMsgRelayPythPrices = "relayPythPrices" + TypeMsgRelayStorkPrices = "relayStorkPrices" TypeMsgUpdateParams = "updateParams" ) @@ -28,6 +34,7 @@ var ( _ sdk.Msg = &MsgRequestBandIBCRates{} _ sdk.Msg = &MsgRelayProviderPrices{} _ sdk.Msg = &MsgRelayPythPrices{} + _ sdk.Msg = &MsgRelayStorkPrices{} _ sdk.Msg = &MsgUpdateParams{} ) @@ -287,9 +294,6 @@ func (msg MsgRelayPythPrices) Type() string { return TypeMsgRelayPythPrices } // ValidateBasic implements the sdk.Msg interface. It runs stateless checks on the message func (msg MsgRelayPythPrices) ValidateBasic() error { - if msg.Sender == "" { - return errors.Wrap(sdkerrors.ErrInvalidAddress, msg.Sender) - } if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { return err } @@ -312,3 +316,87 @@ func (msg MsgRelayPythPrices) GetSigners() []sdk.AccAddress { } return []sdk.AccAddress{sender} } + +// Route implements the sdk.Msg interface. It should return the name of the module +func (msg MsgRelayStorkPrices) Route() string { return RouterKey } + +// Type implements the sdk.Msg interface. It should return the action. +func (msg MsgRelayStorkPrices) Type() string { return TypeMsgRelayStorkPrices } + +// ValidateBasic implements the sdk.Msg interface for MsgRelayStorkPrices. +func (msg MsgRelayStorkPrices) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return err + } + + assetIDs := make(map[string]struct{}) + for idx := range msg.AssetPairs { + assetPair := msg.AssetPairs[idx] + if _, found := assetIDs[assetPair.AssetId]; found { + return errors.Wrapf(ErrStorkAssetIdNotUnique, "Asset id %s is not unique", assetPair.AssetId) + } + assetIDs[assetPair.AssetId] = struct{}{} + + var newestTimestamp uint64 + oldestTimestamp := ^uint64(0) // max uint64 + for i := range assetPair.SignedPrices { + p := assetPair.SignedPrices[i] + // convert timestamp to nanoseconds to validate conditions + timestamp := ConvertTimestampToNanoSecond(p.Timestamp) + if timestamp > newestTimestamp { + newestTimestamp = timestamp + } + if timestamp < oldestTimestamp { + oldestTimestamp = timestamp + } + + price := new(big.Int).Quo(p.Price.BigInt(), sdkmath.LegacyOneDec().BigInt()).String() + // note: relayer should convert the ecdsa r,s,v signatures format to the normal bytes arrays signature + if !VerifyStorkMsgSignature(common.HexToAddress(p.PublisherKey), assetPair.AssetId, strconv.FormatUint(p.Timestamp, 10), price, p.Signature) { + return errors.Wrapf(ErrInvalidStorkSignature, "Invalid signature for asset %s with publisher address %s", assetPair.AssetId, p.PublisherKey) + } + } + + if newestTimestamp-oldestTimestamp > MaxStorkTimestampIntervalNano { + return fmt.Errorf("price timestamps between %d and %d exceed threshold %d", oldestTimestamp, newestTimestamp, MaxStorkTimestampIntervalNano) + } + } + + return nil +} + +// GetSignBytes implements the sdk.Msg interface. It encodes the message for signing +func (msg *MsgRelayStorkPrices) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners implements the sdk.Msg interface. It defines whose signature is required +func (msg MsgRelayStorkPrices) GetSigners() []sdk.AccAddress { + sender, err := sdk.AccAddressFromBech32(msg.Sender) + if err != nil { + panic(err) + } + return []sdk.AccAddress{sender} +} + +// ConvertTimestampToNanoSecond converts timestamp to nano seconds +// if timestamp > 1e18 => timestamp is in nanosecond format +// else if timestamp > 1e15 => timestamp is in microsecond format +// else if timestamp > 1e12 => timestamp is in millisecond format +// else the timestamp is in second format +func ConvertTimestampToNanoSecond(timestamp uint64) (nanoSeconds uint64) { + switch { + // nanosecond + case timestamp > 1e18: + return timestamp + // microsecond + case timestamp > 1e15: + return timestamp * 1_000 + // millisecond + case timestamp > 1e12: + return timestamp * 1_000_000 + // second + default: + return timestamp * 1_000_000_000 + } +} diff --git a/chain/oracle/types/oracle.go b/chain/oracle/types/oracle.go index a03aad9b..a8c3335a 100644 --- a/chain/oracle/types/oracle.go +++ b/chain/oracle/types/oracle.go @@ -4,7 +4,7 @@ import ( "strings" "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/cosmos/gogoproto/proto" ) @@ -14,6 +14,9 @@ const BandPriceMultiplier uint64 = 1000000000 // 1e9 // MaxHistoricalPriceRecordAge is the maximum age of oracle price records to track. const MaxHistoricalPriceRecordAge = 60 * 5 +const MaxStorkTimestampIntervalNano = 500_000_000 // 500ms + +var EighteenDecimals = math.LegacyNewDec(10).Power(18) func GetOracleType(oracleTypeStr string) (OracleType, error) { oracleTypeStr = strings.ToLower(oracleTypeStr) @@ -32,6 +35,8 @@ func GetOracleType(oracleTypeStr string) (OracleType, error) { oracleType = OracleType_Provider case "pyth": oracleType = OracleType_Pyth + case "stork": + oracleType = OracleType_Stork default: return OracleType_Band, errors.Wrapf(ErrUnsupportedOracleType, "%s", oracleTypeStr) } @@ -47,29 +52,29 @@ func (o *OracleType) UnmarshalJSON(data []byte) error { return nil } -func (c *CoinbasePriceState) GetDecPrice() sdk.Dec { +func (c *CoinbasePriceState) GetDecPrice() math.LegacyDec { // nolint:all // price = price/10^6 - return sdk.NewDec(int64(c.Value)).QuoTruncate(sdk.NewDec(10).Power(6)) + return math.LegacyNewDec(int64(c.Value)).QuoTruncate(math.LegacyNewDec(10).Power(6)) } -func NewPriceState(price sdk.Dec, timestamp int64) *PriceState { +func NewPriceState(price math.LegacyDec, timestamp int64) *PriceState { return &PriceState{ Price: price, - CumulativePrice: sdk.ZeroDec(), + CumulativePrice: math.LegacyZeroDec(), Timestamp: timestamp, } } -func NewProviderPriceState(symbol string, price sdk.Dec, timestamp int64) *ProviderPriceState { +func NewProviderPriceState(symbol string, price math.LegacyDec, timestamp int64) *ProviderPriceState { return &ProviderPriceState{ Symbol: symbol, State: NewPriceState(price, timestamp), } } -func (p *PriceState) UpdatePrice(price sdk.Dec, timestamp int64) { - cumulativePriceDelta := sdk.NewDec(timestamp - p.Timestamp).Mul(p.Price) +func (p *PriceState) UpdatePrice(price math.LegacyDec, timestamp int64) { + cumulativePriceDelta := math.LegacyNewDec(timestamp - p.Timestamp).Mul(p.Price) p.CumulativePrice = p.CumulativePrice.Add(cumulativePriceDelta) p.Timestamp = timestamp p.Price = price @@ -105,8 +110,8 @@ 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 sdk.Dec) bool { - return newPrice.GT(lastPrice.Mul(sdk.NewDec(100))) || newPrice.LT(lastPrice.Quo(sdk.NewDec(100))) +func CheckPriceFeedThreshold(lastPrice, newPrice math.LegacyDec) bool { + return newPrice.GT(lastPrice.Mul(math.LegacyNewDec(100))) || newPrice.LT(lastPrice.Quo(math.LegacyNewDec(100))) } func IsLegacySchemeOracleScript(scriptID int64, params BandIBCParams) bool { diff --git a/chain/oracle/types/oracle.pb.go b/chain/oracle/types/oracle.pb.go index 156c1208..fe23bfa5 100644 --- a/chain/oracle/types/oracle.pb.go +++ b/chain/oracle/types/oracle.pb.go @@ -4,9 +4,11 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" 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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" golang_proto "github.com/golang/protobuf/proto" @@ -42,6 +44,7 @@ const ( OracleType_Pyth OracleType = 9 OracleType_BandIBC OracleType = 10 OracleType_Provider OracleType = 11 + OracleType_Stork OracleType = 12 ) var OracleType_name = map[int32]string{ @@ -57,6 +60,7 @@ var OracleType_name = map[int32]string{ 9: "Pyth", 10: "BandIBC", 11: "Provider", + 12: "Stork", } var OracleType_value = map[string]int32{ @@ -72,6 +76,7 @@ var OracleType_value = map[string]int32{ "Pyth": 9, "BandIBC": 10, "Provider": 11, + "Stork": 12, } func (x OracleType) String() string { @@ -179,10 +184,10 @@ func (m *OracleInfo) GetOracleType() OracleType { } type ChainlinkPriceState struct { - FeedId string `protobuf:"bytes,1,opt,name=feed_id,json=feedId,proto3" json:"feed_id,omitempty"` - Answer github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=answer,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"answer"` - Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - PriceState PriceState `protobuf:"bytes,4,opt,name=price_state,json=priceState,proto3" json:"price_state"` + 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"` + Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + PriceState PriceState `protobuf:"bytes,4,opt,name=price_state,json=priceState,proto3" json:"price_state"` } func (m *ChainlinkPriceState) Reset() { *m = ChainlinkPriceState{} } @@ -240,11 +245,11 @@ func (m *ChainlinkPriceState) GetPriceState() PriceState { } type BandPriceState struct { - Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` - Rate github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=rate,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"rate"` - ResolveTime uint64 `protobuf:"varint,3,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` - Request_ID uint64 `protobuf:"varint,4,opt,name=request_ID,json=requestID,proto3" json:"request_ID,omitempty"` - PriceState PriceState `protobuf:"bytes,5,opt,name=price_state,json=priceState,proto3" json:"price_state"` + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + Rate cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=rate,proto3,customtype=cosmossdk.io/math.Int" json:"rate"` + ResolveTime uint64 `protobuf:"varint,3,opt,name=resolve_time,json=resolveTime,proto3" json:"resolve_time,omitempty"` + Request_ID uint64 `protobuf:"varint,4,opt,name=request_ID,json=requestID,proto3" json:"request_ID,omitempty"` + PriceState PriceState `protobuf:"bytes,5,opt,name=price_state,json=priceState,proto3" json:"price_state"` } func (m *BandPriceState) Reset() { *m = BandPriceState{} } @@ -585,7 +590,7 @@ func (m *PriceFeedInfo) GetQuote() string { } type PriceFeedPrice struct { - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` } func (m *PriceFeedPrice) Reset() { *m = PriceFeedPrice{} } @@ -702,17 +707,82 @@ func (m *CoinbasePriceState) GetPriceState() PriceState { return PriceState{} } +type StorkPriceState struct { + // timestamp of the when the price was signed by stork + Timestamp uint64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // the symbol of the price, e.g. BTC + Symbol string `protobuf:"bytes,2,opt,name=symbol,proto3" json:"symbol,omitempty"` + // the value of the price scaled by 1e18 + Value cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=value,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"value"` + // the price state + PriceState PriceState `protobuf:"bytes,5,opt,name=price_state,json=priceState,proto3" json:"price_state"` +} + +func (m *StorkPriceState) Reset() { *m = StorkPriceState{} } +func (m *StorkPriceState) String() string { return proto.CompactTextString(m) } +func (*StorkPriceState) ProtoMessage() {} +func (*StorkPriceState) Descriptor() ([]byte, []int) { + return fileDescriptor_1c8fbf1e7a765423, []int{11} +} +func (m *StorkPriceState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *StorkPriceState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_StorkPriceState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *StorkPriceState) XXX_Merge(src proto.Message) { + xxx_messageInfo_StorkPriceState.Merge(m, src) +} +func (m *StorkPriceState) XXX_Size() int { + return m.Size() +} +func (m *StorkPriceState) XXX_DiscardUnknown() { + xxx_messageInfo_StorkPriceState.DiscardUnknown(m) +} + +var xxx_messageInfo_StorkPriceState proto.InternalMessageInfo + +func (m *StorkPriceState) GetTimestamp() uint64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *StorkPriceState) GetSymbol() string { + if m != nil { + return m.Symbol + } + return "" +} + +func (m *StorkPriceState) GetPriceState() PriceState { + if m != nil { + return m.PriceState + } + return PriceState{} +} + type PriceState struct { - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - CumulativePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=cumulative_price,json=cumulativePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_price"` - Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + CumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=cumulative_price,json=cumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_price"` + Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (m *PriceState) Reset() { *m = PriceState{} } func (m *PriceState) String() string { return proto.CompactTextString(m) } func (*PriceState) ProtoMessage() {} func (*PriceState) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{11} + return fileDescriptor_1c8fbf1e7a765423, []int{12} } func (m *PriceState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -749,19 +819,19 @@ func (m *PriceState) GetTimestamp() int64 { } type PythPriceState struct { - PriceId string `protobuf:"bytes,1,opt,name=price_id,json=priceId,proto3" json:"price_id,omitempty"` - EmaPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=ema_price,json=emaPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"ema_price"` - EmaConf github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=ema_conf,json=emaConf,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"ema_conf"` - Conf github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=conf,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"conf"` - PublishTime uint64 `protobuf:"varint,5,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"` - PriceState PriceState `protobuf:"bytes,6,opt,name=price_state,json=priceState,proto3" json:"price_state"` + PriceId string `protobuf:"bytes,1,opt,name=price_id,json=priceId,proto3" json:"price_id,omitempty"` + EmaPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=ema_price,json=emaPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"ema_price"` + EmaConf cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=ema_conf,json=emaConf,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"ema_conf"` + Conf cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=conf,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"conf"` + PublishTime uint64 `protobuf:"varint,5,opt,name=publish_time,json=publishTime,proto3" json:"publish_time,omitempty"` + PriceState PriceState `protobuf:"bytes,6,opt,name=price_state,json=priceState,proto3" json:"price_state"` } func (m *PythPriceState) Reset() { *m = PythPriceState{} } func (m *PythPriceState) String() string { return proto.CompactTextString(m) } func (*PythPriceState) ProtoMessage() {} func (*PythPriceState) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{12} + return fileDescriptor_1c8fbf1e7a765423, []int{13} } func (m *PythPriceState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -842,7 +912,7 @@ func (m *BandOracleRequest) Reset() { *m = BandOracleRequest{} } func (m *BandOracleRequest) String() string { return proto.CompactTextString(m) } func (*BandOracleRequest) ProtoMessage() {} func (*BandOracleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{13} + return fileDescriptor_1c8fbf1e7a765423, []int{14} } func (m *BandOracleRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -953,7 +1023,7 @@ func (m *BandIBCParams) Reset() { *m = BandIBCParams{} } func (m *BandIBCParams) String() string { return proto.CompactTextString(m) } func (*BandIBCParams) ProtoMessage() {} func (*BandIBCParams) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{14} + return fileDescriptor_1c8fbf1e7a765423, []int{15} } func (m *BandIBCParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1034,7 +1104,7 @@ func (m *SymbolPriceTimestamp) Reset() { *m = SymbolPriceTimestamp{} } func (m *SymbolPriceTimestamp) String() string { return proto.CompactTextString(m) } func (*SymbolPriceTimestamp) ProtoMessage() {} func (*SymbolPriceTimestamp) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{15} + return fileDescriptor_1c8fbf1e7a765423, []int{16} } func (m *SymbolPriceTimestamp) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1092,7 +1162,7 @@ func (m *LastPriceTimestamps) Reset() { *m = LastPriceTimestamps{} } func (m *LastPriceTimestamps) String() string { return proto.CompactTextString(m) } func (*LastPriceTimestamps) ProtoMessage() {} func (*LastPriceTimestamps) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{16} + return fileDescriptor_1c8fbf1e7a765423, []int{17} } func (m *LastPriceTimestamps) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1138,7 +1208,7 @@ func (m *PriceRecords) Reset() { *m = PriceRecords{} } func (m *PriceRecords) String() string { return proto.CompactTextString(m) } func (*PriceRecords) ProtoMessage() {} func (*PriceRecords) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{17} + return fileDescriptor_1c8fbf1e7a765423, []int{18} } func (m *PriceRecords) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1189,15 +1259,15 @@ func (m *PriceRecords) GetLatestPriceRecords() []*PriceRecord { } type PriceRecord struct { - Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Timestamp int64 `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` } func (m *PriceRecord) Reset() { *m = PriceRecord{} } func (m *PriceRecord) String() string { return proto.CompactTextString(m) } func (*PriceRecord) ProtoMessage() {} func (*PriceRecord) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{18} + return fileDescriptor_1c8fbf1e7a765423, []int{19} } func (m *PriceRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1245,27 +1315,27 @@ type MetadataStatistics struct { // For trades, the mean is the VWAP computed over the grouped trade records ∑ // (price * quantity) / ∑ quantity For oracle prices, the mean is computed // over the price records ∑ (price) / prices_count - Mean github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=mean,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"mean"` + Mean cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=mean,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"mean"` // TWAP refers to the time-weighted average price which equals ∑ (price_i * // ∆t_i) / ∑ ∆t_i where ∆t_i = t_i - t_{i-1} - Twap github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=twap,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"twap"` + Twap cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=twap,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"twap"` // FirstTimestamp is the timestamp of the oldest record considered FirstTimestamp int64 `protobuf:"varint,5,opt,name=first_timestamp,json=firstTimestamp,proto3" json:"first_timestamp,omitempty"` // LastTimestamp is the timestamp of the youngest record considered LastTimestamp int64 `protobuf:"varint,6,opt,name=last_timestamp,json=lastTimestamp,proto3" json:"last_timestamp,omitempty"` // MinPrice refers to the smallest individual raw price considered - MinPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=min_price,json=minPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"min_price"` + MinPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=min_price,json=minPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_price"` // MaxPrice refers to the largest individual raw price considered - MaxPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"max_price"` + MaxPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,8,opt,name=max_price,json=maxPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"max_price"` // MedianPrice refers to the median individual raw price considered - MedianPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,9,opt,name=median_price,json=medianPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"median_price"` + MedianPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,9,opt,name=median_price,json=medianPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"median_price"` } func (m *MetadataStatistics) Reset() { *m = MetadataStatistics{} } func (m *MetadataStatistics) String() string { return proto.CompactTextString(m) } func (*MetadataStatistics) ProtoMessage() {} func (*MetadataStatistics) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{19} + return fileDescriptor_1c8fbf1e7a765423, []int{20} } func (m *MetadataStatistics) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1338,7 +1408,7 @@ func (m *PriceAttestation) Reset() { *m = PriceAttestation{} } func (m *PriceAttestation) String() string { return proto.CompactTextString(m) } func (*PriceAttestation) ProtoMessage() {} func (*PriceAttestation) Descriptor() ([]byte, []int) { - return fileDescriptor_1c8fbf1e7a765423, []int{20} + return fileDescriptor_1c8fbf1e7a765423, []int{21} } func (m *PriceAttestation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1423,6 +1493,119 @@ func (m *PriceAttestation) GetPublishTime() int64 { return 0 } +type AssetPair struct { + AssetId string `protobuf:"bytes,1,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` + SignedPrices []*SignedPriceOfAssetPair `protobuf:"bytes,2,rep,name=signed_prices,json=signedPrices,proto3" json:"signed_prices,omitempty"` +} + +func (m *AssetPair) Reset() { *m = AssetPair{} } +func (m *AssetPair) String() string { return proto.CompactTextString(m) } +func (*AssetPair) ProtoMessage() {} +func (*AssetPair) Descriptor() ([]byte, []int) { + return fileDescriptor_1c8fbf1e7a765423, []int{22} +} +func (m *AssetPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AssetPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AssetPair.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AssetPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_AssetPair.Merge(m, src) +} +func (m *AssetPair) XXX_Size() int { + return m.Size() +} +func (m *AssetPair) XXX_DiscardUnknown() { + xxx_messageInfo_AssetPair.DiscardUnknown(m) +} + +var xxx_messageInfo_AssetPair proto.InternalMessageInfo + +func (m *AssetPair) GetAssetId() string { + if m != nil { + return m.AssetId + } + return "" +} + +func (m *AssetPair) GetSignedPrices() []*SignedPriceOfAssetPair { + if m != nil { + return m.SignedPrices + } + return nil +} + +type SignedPriceOfAssetPair struct { + PublisherKey string `protobuf:"bytes,1,opt,name=publisher_key,json=publisherKey,proto3" json:"publisher_key,omitempty"` + Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Signature []byte `protobuf:"bytes,4,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (m *SignedPriceOfAssetPair) Reset() { *m = SignedPriceOfAssetPair{} } +func (m *SignedPriceOfAssetPair) String() string { return proto.CompactTextString(m) } +func (*SignedPriceOfAssetPair) ProtoMessage() {} +func (*SignedPriceOfAssetPair) Descriptor() ([]byte, []int) { + return fileDescriptor_1c8fbf1e7a765423, []int{23} +} +func (m *SignedPriceOfAssetPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SignedPriceOfAssetPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SignedPriceOfAssetPair.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SignedPriceOfAssetPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignedPriceOfAssetPair.Merge(m, src) +} +func (m *SignedPriceOfAssetPair) XXX_Size() int { + return m.Size() +} +func (m *SignedPriceOfAssetPair) XXX_DiscardUnknown() { + xxx_messageInfo_SignedPriceOfAssetPair.DiscardUnknown(m) +} + +var xxx_messageInfo_SignedPriceOfAssetPair proto.InternalMessageInfo + +func (m *SignedPriceOfAssetPair) GetPublisherKey() string { + if m != nil { + return m.PublisherKey + } + return "" +} + +func (m *SignedPriceOfAssetPair) GetTimestamp() uint64 { + if m != nil { + return m.Timestamp + } + return 0 +} + +func (m *SignedPriceOfAssetPair) GetSignature() []byte { + if m != nil { + return m.Signature + } + return nil +} + func init() { proto.RegisterEnum("injective.oracle.v1beta1.OracleType", OracleType_name, OracleType_value) golang_proto.RegisterEnum("injective.oracle.v1beta1.OracleType", OracleType_name, OracleType_value) @@ -1448,6 +1631,8 @@ func init() { golang_proto.RegisterType((*PriceFeedPrice)(nil), "injective.oracle.v1beta1.PriceFeedPrice") proto.RegisterType((*CoinbasePriceState)(nil), "injective.oracle.v1beta1.CoinbasePriceState") golang_proto.RegisterType((*CoinbasePriceState)(nil), "injective.oracle.v1beta1.CoinbasePriceState") + proto.RegisterType((*StorkPriceState)(nil), "injective.oracle.v1beta1.StorkPriceState") + golang_proto.RegisterType((*StorkPriceState)(nil), "injective.oracle.v1beta1.StorkPriceState") proto.RegisterType((*PriceState)(nil), "injective.oracle.v1beta1.PriceState") golang_proto.RegisterType((*PriceState)(nil), "injective.oracle.v1beta1.PriceState") proto.RegisterType((*PythPriceState)(nil), "injective.oracle.v1beta1.PythPriceState") @@ -1468,6 +1653,10 @@ func init() { golang_proto.RegisterType((*MetadataStatistics)(nil), "injective.oracle.v1beta1.MetadataStatistics") proto.RegisterType((*PriceAttestation)(nil), "injective.oracle.v1beta1.PriceAttestation") golang_proto.RegisterType((*PriceAttestation)(nil), "injective.oracle.v1beta1.PriceAttestation") + proto.RegisterType((*AssetPair)(nil), "injective.oracle.v1beta1.AssetPair") + golang_proto.RegisterType((*AssetPair)(nil), "injective.oracle.v1beta1.AssetPair") + proto.RegisterType((*SignedPriceOfAssetPair)(nil), "injective.oracle.v1beta1.SignedPriceOfAssetPair") + golang_proto.RegisterType((*SignedPriceOfAssetPair)(nil), "injective.oracle.v1beta1.SignedPriceOfAssetPair") } func init() { @@ -1478,109 +1667,120 @@ func init() { } var fileDescriptor_1c8fbf1e7a765423 = []byte{ - // 1620 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4f, 0x73, 0x1b, 0x4b, - 0x11, 0xf7, 0xea, 0xff, 0xb6, 0x2c, 0x79, 0x33, 0xf6, 0x03, 0xc5, 0x80, 0x6c, 0x04, 0x79, 0xa8, - 0x5e, 0xbd, 0x27, 0xbd, 0x38, 0x27, 0x52, 0x5c, 0x62, 0x3b, 0xa1, 0x54, 0x31, 0x85, 0x59, 0x3b, - 0xa1, 0xe0, 0x22, 0x66, 0x77, 0x47, 0xd6, 0xc4, 0xfb, 0x2f, 0x3b, 0x2b, 0xc7, 0xca, 0x07, 0xc8, - 0x15, 0xbe, 0x00, 0x05, 0xe7, 0x7c, 0x05, 0xaa, 0x28, 0x8a, 0x53, 0xaa, 0xb8, 0xe4, 0x48, 0x71, - 0x08, 0x10, 0x5f, 0xf8, 0x06, 0x1c, 0xb8, 0x50, 0x3d, 0x33, 0x5a, 0xad, 0x6d, 0x9c, 0xf8, 0x4f, - 0x38, 0x69, 0xa6, 0xa7, 0xfb, 0x37, 0xfd, 0x6f, 0xba, 0x7b, 0x05, 0x77, 0x78, 0xf8, 0x8c, 0xb9, - 0x29, 0x3f, 0x62, 0xfd, 0x28, 0xa1, 0xae, 0xcf, 0xfa, 0x47, 0x77, 0x1d, 0x96, 0xd2, 0xbb, 0x7a, - 0xdb, 0x8b, 0x93, 0x28, 0x8d, 0x48, 0x2b, 0x63, 0xeb, 0x69, 0xba, 0x66, 0x5b, 0x5d, 0x39, 0x88, - 0x0e, 0x22, 0xc9, 0xd4, 0xc7, 0x95, 0xe2, 0x5f, 0x6d, 0xbb, 0x91, 0x08, 0x22, 0xd1, 0x77, 0xa8, - 0x98, 0x23, 0xba, 0x11, 0x0f, 0xd5, 0x79, 0xe7, 0x1e, 0x54, 0x76, 0x69, 0x42, 0x03, 0x41, 0xbe, - 0x07, 0x8d, 0x78, 0x9a, 0x8e, 0x87, 0x6e, 0x14, 0xa6, 0x09, 0x75, 0xd3, 0x96, 0xb1, 0x6e, 0x74, - 0x4d, 0x7b, 0x11, 0x89, 0x5b, 0x9a, 0x76, 0xbf, 0xf4, 0xaf, 0xdf, 0xaf, 0x19, 0x9d, 0x43, 0x80, - 0x9f, 0xca, 0xcb, 0x07, 0xe1, 0x28, 0x22, 0xdf, 0x80, 0x8a, 0x98, 0x06, 0x4e, 0xe4, 0x6b, 0x09, - 0xbd, 0x23, 0x0f, 0xa1, 0xae, 0x54, 0x1c, 0xa6, 0xd3, 0x98, 0xb5, 0x0a, 0xeb, 0x46, 0xb7, 0xb9, - 0xf1, 0xfd, 0xde, 0x45, 0x06, 0xf4, 0x14, 0xe4, 0xfe, 0x34, 0x66, 0x36, 0x44, 0xd9, 0xba, 0xf3, - 0x4f, 0x03, 0x96, 0xb7, 0xc6, 0x94, 0x87, 0x3e, 0x0f, 0x0f, 0x77, 0x13, 0xee, 0xb2, 0xbd, 0x94, - 0xa6, 0x8c, 0x7c, 0x13, 0xaa, 0x23, 0xc6, 0xbc, 0x21, 0xf7, 0x66, 0xf7, 0xe2, 0x76, 0xe0, 0x91, - 0x47, 0x50, 0xa1, 0xa1, 0x78, 0xc1, 0x12, 0x79, 0xa5, 0xb9, 0xd9, 0x7b, 0xf3, 0x6e, 0x6d, 0xe1, - 0x6f, 0xef, 0xd6, 0x3e, 0x3f, 0xe0, 0xe9, 0x78, 0xe2, 0xf4, 0xdc, 0x28, 0xe8, 0x6b, 0xaf, 0xa8, - 0x9f, 0xaf, 0x84, 0x77, 0xd8, 0x47, 0x1d, 0x45, 0x6f, 0x9b, 0xb9, 0xb6, 0x96, 0x26, 0xdf, 0x06, - 0x33, 0xe5, 0x01, 0x13, 0x29, 0x0d, 0xe2, 0x56, 0x71, 0xdd, 0xe8, 0x96, 0xec, 0x39, 0x81, 0x3c, - 0x86, 0x7a, 0x8c, 0xca, 0x0c, 0x05, 0x6a, 0xd3, 0x2a, 0xad, 0x1b, 0xdd, 0xfa, 0x87, 0xac, 0x9b, - 0x6b, 0xbe, 0x59, 0x42, 0x85, 0x6c, 0x88, 0x33, 0x4a, 0xe7, 0x3f, 0x06, 0x34, 0x37, 0x69, 0xe8, - 0xe5, 0xcc, 0xbb, 0xc8, 0xab, 0x9b, 0x50, 0x4a, 0xf0, 0xc2, 0xab, 0xdb, 0x36, 0x08, 0x53, 0x5b, - 0xca, 0x92, 0xef, 0xc2, 0x62, 0xc2, 0x44, 0xe4, 0x1f, 0xb1, 0x21, 0x1a, 0xa4, 0x8d, 0xab, 0x6b, - 0xda, 0x3e, 0x0f, 0x18, 0xf9, 0x0e, 0x40, 0xc2, 0x9e, 0x4f, 0x98, 0x48, 0x87, 0x83, 0x6d, 0x69, - 0x5d, 0xc9, 0x36, 0x35, 0x65, 0xb0, 0x7d, 0xd6, 0xfa, 0xf2, 0x8d, 0xac, 0xff, 0xad, 0x01, 0x4d, - 0xc9, 0xf0, 0x88, 0x31, 0x4f, 0x59, 0x4f, 0xa0, 0x84, 0x19, 0xab, 0x6d, 0x97, 0x6b, 0xb2, 0x02, - 0xe5, 0xe7, 0x93, 0x68, 0x66, 0xba, 0xad, 0x36, 0x98, 0x65, 0x79, 0x4d, 0x8a, 0x97, 0xd7, 0x24, - 0xaf, 0x03, 0x59, 0x85, 0x5a, 0xc2, 0x7c, 0x3a, 0x65, 0x89, 0x68, 0x95, 0xd6, 0x8b, 0x5d, 0xd3, - 0xce, 0xf6, 0x9d, 0x47, 0xb0, 0xb8, 0x9b, 0x44, 0x47, 0xdc, 0x63, 0x89, 0x4c, 0xf8, 0x55, 0xa8, - 0xc5, 0x7a, 0xaf, 0x15, 0xcc, 0xf6, 0xa7, 0x70, 0x0a, 0x67, 0x70, 0xfe, 0x68, 0x40, 0x63, 0x06, - 0xa4, 0x6e, 0x7d, 0x0c, 0x8d, 0x99, 0xe4, 0x90, 0x87, 0xa3, 0x48, 0xc2, 0xd5, 0x37, 0x3e, 0xff, - 0x90, 0xfa, 0x73, 0x45, 0xec, 0xc5, 0x38, 0xaf, 0xd6, 0xaf, 0xe0, 0xb3, 0x0c, 0x2c, 0xe7, 0x12, - 0xa5, 0x47, 0x7d, 0xe3, 0xcb, 0x8f, 0x83, 0xe6, 0x7c, 0xb3, 0x1c, 0x9f, 0xa3, 0x89, 0xce, 0x18, - 0xc8, 0x79, 0xd6, 0x0b, 0x33, 0xf5, 0x3e, 0x94, 0x55, 0x4c, 0x0a, 0x57, 0x88, 0x89, 0x12, 0xe9, - 0xfc, 0x10, 0x3d, 0xa5, 0x33, 0x42, 0x1a, 0x77, 0xe9, 0x84, 0xe8, 0x3c, 0xcd, 0x25, 0x93, 0x5c, - 0x90, 0x6d, 0x28, 0x4b, 0x7f, 0x28, 0xe1, 0x2b, 0xd7, 0x03, 0x25, 0xdc, 0xf9, 0x83, 0x01, 0x64, - 0x2b, 0xe2, 0x21, 0x5e, 0x9d, 0xb3, 0x9e, 0x40, 0xe9, 0x90, 0x87, 0xb3, 0x1a, 0x24, 0xd7, 0xa7, - 0x2b, 0x47, 0xe1, 0x6c, 0xe5, 0xb0, 0xa0, 0x78, 0xc8, 0xa6, 0x32, 0x53, 0x4d, 0x1b, 0x97, 0x68, - 0xc8, 0x11, 0xf5, 0x27, 0x4c, 0xbf, 0x33, 0xb5, 0xf9, 0xb4, 0x6f, 0xec, 0x2f, 0x06, 0x40, 0x4e, - 0xeb, 0x4f, 0xe2, 0x12, 0xf2, 0x0b, 0xb0, 0xdc, 0x49, 0x30, 0xf1, 0x29, 0xaa, 0xa3, 0x72, 0xee, - 0x9a, 0x35, 0x77, 0x69, 0x8e, 0xa3, 0x62, 0x76, 0xae, 0xf8, 0x16, 0x73, 0x2e, 0xec, 0xfc, 0xbb, - 0x00, 0xcd, 0xdd, 0x69, 0x3a, 0xce, 0x59, 0x74, 0x1b, 0x1f, 0x25, 0x7a, 0x2b, 0xeb, 0x07, 0x55, - 0xb9, 0x1f, 0x78, 0xe4, 0x31, 0x98, 0x2c, 0xa0, 0x37, 0xd2, 0xaf, 0xc6, 0x02, 0xaa, 0x14, 0x1b, - 0x00, 0xae, 0xb1, 0x4b, 0x8e, 0x54, 0x08, 0xaf, 0x8c, 0x55, 0x65, 0x01, 0xdd, 0x8a, 0xc2, 0x11, - 0x96, 0x72, 0x09, 0x53, 0xba, 0x16, 0x8c, 0x94, 0xc5, 0x52, 0x1e, 0x4f, 0x1c, 0x9f, 0x8b, 0xb1, - 0x2a, 0xe5, 0x65, 0x55, 0xca, 0x35, 0x4d, 0x96, 0xf2, 0x33, 0x79, 0x54, 0xb9, 0x51, 0x1e, 0xbd, - 0x2a, 0xc2, 0x2d, 0xec, 0x54, 0xaa, 0x59, 0xdb, 0xaa, 0x21, 0xe4, 0xbb, 0x85, 0x76, 0x7f, 0xae, - 0x5b, 0x78, 0xa4, 0x0b, 0x96, 0x9e, 0x04, 0x84, 0x9b, 0xf0, 0x58, 0x32, 0x15, 0x64, 0x4c, 0x9b, - 0x8a, 0xbe, 0x27, 0xc9, 0x03, 0x8f, 0xb4, 0xa0, 0xaa, 0xaa, 0x87, 0x68, 0x15, 0x65, 0xf5, 0x9c, - 0x6d, 0xc9, 0xb7, 0xc0, 0xa4, 0xe2, 0x70, 0xe8, 0x46, 0x93, 0x30, 0xd5, 0xef, 0xa4, 0x46, 0xc5, - 0xe1, 0x16, 0xee, 0xf1, 0x30, 0xe0, 0xa1, 0x3e, 0x54, 0x2e, 0xa8, 0x05, 0x3c, 0x54, 0x87, 0x63, - 0x30, 0x47, 0x8c, 0x0d, 0x7d, 0x1e, 0xf0, 0xb4, 0x55, 0x91, 0xb5, 0xf0, 0x76, 0x4f, 0xb9, 0xb4, - 0x87, 0x8f, 0x39, 0x33, 0x1c, 0x5f, 0xf7, 0xe6, 0xd7, 0x68, 0xf2, 0xeb, 0xbf, 0xaf, 0x75, 0x2f, - 0x11, 0x06, 0x14, 0x10, 0x76, 0x6d, 0xc4, 0xd8, 0x0e, 0x82, 0x93, 0x35, 0xf4, 0x34, 0x8b, 0x69, - 0xc2, 0x86, 0x07, 0x54, 0xb4, 0xaa, 0x52, 0x11, 0xd0, 0xa4, 0x1f, 0x53, 0x81, 0x0c, 0xec, 0x98, - 0xb9, 0x93, 0x54, 0x31, 0xd4, 0x14, 0x83, 0x26, 0x21, 0x43, 0x17, 0x2c, 0x34, 0x44, 0x44, 0x93, - 0xc4, 0x65, 0xda, 0x1e, 0x53, 0x72, 0x35, 0x03, 0x1e, 0xee, 0x49, 0xb2, 0xb4, 0xaa, 0xf3, 0xaa, - 0x00, 0x0d, 0x0c, 0xc4, 0x60, 0x73, 0x4b, 0x0f, 0x70, 0x5d, 0xb0, 0x1c, 0x1a, 0x7a, 0x43, 0xee, - 0xb8, 0x43, 0x16, 0x52, 0xc7, 0x67, 0x2a, 0x14, 0x35, 0xbb, 0x89, 0xf4, 0x81, 0xe3, 0x3e, 0x54, - 0x54, 0xf2, 0x35, 0xac, 0x20, 0x53, 0x16, 0xb2, 0x30, 0x65, 0xc9, 0x11, 0xf5, 0x75, 0x4c, 0x08, - 0x77, 0x5c, 0x1d, 0xd8, 0x81, 0x3e, 0x21, 0x5f, 0x02, 0x52, 0x33, 0xbd, 0xc6, 0x34, 0x0c, 0x99, - 0xaf, 0x4b, 0x98, 0xc5, 0x1d, 0x57, 0x6b, 0xa6, 0xe8, 0x68, 0x26, 0x72, 0x1f, 0xb1, 0x44, 0xf0, - 0x28, 0x54, 0xf9, 0x6d, 0x03, 0x77, 0xdc, 0xa7, 0x8a, 0x42, 0xda, 0x8a, 0x21, 0x8e, 0x12, 0x99, - 0x0b, 0x65, 0xc9, 0x60, 0x72, 0xc7, 0xdd, 0x8d, 0x12, 0x4c, 0x83, 0x2f, 0xe0, 0x96, 0xcf, 0x0e, - 0xa8, 0x3b, 0x1d, 0xea, 0xbc, 0xe1, 0x9e, 0x90, 0xa1, 0x2b, 0xda, 0x4b, 0xea, 0x40, 0xcf, 0x9f, - 0x9e, 0xe8, 0xfc, 0xda, 0x80, 0x95, 0x3d, 0x99, 0x24, 0x32, 0x71, 0xf7, 0xb3, 0x3a, 0xfb, 0x23, - 0xa8, 0x28, 0x69, 0xe9, 0x85, 0xcb, 0x8e, 0x9e, 0x5a, 0x06, 0x53, 0x4a, 0xa5, 0xde, 0x2c, 0x59, - 0x4d, 0xbb, 0xa6, 0x08, 0x03, 0xef, 0x23, 0xd5, 0x69, 0x0a, 0xcb, 0x3b, 0x54, 0xa4, 0xa7, 0xd5, - 0x11, 0xc4, 0x81, 0xcf, 0x7c, 0x2a, 0x52, 0xdd, 0x9b, 0x33, 0x76, 0xd1, 0x32, 0x64, 0x4e, 0xf6, - 0x2e, 0x56, 0xef, 0x7f, 0x99, 0x67, 0x2f, 0xfb, 0xe7, 0xef, 0xe8, 0xfc, 0xd9, 0xc0, 0x59, 0x85, - 0xbb, 0xcc, 0x66, 0x6e, 0x94, 0x78, 0xe2, 0xff, 0xe9, 0x84, 0x9f, 0xc3, 0x8a, 0x8f, 0x63, 0xc1, - 0xcc, 0xa2, 0x44, 0x5d, 0x29, 0x1f, 0x6e, 0x7d, 0xe3, 0xce, 0x47, 0x0a, 0x8c, 0x52, 0xd0, 0x26, - 0x0a, 0x22, 0xaf, 0x73, 0xe7, 0x39, 0xd4, 0x73, 0xfb, 0xd3, 0xce, 0x36, 0xce, 0x38, 0x7b, 0xde, - 0xc9, 0x0a, 0x37, 0x69, 0xee, 0xaf, 0x4b, 0x40, 0x7e, 0xc2, 0x52, 0xea, 0xd1, 0x94, 0x62, 0xa1, - 0xe3, 0x22, 0xe5, 0xae, 0x7c, 0xaf, 0x07, 0x49, 0x34, 0x89, 0xf5, 0x4b, 0xc4, 0xcb, 0x1b, 0x36, - 0x48, 0x92, 0xaa, 0x2d, 0x3d, 0x58, 0xd6, 0x66, 0x0f, 0x05, 0x0d, 0x62, 0xac, 0x70, 0xfc, 0xa5, - 0xd2, 0xa5, 0x61, 0xdf, 0xd2, 0x47, 0x7b, 0xf2, 0x64, 0x8f, 0xbf, 0x64, 0x58, 0xf2, 0x03, 0x46, - 0xc3, 0x6b, 0x76, 0x0e, 0x29, 0x8b, 0x18, 0xe9, 0x0b, 0x1a, 0x5f, 0xb7, 0x6d, 0xa0, 0x2c, 0xf9, - 0x01, 0x2c, 0x8d, 0x78, 0x22, 0xd2, 0x79, 0x1a, 0xca, 0x47, 0x58, 0xb4, 0x9b, 0x92, 0x3c, 0x7f, - 0x44, 0x77, 0xa0, 0x29, 0x93, 0x76, 0xce, 0x57, 0x91, 0x7c, 0x0d, 0xa4, 0xee, 0xe7, 0xbe, 0x86, - 0x64, 0x01, 0x56, 0x91, 0xa8, 0x5e, 0xaf, 0xc5, 0x06, 0x3c, 0x54, 0x2d, 0x16, 0xc1, 0xe8, 0xb1, - 0x06, 0xab, 0x5d, 0x13, 0x8c, 0x1e, 0x2b, 0xb0, 0x9f, 0xc1, 0x62, 0xc0, 0x3c, 0x4e, 0x67, 0xca, - 0x99, 0xd7, 0xc2, 0xab, 0x2b, 0x0c, 0x09, 0x89, 0x5f, 0xa4, 0x96, 0x5c, 0x3d, 0x48, 0x31, 0x77, - 0x69, 0x8a, 0x25, 0xed, 0x03, 0xf3, 0xc7, 0x4a, 0x3e, 0x45, 0x8b, 0xb3, 0xe1, 0x89, 0xe8, 0xee, - 0xaf, 0x3e, 0xbe, 0x54, 0x37, 0x27, 0x50, 0x62, 0xc7, 0x71, 0x24, 0x43, 0x5b, 0xb6, 0xe5, 0x1a, - 0xdf, 0xe0, 0x7c, 0x7a, 0x51, 0x41, 0x9a, 0x4f, 0x23, 0xb7, 0x73, 0xd3, 0x48, 0x45, 0x02, 0x65, - 0xd3, 0x85, 0x3e, 0x92, 0x78, 0x55, 0x89, 0x87, 0x47, 0x0f, 0x11, 0xf2, 0xec, 0xd0, 0x50, 0x93, - 0xa8, 0xf9, 0xa1, 0xe1, 0x8b, 0xdf, 0x19, 0xb3, 0x6f, 0x7c, 0x2c, 0x08, 0x64, 0x09, 0xea, 0x4f, - 0x42, 0x11, 0x33, 0x97, 0x8f, 0x38, 0xf3, 0xac, 0x05, 0x52, 0x83, 0x12, 0x76, 0x1f, 0xcb, 0x20, - 0x0d, 0x30, 0xb3, 0x79, 0xdb, 0x2a, 0x90, 0x45, 0xa8, 0xcd, 0xa6, 0x64, 0xab, 0x88, 0x87, 0xd9, - 0xb7, 0xbb, 0x55, 0x22, 0x26, 0x94, 0x6d, 0xfa, 0x32, 0x4a, 0xac, 0x32, 0xa9, 0x42, 0x71, 0x9b, - 0x53, 0xab, 0x82, 0x48, 0x0f, 0x76, 0x07, 0xf7, 0xac, 0x2a, 0x92, 0x9e, 0x04, 0xd4, 0xaa, 0x21, - 0x09, 0xa7, 0x3b, 0xcb, 0x24, 0x75, 0xa8, 0xea, 0x26, 0x67, 0x01, 0x42, 0xcf, 0x3e, 0x3f, 0xac, - 0xfa, 0xe6, 0xb3, 0x37, 0xef, 0xdb, 0xc6, 0xdb, 0xf7, 0x6d, 0xe3, 0x1f, 0xef, 0xdb, 0xc6, 0x6f, - 0x4e, 0xda, 0x0b, 0x7f, 0x3a, 0x69, 0x1b, 0x6f, 0x4f, 0xda, 0x0b, 0x7f, 0x3d, 0x69, 0x2f, 0xfc, - 0x72, 0x27, 0x17, 0xd8, 0xc1, 0xac, 0x10, 0xed, 0x50, 0x47, 0xf4, 0xb3, 0xb2, 0xf4, 0x95, 0x1b, - 0x25, 0x2c, 0xbf, 0x45, 0x45, 0xfb, 0x41, 0xe4, 0x4d, 0x7c, 0x26, 0x66, 0x7f, 0xc2, 0xc8, 0x14, - 0x70, 0x2a, 0xf2, 0xcf, 0x92, 0x7b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xa0, 0xa3, 0x69, 0xd5, - 0xa5, 0x11, 0x00, 0x00, + // 1794 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0xcd, 0x8f, 0x1c, 0x47, + 0x15, 0xdf, 0x9e, 0xef, 0x7e, 0xf3, 0xb1, 0xed, 0xda, 0xb5, 0x19, 0x3b, 0xc9, 0xec, 0xd2, 0xc1, + 0x30, 0xb2, 0x92, 0x19, 0xdb, 0x39, 0x20, 0x07, 0x84, 0xe2, 0x5d, 0xdb, 0x68, 0xe4, 0x85, 0xac, + 0x7a, 0x6d, 0x90, 0xb8, 0x0c, 0x35, 0xdd, 0x35, 0x3b, 0x95, 0xed, 0xaf, 0x74, 0xf5, 0x6c, 0x3c, + 0x96, 0xb8, 0xe6, 0xc0, 0x05, 0xfe, 0x01, 0x24, 0xce, 0x39, 0x71, 0x80, 0x13, 0x12, 0x42, 0x9c, + 0x72, 0x23, 0xa7, 0x08, 0x71, 0x08, 0x60, 0x1f, 0x40, 0x5c, 0xf9, 0x07, 0xd0, 0xab, 0xaa, 0xee, + 0xe9, 0xdd, 0x8d, 0xbd, 0x3b, 0x04, 0x5f, 0x76, 0xab, 0x5e, 0xbd, 0xf7, 0xea, 0xf7, 0x3e, 0xea, + 0xbd, 0xd7, 0x03, 0xd7, 0x79, 0xf8, 0x01, 0x73, 0x53, 0x7e, 0xcc, 0x86, 0x51, 0x42, 0x5d, 0x9f, + 0x0d, 0x8f, 0x6f, 0x4d, 0x58, 0x4a, 0x6f, 0xe9, 0xed, 0x20, 0x4e, 0xa2, 0x34, 0x22, 0xdd, 0x9c, + 0x6d, 0xa0, 0xe9, 0x9a, 0xed, 0xda, 0xe6, 0x61, 0x74, 0x18, 0x49, 0xa6, 0x21, 0xae, 0x14, 0xff, + 0xb5, 0x9e, 0x1b, 0x89, 0x20, 0x12, 0xc3, 0x09, 0x15, 0x4b, 0x8d, 0x6e, 0xc4, 0x43, 0x7d, 0x7e, + 0x89, 0x06, 0x3c, 0x8c, 0x86, 0xf2, 0xaf, 0x22, 0xd9, 0xf7, 0xa1, 0xb6, 0x4f, 0x13, 0x1a, 0x08, + 0xf2, 0x26, 0xb4, 0xe3, 0x45, 0x3a, 0x1b, 0xbb, 0x51, 0x98, 0x26, 0xd4, 0x4d, 0xbb, 0xc6, 0xb6, + 0xd1, 0x37, 0x9d, 0x16, 0x12, 0x77, 0x35, 0xed, 0xdd, 0x2b, 0xff, 0xfa, 0xf5, 0x96, 0xf1, 0xf3, + 0x7f, 0xfe, 0xe6, 0x46, 0x5b, 0xe3, 0x56, 0xc2, 0xf6, 0x11, 0xc0, 0xfb, 0x92, 0x30, 0x0a, 0xa7, + 0x11, 0xb9, 0x02, 0x35, 0xb1, 0x08, 0x26, 0x91, 0xaf, 0x75, 0xe8, 0x1d, 0xb9, 0x0f, 0x4d, 0x25, + 0x36, 0x4e, 0x17, 0x31, 0xeb, 0x96, 0xb6, 0x8d, 0x7e, 0xe7, 0xf6, 0x37, 0x06, 0x2f, 0xb2, 0x72, + 0xa0, 0x54, 0x3e, 0x5a, 0xc4, 0xcc, 0x81, 0x28, 0x5f, 0xdb, 0x9f, 0x1b, 0xb0, 0xb1, 0x3b, 0xa3, + 0x3c, 0xf4, 0x79, 0x78, 0xb4, 0x9f, 0x70, 0x97, 0x1d, 0xa4, 0x34, 0x65, 0xe4, 0x6b, 0x50, 0x9f, + 0x32, 0xe6, 0x8d, 0xb9, 0x97, 0xdd, 0x8b, 0xdb, 0x91, 0x47, 0xbe, 0x03, 0x35, 0x1a, 0x8a, 0x8f, + 0x58, 0x22, 0xaf, 0x34, 0x77, 0xde, 0xfc, 0xf4, 0x8b, 0xad, 0xb5, 0xbf, 0x7e, 0xb1, 0xf5, 0x9a, + 0xf2, 0x97, 0xf0, 0x8e, 0x06, 0x3c, 0x1a, 0x06, 0x34, 0x9d, 0x0d, 0xf6, 0xd8, 0x21, 0x75, 0x17, + 0xf7, 0x98, 0xeb, 0x68, 0x11, 0xf2, 0x3a, 0x98, 0x29, 0x0f, 0x98, 0x48, 0x69, 0x10, 0x77, 0xcb, + 0xdb, 0x46, 0xbf, 0xe2, 0x2c, 0x09, 0xe4, 0x21, 0x34, 0x63, 0x44, 0x30, 0x16, 0x08, 0xa1, 0x5b, + 0xd9, 0x36, 0xfa, 0xcd, 0x97, 0x99, 0xb4, 0x84, 0xbb, 0x53, 0x41, 0x14, 0x0e, 0xc4, 0x39, 0xc5, + 0xfe, 0xb7, 0x01, 0x9d, 0x1d, 0x1a, 0x7a, 0x05, 0x9b, 0x5e, 0xe4, 0xca, 0x5b, 0x50, 0x49, 0xf0, + 0x42, 0x65, 0xd0, 0x1b, 0xda, 0xa0, 0xcb, 0x67, 0x0d, 0x1a, 0x85, 0xa9, 0x23, 0x59, 0xc9, 0xd7, + 0xa1, 0x95, 0x30, 0x11, 0xf9, 0xc7, 0x6c, 0x8c, 0xf8, 0xb5, 0x2d, 0x4d, 0x4d, 0x7b, 0xc4, 0x03, + 0x46, 0xde, 0x00, 0x48, 0xd8, 0x87, 0x73, 0x26, 0xd2, 0xf1, 0xe8, 0x9e, 0x34, 0xa6, 0xe2, 0x98, + 0x9a, 0x32, 0xba, 0x77, 0xda, 0xd8, 0xea, 0x57, 0x32, 0xf6, 0x57, 0x06, 0x74, 0x24, 0xc3, 0x03, + 0xc6, 0x3c, 0x65, 0x2c, 0x81, 0x0a, 0xa6, 0xae, 0x36, 0x55, 0xae, 0xc9, 0x26, 0x54, 0x3f, 0x9c, + 0x47, 0x99, 0xa5, 0x8e, 0xda, 0x60, 0x26, 0x15, 0x91, 0x94, 0x2f, 0x8e, 0xa4, 0x88, 0x81, 0x5c, + 0x83, 0x46, 0xc2, 0x7c, 0xba, 0x60, 0x89, 0xe8, 0x56, 0xb6, 0xcb, 0x7d, 0xd3, 0xc9, 0xf7, 0xf6, + 0x03, 0x68, 0xed, 0x27, 0xd1, 0x31, 0xf7, 0x58, 0x22, 0x93, 0xfa, 0x1a, 0x34, 0x62, 0xbd, 0xd7, + 0x00, 0xf3, 0xfd, 0x09, 0x3d, 0xa5, 0x53, 0x7a, 0xfe, 0x60, 0x40, 0x3b, 0x53, 0xa4, 0x6e, 0x7d, + 0x08, 0xed, 0x4c, 0x72, 0xcc, 0xc3, 0x69, 0x24, 0xd5, 0x35, 0x6f, 0x7f, 0xf3, 0x65, 0xf0, 0x97, + 0x40, 0x9c, 0x56, 0x5c, 0x84, 0xf5, 0x53, 0xb8, 0x9c, 0x2b, 0x2b, 0xb8, 0x44, 0xe1, 0x68, 0xde, + 0x7e, 0xeb, 0x7c, 0xa5, 0x05, 0xdf, 0x6c, 0xc4, 0x67, 0x68, 0xc2, 0x9e, 0x01, 0x39, 0xcb, 0xfa, + 0xc2, 0xc4, 0x7c, 0x17, 0xaa, 0x2a, 0x26, 0xa5, 0x15, 0x62, 0xa2, 0x44, 0xec, 0x3b, 0xe8, 0x29, + 0x9d, 0x11, 0xd2, 0xb8, 0x0b, 0x27, 0x84, 0xfd, 0xb0, 0x90, 0x4c, 0x72, 0x41, 0xee, 0x40, 0x55, + 0xfa, 0x43, 0x09, 0x5f, 0xec, 0xcd, 0x2b, 0x09, 0xfb, 0xf7, 0x06, 0x90, 0xdd, 0x88, 0x87, 0x78, + 0x5f, 0xc1, 0x64, 0x02, 0x95, 0x23, 0x1e, 0x66, 0xc5, 0x45, 0xae, 0x4f, 0x56, 0x87, 0xd2, 0xe9, + 0xea, 0x60, 0x41, 0xf9, 0x88, 0x2d, 0x64, 0x7a, 0x9a, 0x0e, 0x2e, 0x11, 0xfd, 0x31, 0xf5, 0xe7, + 0x4c, 0x3f, 0x2e, 0xb5, 0xf9, 0xff, 0x3e, 0xac, 0x3f, 0x1b, 0xb0, 0x7e, 0x90, 0x46, 0x49, 0xb1, + 0x34, 0x9e, 0x80, 0x69, 0x9c, 0x86, 0xb9, 0x8c, 0x65, 0xe9, 0x44, 0x2c, 0xef, 0x64, 0x60, 0xcb, + 0x2b, 0xb8, 0xf0, 0x15, 0x58, 0xf4, 0x3b, 0x03, 0xa0, 0x60, 0xcc, 0xff, 0x1e, 0x59, 0xf2, 0x43, + 0xb0, 0xdc, 0x79, 0x30, 0xf7, 0x29, 0x62, 0x50, 0xef, 0x65, 0x95, 0x9e, 0xb0, 0xbe, 0x14, 0x56, + 0x49, 0x76, 0xa6, 0x39, 0x94, 0x0b, 0x7e, 0xb5, 0x3f, 0x2f, 0x41, 0x67, 0x7f, 0x91, 0xce, 0x0a, + 0xd8, 0xaf, 0x62, 0x15, 0x41, 0xbf, 0xe4, 0x4d, 0xaa, 0x2e, 0xf7, 0x23, 0x8f, 0xbc, 0x07, 0x26, + 0x0b, 0xe8, 0xea, 0xa0, 0x1a, 0x2c, 0xa0, 0x0a, 0xcd, 0xf7, 0x00, 0xd7, 0xd8, 0xc1, 0xa7, 0xab, + 0x84, 0xac, 0xce, 0x02, 0xba, 0x1b, 0x85, 0x53, 0xf2, 0x6d, 0xa8, 0x48, 0xd9, 0xca, 0xc5, 0x65, + 0xa5, 0x00, 0xb6, 0x96, 0x78, 0x3e, 0xf1, 0xb9, 0x98, 0xa9, 0xd6, 0x52, 0x55, 0xad, 0x45, 0xd3, + 0x64, 0x6b, 0x39, 0x95, 0x10, 0xb5, 0xaf, 0x94, 0x10, 0x1f, 0x97, 0xe1, 0x12, 0x36, 0x4a, 0x35, + 0x20, 0x38, 0xaa, 0x41, 0x15, 0xbb, 0x97, 0xf6, 0x6e, 0xa1, 0x7b, 0x79, 0xa4, 0x0f, 0x96, 0x9e, + 0x3e, 0x84, 0x9b, 0xf0, 0x58, 0x32, 0x95, 0x64, 0xc8, 0x3a, 0x8a, 0x7e, 0x20, 0xc9, 0x23, 0x8f, + 0x74, 0xa1, 0xae, 0x5e, 0x80, 0xe8, 0x96, 0x65, 0x35, 0xcf, 0xb6, 0xe4, 0x35, 0x30, 0xa9, 0x38, + 0x1a, 0xbb, 0xd1, 0x3c, 0x4c, 0xf5, 0x13, 0x6e, 0x50, 0x71, 0xb4, 0x8b, 0x7b, 0x3c, 0x0c, 0x78, + 0xa8, 0x0f, 0x95, 0x0b, 0x1a, 0x01, 0x0f, 0xd5, 0xe1, 0x0c, 0xcc, 0x29, 0x63, 0x63, 0x9f, 0x07, + 0x3c, 0xed, 0xd6, 0x64, 0x6d, 0xbe, 0x3a, 0x50, 0x9e, 0x1d, 0x60, 0x9d, 0xc9, 0x0d, 0xc7, 0xc2, + 0xb3, 0x73, 0x13, 0x4d, 0xfe, 0xe4, 0x6f, 0x5b, 0xfd, 0x43, 0x9e, 0xce, 0xe6, 0x93, 0x81, 0x1b, + 0x05, 0x43, 0x3d, 0xdc, 0xa9, 0x7f, 0x6f, 0x0b, 0xef, 0x68, 0x88, 0x53, 0x94, 0x90, 0x02, 0xc2, + 0x69, 0x4c, 0x19, 0xdb, 0x43, 0xe5, 0x64, 0x0b, 0x3d, 0xcd, 0x62, 0x9a, 0xb0, 0xf1, 0x21, 0x15, + 0xdd, 0xba, 0x04, 0x02, 0x9a, 0xf4, 0x7d, 0x2a, 0x90, 0x81, 0x3d, 0x61, 0xee, 0x3c, 0x55, 0x0c, + 0x0d, 0xc5, 0xa0, 0x49, 0xc8, 0xd0, 0x07, 0x0b, 0x0d, 0x11, 0xd1, 0x3c, 0x71, 0x99, 0xb6, 0xc7, + 0x94, 0x5c, 0x9d, 0x80, 0x87, 0x07, 0x92, 0x2c, 0xad, 0xb2, 0x3f, 0x2e, 0x41, 0x1b, 0x03, 0x31, + 0xda, 0xd9, 0xd5, 0x63, 0x64, 0x1f, 0xac, 0x09, 0x0d, 0xbd, 0x31, 0x9f, 0xb8, 0x63, 0x16, 0xd2, + 0x89, 0xcf, 0x54, 0x28, 0x1a, 0x4e, 0x07, 0xe9, 0xa3, 0x89, 0x7b, 0x5f, 0x51, 0xc9, 0x4d, 0xd8, + 0x44, 0xa6, 0x3c, 0x64, 0x61, 0xca, 0x92, 0x63, 0xea, 0xeb, 0x98, 0x10, 0x3e, 0x71, 0x75, 0x60, + 0x47, 0xfa, 0x84, 0xbc, 0x05, 0x48, 0xcd, 0x71, 0xcd, 0x68, 0x18, 0x32, 0x5f, 0x57, 0x57, 0x8b, + 0x4f, 0x5c, 0x8d, 0x4c, 0xd1, 0xd1, 0x4c, 0xe4, 0x3e, 0x66, 0x89, 0xe0, 0x51, 0xa8, 0x92, 0xda, + 0x01, 0x3e, 0x71, 0x7f, 0xa4, 0x28, 0xa4, 0xa7, 0x18, 0xe2, 0x28, 0x91, 0xb9, 0x50, 0x95, 0x0c, + 0x26, 0x9f, 0xb8, 0xfb, 0x51, 0x82, 0x69, 0x70, 0x03, 0x2e, 0xf9, 0x32, 0xd1, 0xc7, 0x3a, 0x6f, + 0xb8, 0x27, 0x64, 0xe8, 0xca, 0xce, 0xba, 0x3a, 0xd0, 0x33, 0xaf, 0x27, 0xec, 0x5f, 0x18, 0xb0, + 0x79, 0x20, 0x93, 0x44, 0x26, 0xee, 0xa3, 0xbc, 0xb6, 0x7e, 0x17, 0x6a, 0x4a, 0x5a, 0x7a, 0xe1, + 0xa2, 0xe3, 0xae, 0x96, 0xc1, 0x94, 0x52, 0xa9, 0x97, 0x25, 0xab, 0xe9, 0x34, 0x14, 0x61, 0xe4, + 0x9d, 0x53, 0x7c, 0x16, 0xb0, 0xb1, 0x47, 0x45, 0x7a, 0x12, 0x8e, 0x20, 0x13, 0xb8, 0xec, 0x53, + 0x91, 0xea, 0x59, 0x21, 0x67, 0x17, 0x5d, 0x43, 0xe6, 0xe4, 0xe0, 0xc5, 0xf0, 0xbe, 0xcc, 0x3c, + 0x67, 0xc3, 0x3f, 0x7b, 0x87, 0xfd, 0x27, 0x03, 0x67, 0x27, 0xee, 0x32, 0x87, 0xb9, 0x51, 0xe2, + 0x89, 0x57, 0xe9, 0x84, 0x1f, 0xc3, 0xa6, 0x8f, 0x63, 0x4a, 0x66, 0x51, 0xa2, 0xae, 0x94, 0x0f, + 0xb7, 0x79, 0xfb, 0xfa, 0x39, 0x05, 0x46, 0x01, 0x74, 0x88, 0x52, 0x51, 0xc4, 0x6c, 0x4f, 0xa1, + 0x59, 0xd8, 0x9f, 0xed, 0xa0, 0x45, 0x67, 0x2f, 0x5b, 0x52, 0x69, 0xe5, 0x61, 0xe3, 0x3f, 0x65, + 0x20, 0x3f, 0x60, 0x29, 0xf5, 0x68, 0x4a, 0xb1, 0xba, 0x71, 0x91, 0x72, 0x57, 0x3e, 0xd2, 0xc3, + 0x24, 0x9a, 0xc7, 0xfa, 0xf9, 0xe1, 0x8d, 0x6d, 0x07, 0x24, 0x49, 0x15, 0x94, 0x01, 0x6c, 0x68, + 0x5b, 0xc7, 0x82, 0x06, 0x31, 0x96, 0x35, 0xfe, 0x54, 0x01, 0x68, 0x3b, 0x97, 0xf4, 0xd1, 0x81, + 0x3c, 0x39, 0xe0, 0x4f, 0x19, 0x16, 0xf7, 0x80, 0xd1, 0x70, 0x95, 0xc6, 0x20, 0x05, 0x50, 0x30, + 0xfd, 0x88, 0xc6, 0x2b, 0x75, 0x05, 0x14, 0x20, 0xdf, 0x82, 0xf5, 0x29, 0x4f, 0x44, 0xba, 0xcc, + 0x32, 0xf9, 0xc6, 0xca, 0x4e, 0x47, 0x92, 0x97, 0x6f, 0xe4, 0x3a, 0x74, 0x64, 0x4e, 0x2e, 0xf9, + 0x6a, 0x92, 0xaf, 0x8d, 0xd4, 0x25, 0xdb, 0x7b, 0xaa, 0xbe, 0x2a, 0x47, 0xd7, 0x57, 0x68, 0x90, + 0x01, 0x0f, 0x55, 0x83, 0x44, 0x0d, 0xf4, 0x89, 0xd6, 0xd0, 0x58, 0x45, 0x03, 0x7d, 0xa2, 0x34, + 0x3c, 0x80, 0x56, 0xc0, 0x3c, 0x4e, 0x33, 0x18, 0xe6, 0xc5, 0x95, 0x34, 0x95, 0xa0, 0xd4, 0x63, + 0xff, 0xc3, 0x00, 0x4b, 0xae, 0xee, 0xa6, 0x98, 0x79, 0x34, 0xc5, 0x82, 0xf4, 0x92, 0xe1, 0x60, + 0xb3, 0x98, 0x60, 0xe5, 0x6c, 0x9c, 0x21, 0xba, 0x61, 0xab, 0x4f, 0x39, 0xd5, 0x8b, 0x09, 0x54, + 0xd8, 0x93, 0x38, 0x92, 0xe1, 0xaa, 0x3a, 0x72, 0x8d, 0x2f, 0x68, 0x39, 0x5a, 0xa8, 0x18, 0x2c, + 0xa7, 0x86, 0xab, 0x85, 0xa9, 0xa1, 0x26, 0x15, 0xe5, 0x03, 0x81, 0x3e, 0x92, 0xfa, 0xea, 0x52, + 0x1f, 0x1e, 0xdd, 0x47, 0x95, 0xa7, 0x5b, 0x7e, 0x43, 0x6a, 0x2d, 0xb6, 0x7c, 0xfb, 0x67, 0x60, + 0xde, 0x15, 0x82, 0xa5, 0xfb, 0x94, 0x27, 0xa8, 0x8a, 0xe2, 0xa6, 0x60, 0x9b, 0xdc, 0x8f, 0x3c, + 0xf2, 0x18, 0xda, 0x82, 0x1f, 0x86, 0xcc, 0x53, 0x00, 0xb3, 0x4f, 0x97, 0x9b, 0x2f, 0x29, 0x45, + 0x92, 0x5d, 0xc2, 0x7f, 0x7f, 0x9a, 0xdf, 0xe1, 0xb4, 0xc4, 0x92, 0x2e, 0xec, 0xdf, 0x1a, 0x70, + 0xe5, 0xcb, 0x19, 0xe5, 0x6f, 0x1d, 0x0a, 0x28, 0x4b, 0xc6, 0x38, 0xa1, 0x67, 0xbf, 0x75, 0x64, + 0xc4, 0x87, 0x6c, 0x71, 0xce, 0x68, 0x9f, 0xbf, 0xf8, 0xf2, 0xca, 0x43, 0xe8, 0xeb, 0x60, 0x22, + 0x50, 0x9a, 0xce, 0x13, 0xf5, 0x1d, 0xd0, 0x72, 0x96, 0x84, 0x1b, 0x9f, 0x18, 0xd9, 0x6f, 0x29, + 0x58, 0x04, 0xc9, 0x3a, 0x34, 0x1f, 0x87, 0x22, 0x66, 0x2e, 0x9f, 0x72, 0xe6, 0x59, 0x6b, 0xa4, + 0x01, 0x15, 0xec, 0xb8, 0x96, 0x41, 0xda, 0x60, 0xe6, 0xdf, 0x3c, 0x56, 0x89, 0xb4, 0xa0, 0x91, + 0x7d, 0xb4, 0x58, 0x65, 0x3c, 0xcc, 0x7f, 0x23, 0xb1, 0x2a, 0xc4, 0x84, 0xaa, 0x43, 0x9f, 0x46, + 0x89, 0x55, 0x25, 0x75, 0x28, 0xdf, 0xe3, 0xd4, 0xaa, 0xa1, 0xa6, 0xbb, 0xfb, 0xa3, 0x77, 0xac, + 0x3a, 0x92, 0x1e, 0x07, 0xd4, 0x6a, 0x20, 0x09, 0x07, 0x56, 0xcb, 0x24, 0x4d, 0xa8, 0xeb, 0xc6, + 0x6e, 0x01, 0xaa, 0xce, 0x3e, 0x01, 0xad, 0x26, 0xea, 0x92, 0xdf, 0x17, 0x56, 0x6b, 0xe7, 0x83, + 0x4f, 0x9f, 0xf5, 0x8c, 0xcf, 0x9e, 0xf5, 0x8c, 0xbf, 0x3f, 0xeb, 0x19, 0xbf, 0x7c, 0xde, 0x5b, + 0xfb, 0xe3, 0xf3, 0x9e, 0xf1, 0xd9, 0xf3, 0xde, 0xda, 0x5f, 0x9e, 0xf7, 0xd6, 0x7e, 0xb2, 0x57, + 0x98, 0x5e, 0x46, 0x59, 0x2c, 0xf7, 0xe8, 0x44, 0x0c, 0xf3, 0xc8, 0xbe, 0xed, 0x46, 0x09, 0x2b, + 0x6e, 0x11, 0xf3, 0x30, 0x88, 0xbc, 0xb9, 0xcf, 0x44, 0xf6, 0xe3, 0x98, 0x9c, 0x73, 0x26, 0x35, + 0xf9, 0x8b, 0xd5, 0x3b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xe6, 0xeb, 0x89, 0x3d, 0x13, + 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -2102,6 +2302,61 @@ func (m *CoinbasePriceState) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *StorkPriceState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StorkPriceState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *StorkPriceState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.PriceState.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintOracle(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size := m.Value.Size() + i -= size + if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintOracle(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Symbol) > 0 { + i -= len(m.Symbol) + copy(dAtA[i:], m.Symbol) + i = encodeVarintOracle(dAtA, i, uint64(len(m.Symbol))) + i-- + dAtA[i] = 0x12 + } + if m.Timestamp != 0 { + i = encodeVarintOracle(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *PriceState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2327,21 +2582,21 @@ func (m *BandIBCParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.LegacyOracleIds) > 0 { - dAtA9 := make([]byte, len(m.LegacyOracleIds)*10) - var j8 int + dAtA10 := make([]byte, len(m.LegacyOracleIds)*10) + var j9 int for _, num1 := range m.LegacyOracleIds { num := uint64(num1) for num >= 1<<7 { - dAtA9[j8] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j8++ + j9++ } - dAtA9[j8] = uint8(num) - j8++ + dAtA10[j9] = uint8(num) + j9++ } - i -= j8 - copy(dAtA[i:], dAtA9[:j8]) - i = encodeVarintOracle(dAtA, i, uint64(j8)) + i -= j9 + copy(dAtA[i:], dAtA10[:j9]) + i = encodeVarintOracle(dAtA, i, uint64(j9)) i-- dAtA[i] = 0x32 } @@ -2706,6 +2961,102 @@ func (m *PriceAttestation) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *AssetPair) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AssetPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AssetPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.SignedPrices) > 0 { + for iNdEx := len(m.SignedPrices) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.SignedPrices[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintOracle(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.AssetId) > 0 { + i -= len(m.AssetId) + copy(dAtA[i:], m.AssetId) + i = encodeVarintOracle(dAtA, i, uint64(len(m.AssetId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SignedPriceOfAssetPair) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SignedPriceOfAssetPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SignedPriceOfAssetPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Signature) > 0 { + i -= len(m.Signature) + copy(dAtA[i:], m.Signature) + i = encodeVarintOracle(dAtA, i, uint64(len(m.Signature))) + i-- + dAtA[i] = 0x22 + } + { + size := m.Price.Size() + i -= size + if _, err := m.Price.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintOracle(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.Timestamp != 0 { + i = encodeVarintOracle(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x10 + } + if len(m.PublisherKey) > 0 { + i -= len(m.PublisherKey) + copy(dAtA[i:], m.PublisherKey) + i = encodeVarintOracle(dAtA, i, uint64(len(m.PublisherKey))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintOracle(dAtA []byte, offset int, v uint64) int { offset -= sovOracle(v) base := offset @@ -2924,7 +3275,27 @@ func (m *CoinbasePriceState) Size() (n int) { return n } -func (m *PriceState) Size() (n int) { +func (m *StorkPriceState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Timestamp != 0 { + n += 1 + sovOracle(uint64(m.Timestamp)) + } + l = len(m.Symbol) + if l > 0 { + n += 1 + l + sovOracle(uint64(l)) + } + l = m.Value.Size() + n += 1 + l + sovOracle(uint64(l)) + l = m.PriceState.Size() + n += 1 + l + sovOracle(uint64(l)) + return n +} + +func (m *PriceState) Size() (n int) { if m == nil { return 0 } @@ -3175,6 +3546,47 @@ func (m *PriceAttestation) Size() (n int) { return n } +func (m *AssetPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AssetId) + if l > 0 { + n += 1 + l + sovOracle(uint64(l)) + } + if len(m.SignedPrices) > 0 { + for _, e := range m.SignedPrices { + l = e.Size() + n += 1 + l + sovOracle(uint64(l)) + } + } + return n +} + +func (m *SignedPriceOfAssetPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PublisherKey) + if l > 0 { + n += 1 + l + sovOracle(uint64(l)) + } + if m.Timestamp != 0 { + n += 1 + sovOracle(uint64(m.Timestamp)) + } + l = m.Price.Size() + n += 1 + l + sovOracle(uint64(l)) + l = len(m.Signature) + if l > 0 { + n += 1 + l + sovOracle(uint64(l)) + } + return n +} + func sovOracle(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -4636,6 +5048,174 @@ func (m *CoinbasePriceState) Unmarshal(dAtA []byte) error { } return nil } +func (m *StorkPriceState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StorkPriceState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StorkPriceState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + m.Timestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Timestamp |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Symbol", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + 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 ErrInvalidLengthOracle + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Symbol = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + 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 ErrInvalidLengthOracle + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PriceState", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthOracle + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PriceState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipOracle(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthOracle + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PriceState) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -6472,6 +7052,291 @@ func (m *PriceAttestation) Unmarshal(dAtA []byte) error { } return nil } +func (m *AssetPair) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AssetPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AssetPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AssetId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + 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 ErrInvalidLengthOracle + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SignedPrices", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthOracle + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SignedPrices = append(m.SignedPrices, &SignedPriceOfAssetPair{}) + if err := m.SignedPrices[len(m.SignedPrices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipOracle(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthOracle + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SignedPriceOfAssetPair) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SignedPriceOfAssetPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SignedPriceOfAssetPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PublisherKey", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + 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 ErrInvalidLengthOracle + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PublisherKey = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + m.Timestamp = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Timestamp |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Price", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + 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 ErrInvalidLengthOracle + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Price.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signature", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowOracle + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthOracle + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthOracle + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signature = append(m.Signature[:0], dAtA[iNdEx:postIndex]...) + if m.Signature == nil { + m.Signature = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipOracle(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthOracle + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipOracle(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/oracle/types/params.go b/chain/oracle/types/params.go index 9c31dca2..32aabfb1 100644 --- a/chain/oracle/types/params.go +++ b/chain/oracle/types/params.go @@ -3,6 +3,7 @@ package types import ( "fmt" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -10,7 +11,7 @@ import ( var _ paramtypes.ParamSet = &Params{} var ( - LargestDecPrice sdk.Dec = sdk.MustNewDecFromStr("10000000") + LargestDecPrice = math.LegacyMustNewDecFromStr("10000000") ) const ( diff --git a/chain/oracle/types/proposal.go b/chain/oracle/types/proposal.go index 20009528..2a6e8ce2 100644 --- a/chain/oracle/types/proposal.go +++ b/chain/oracle/types/proposal.go @@ -1,6 +1,7 @@ package types import ( + "fmt" "strings" "cosmossdk.io/errors" @@ -9,6 +10,7 @@ import ( govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" bandobi "github.com/bandprotocol/bandchain-packet/obi" + "github.com/ethereum/go-ethereum/common" bandprice "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/hooks/price" bandoracle "github.com/InjectiveLabs/sdk-go/chain/oracle/bandchain/oracle/types" @@ -25,6 +27,8 @@ const ( ProposalEnableBandIBC string = "ProposalTypeEnableBandIBC" ProposalTypeGrantProviderPrivilege string = "ProposalTypeGrantProviderPrivilege" ProposalTypeRevokeProviderPrivilege string = "ProposalTypeRevokeProviderPrivilege" + ProposalTypeGrantStorkPublisherPrivilege string = "ProposalTypeGrantStorkPublisherPrivilege" + ProposalTypeRevokeStorkPublisherPrivilege string = "ProposalTypeRevokeStorkPublisherPrivilege" ) func init() { @@ -37,6 +41,8 @@ func init() { govtypes.RegisterProposalType(ProposalUpdateBandOracleRequest) govtypes.RegisterProposalType(ProposalTypeGrantProviderPrivilege) govtypes.RegisterProposalType(ProposalTypeRevokeProviderPrivilege) + govtypes.RegisterProposalType(ProposalTypeGrantStorkPublisherPrivilege) + govtypes.RegisterProposalType(ProposalTypeRevokeStorkPublisherPrivilege) } // Implements Proposal Interface @@ -49,6 +55,8 @@ var _ govtypes.Content = &UpdateBandOracleRequestProposal{} var _ govtypes.Content = &EnableBandIBCProposal{} var _ govtypes.Content = &GrantProviderPrivilegeProposal{} var _ govtypes.Content = &RevokeProviderPrivilegeProposal{} +var _ govtypes.Content = &GrantStorkPublisherPrivilegeProposal{} +var _ govtypes.Content = &RevokeStorkPublisherPrivilegeProposal{} // GetTitle returns the title of this proposal. func (p *GrantBandOraclePrivilegeProposal) GetTitle() string { @@ -415,3 +423,61 @@ func (p *UpdateBandOracleRequestProposal) ValidateBasic() error { return govtypes.ValidateAbstract(p) } + +// GetTitle returns the title of this proposal. +func (p *GrantStorkPublisherPrivilegeProposal) GetTitle() string { + return p.Title +} + +// GetDescription returns the description of this proposal. +func (p *GrantStorkPublisherPrivilegeProposal) GetDescription() string { + return p.Description +} + +// ProposalRoute returns router key of this proposal. +func (p *GrantStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey } + +// ProposalType returns proposal type of this proposal. +func (p *GrantStorkPublisherPrivilegeProposal) ProposalType() string { + return ProposalTypeGrantBandOraclePrivilege +} + +// ValidateBasic returns ValidateBasic result of this proposal. +func (p *GrantStorkPublisherPrivilegeProposal) ValidateBasic() error { + for _, publisher := range p.StorkPublishers { + if !common.IsHexAddress(publisher) { + return fmt.Errorf("invalid publisher address: %s", publisher) + } + } + + return nil +} + +// GetTitle returns the title of this proposal. +func (p *RevokeStorkPublisherPrivilegeProposal) GetTitle() string { + return p.Title +} + +// GetDescription returns the description of this proposal. +func (p *RevokeStorkPublisherPrivilegeProposal) GetDescription() string { + return p.Description +} + +// ProposalRoute returns router key of this proposal. +func (p *RevokeStorkPublisherPrivilegeProposal) ProposalRoute() string { return RouterKey } + +// ProposalType returns proposal type of this proposal. +func (p *RevokeStorkPublisherPrivilegeProposal) ProposalType() string { + return ProposalTypeGrantBandOraclePrivilege +} + +// ValidateBasic returns ValidateBasic result of this proposal. +func (p *RevokeStorkPublisherPrivilegeProposal) ValidateBasic() error { + for _, publisher := range p.StorkPublishers { + if !common.IsHexAddress(publisher) { + return fmt.Errorf("invalid publisher address: %s", publisher) + } + } + + return nil +} diff --git a/chain/oracle/types/proposal.pb.go b/chain/oracle/types/proposal.pb.go index 2606c3f3..ee61f7b4 100644 --- a/chain/oracle/types/proposal.pb.go +++ b/chain/oracle/types/proposal.pb.go @@ -7,6 +7,7 @@ import ( fmt "fmt" _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -383,6 +384,84 @@ func (m *EnableBandIBCProposal) XXX_DiscardUnknown() { var xxx_messageInfo_EnableBandIBCProposal proto.InternalMessageInfo +type GrantStorkPublisherPrivilegeProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + StorkPublishers []string `protobuf:"bytes,3,rep,name=stork_publishers,json=storkPublishers,proto3" json:"stork_publishers,omitempty"` +} + +func (m *GrantStorkPublisherPrivilegeProposal) Reset() { *m = GrantStorkPublisherPrivilegeProposal{} } +func (m *GrantStorkPublisherPrivilegeProposal) String() string { return proto.CompactTextString(m) } +func (*GrantStorkPublisherPrivilegeProposal) ProtoMessage() {} +func (*GrantStorkPublisherPrivilegeProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_c5a187f865fd0c5b, []int{9} +} +func (m *GrantStorkPublisherPrivilegeProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GrantStorkPublisherPrivilegeProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GrantStorkPublisherPrivilegeProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GrantStorkPublisherPrivilegeProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrantStorkPublisherPrivilegeProposal.Merge(m, src) +} +func (m *GrantStorkPublisherPrivilegeProposal) XXX_Size() int { + return m.Size() +} +func (m *GrantStorkPublisherPrivilegeProposal) XXX_DiscardUnknown() { + xxx_messageInfo_GrantStorkPublisherPrivilegeProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_GrantStorkPublisherPrivilegeProposal proto.InternalMessageInfo + +type RevokeStorkPublisherPrivilegeProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + StorkPublishers []string `protobuf:"bytes,3,rep,name=stork_publishers,json=storkPublishers,proto3" json:"stork_publishers,omitempty"` +} + +func (m *RevokeStorkPublisherPrivilegeProposal) Reset() { *m = RevokeStorkPublisherPrivilegeProposal{} } +func (m *RevokeStorkPublisherPrivilegeProposal) String() string { return proto.CompactTextString(m) } +func (*RevokeStorkPublisherPrivilegeProposal) ProtoMessage() {} +func (*RevokeStorkPublisherPrivilegeProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_c5a187f865fd0c5b, []int{10} +} +func (m *RevokeStorkPublisherPrivilegeProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RevokeStorkPublisherPrivilegeProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RevokeStorkPublisherPrivilegeProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RevokeStorkPublisherPrivilegeProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_RevokeStorkPublisherPrivilegeProposal.Merge(m, src) +} +func (m *RevokeStorkPublisherPrivilegeProposal) XXX_Size() int { + return m.Size() +} +func (m *RevokeStorkPublisherPrivilegeProposal) XXX_DiscardUnknown() { + xxx_messageInfo_RevokeStorkPublisherPrivilegeProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_RevokeStorkPublisherPrivilegeProposal proto.InternalMessageInfo + func init() { proto.RegisterType((*GrantBandOraclePrivilegeProposal)(nil), "injective.oracle.v1beta1.GrantBandOraclePrivilegeProposal") proto.RegisterType((*RevokeBandOraclePrivilegeProposal)(nil), "injective.oracle.v1beta1.RevokeBandOraclePrivilegeProposal") @@ -393,6 +472,8 @@ func init() { proto.RegisterType((*AuthorizeBandOracleRequestProposal)(nil), "injective.oracle.v1beta1.AuthorizeBandOracleRequestProposal") proto.RegisterType((*UpdateBandOracleRequestProposal)(nil), "injective.oracle.v1beta1.UpdateBandOracleRequestProposal") proto.RegisterType((*EnableBandIBCProposal)(nil), "injective.oracle.v1beta1.EnableBandIBCProposal") + proto.RegisterType((*GrantStorkPublisherPrivilegeProposal)(nil), "injective.oracle.v1beta1.GrantStorkPublisherPrivilegeProposal") + proto.RegisterType((*RevokeStorkPublisherPrivilegeProposal)(nil), "injective.oracle.v1beta1.RevokeStorkPublisherPrivilegeProposal") } func init() { @@ -400,44 +481,54 @@ func init() { } var fileDescriptor_c5a187f865fd0c5b = []byte{ - // 592 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4f, 0x6f, 0xd3, 0x3e, - 0x18, 0x8e, 0xb7, 0xee, 0xf7, 0xdb, 0x3c, 0x21, 0x50, 0xd8, 0xa4, 0xd0, 0x43, 0xda, 0x55, 0x82, - 0x4d, 0x82, 0x25, 0x1a, 0xdc, 0xb8, 0xd1, 0x09, 0x50, 0xc5, 0x24, 0xa6, 0x48, 0xbb, 0x70, 0x89, - 0x9c, 0xe4, 0xa5, 0x33, 0xa4, 0x71, 0x66, 0x3b, 0x91, 0xc6, 0x27, 0xe0, 0xb8, 0x4f, 0x00, 0xfb, - 0x10, 0x1c, 0xe0, 0x1b, 0x8c, 0x1d, 0xd0, 0xb8, 0x71, 0x42, 0x68, 0xbd, 0xf0, 0x31, 0x50, 0x6d, - 0xa7, 0xb4, 0x42, 0x43, 0xa5, 0x1b, 0x02, 0x6e, 0x79, 0xff, 0xf8, 0x79, 0x9f, 0xe7, 0xb1, 0x63, - 0xe3, 0x55, 0x9a, 0x3d, 0x83, 0x58, 0xd2, 0x12, 0x7c, 0xc6, 0x49, 0x9c, 0x82, 0x5f, 0x6e, 0x44, - 0x20, 0xc9, 0x86, 0x9f, 0x73, 0x96, 0x33, 0x41, 0x52, 0x2f, 0xe7, 0x4c, 0x32, 0xdb, 0x19, 0x36, - 0x7a, 0xba, 0xd1, 0x33, 0x8d, 0x75, 0x37, 0x66, 0xa2, 0xc7, 0x84, 0x1f, 0x11, 0xf1, 0x7d, 0x75, - 0xcc, 0x68, 0xa6, 0x57, 0xd6, 0xaf, 0xe9, 0x7a, 0xa8, 0x22, 0x5f, 0x07, 0xa6, 0xb4, 0xd4, 0x65, - 0x5d, 0xa6, 0xf3, 0x83, 0x2f, 0x93, 0xbd, 0x7e, 0x26, 0x27, 0x33, 0x59, 0xb5, 0xb5, 0x5e, 0x21, - 0xdc, 0x7c, 0xc8, 0x49, 0x26, 0xdb, 0x24, 0x4b, 0x1e, 0xab, 0xca, 0x36, 0xa7, 0x25, 0x4d, 0xa1, - 0x0b, 0xdb, 0x86, 0xbc, 0xbd, 0x84, 0xe7, 0x24, 0x95, 0x29, 0x38, 0xa8, 0x89, 0xd6, 0x16, 0x02, - 0x1d, 0xd8, 0x4d, 0xbc, 0x98, 0x80, 0x88, 0x39, 0xcd, 0x25, 0x65, 0x99, 0x33, 0xa3, 0x6a, 0xa3, - 0x29, 0xbb, 0x8e, 0xe7, 0x39, 0xa4, 0x64, 0x1f, 0xb8, 0x70, 0x66, 0x9b, 0xb3, 0x6b, 0x0b, 0xc1, - 0x30, 0xbe, 0x7b, 0xe3, 0xe5, 0x61, 0xc3, 0xfa, 0x7a, 0xd8, 0xb0, 0x8e, 0xdf, 0xac, 0xd7, 0x8d, - 0x9e, 0x2e, 0x2b, 0x2b, 0x43, 0xbc, 0x4d, 0x96, 0x49, 0xc8, 0x64, 0xeb, 0x35, 0xc2, 0x2b, 0x01, - 0x94, 0xec, 0x39, 0xfc, 0xad, 0x0c, 0xdf, 0x23, 0xbc, 0xa2, 0x2c, 0xdc, 0xe6, 0x34, 0x86, 0x07, - 0x00, 0x09, 0xf0, 0x8b, 0x63, 0x68, 0xe3, 0xda, 0xe0, 0x4c, 0x38, 0xb3, 0xaa, 0xa4, 0xbe, 0x07, - 0x58, 0x7b, 0x05, 0x93, 0xe0, 0xd4, 0x34, 0x96, 0x0a, 0xc6, 0xb4, 0xcc, 0x4d, 0xa9, 0xe5, 0x2d, - 0xc2, 0xae, 0xd1, 0xc2, 0x4a, 0x7a, 0xa1, 0x42, 0xea, 0x78, 0x3e, 0x37, 0xa0, 0x46, 0xcc, 0x30, - 0x1e, 0xa3, 0x5e, 0x9b, 0x92, 0xfa, 0x3b, 0x84, 0x1b, 0xfa, 0xa0, 0xfc, 0x39, 0xee, 0xd3, 0xda, - 0x7e, 0x8c, 0x70, 0xab, 0xe2, 0xfe, 0xcf, 0x9f, 0xa1, 0x8f, 0x08, 0xb7, 0xee, 0x15, 0x72, 0x97, - 0x71, 0xfa, 0x62, 0xe4, 0xa7, 0x0d, 0x60, 0xaf, 0x00, 0x21, 0xcf, 0x2d, 0xe6, 0x11, 0xfe, 0x9f, - 0x6b, 0x28, 0xa5, 0x67, 0xf1, 0xf6, 0x4d, 0xef, 0xac, 0x5b, 0xd5, 0xfb, 0x61, 0x7a, 0xbb, 0x76, - 0xf4, 0xb9, 0x61, 0x05, 0x15, 0xc2, 0xc4, 0x9a, 0x0e, 0x66, 0x70, 0x63, 0x27, 0x4f, 0x88, 0xfc, - 0x0d, 0x82, 0x6e, 0x61, 0x3b, 0x81, 0x14, 0x24, 0x84, 0x86, 0x55, 0x48, 0x13, 0x7d, 0x1b, 0xd5, - 0x82, 0x2b, 0xba, 0x62, 0x46, 0x75, 0x12, 0x61, 0x87, 0x78, 0xb9, 0x50, 0x44, 0x42, 0xad, 0xb5, - 0x5a, 0xa4, 0xf6, 0xf1, 0xd7, 0xcc, 0x08, 0xae, 0x6a, 0xa4, 0xb1, 0xe4, 0xc4, 0x96, 0x7c, 0x40, - 0x78, 0xf9, 0x7e, 0x46, 0xa2, 0x54, 0x59, 0xd2, 0x69, 0x6f, 0x9e, 0xdb, 0x88, 0x1d, 0x7c, 0x39, - 0x22, 0x59, 0x12, 0xd2, 0x28, 0x0e, 0x73, 0xc2, 0x49, 0x4f, 0x98, 0x1d, 0x5e, 0xfd, 0xb9, 0xa8, - 0xc1, 0x6c, 0xd5, 0x6e, 0x76, 0xf7, 0xd2, 0x00, 0xa5, 0x13, 0xc5, 0x3a, 0x39, 0xa9, 0xa0, 0xf6, - 0xd3, 0xa3, 0x53, 0x17, 0x9d, 0x9c, 0xba, 0xe8, 0xcb, 0xa9, 0x8b, 0x0e, 0xfa, 0xae, 0x75, 0xd2, - 0x77, 0xad, 0x4f, 0x7d, 0xd7, 0x7a, 0xb2, 0xd5, 0xa5, 0x72, 0xb7, 0x88, 0xbc, 0x98, 0xf5, 0xfc, - 0x4e, 0xc5, 0x64, 0x8b, 0x44, 0xc2, 0x1f, 0xf2, 0x5a, 0x8f, 0x19, 0x87, 0xd1, 0x70, 0x97, 0xd0, - 0xcc, 0xef, 0xb1, 0xa4, 0x48, 0x41, 0x54, 0x2f, 0xb0, 0xdc, 0xcf, 0x41, 0x44, 0xff, 0xa9, 0x97, - 0xf7, 0xce, 0xb7, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x4e, 0xb4, 0xc2, 0x36, 0x08, 0x00, 0x00, + // 739 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x96, 0x41, 0x4f, 0x13, 0x5b, + 0x14, 0xc7, 0x7b, 0xa1, 0xbc, 0x07, 0x97, 0xbc, 0xc0, 0xeb, 0x83, 0xa4, 0xaf, 0x31, 0xd3, 0x32, + 0x11, 0x01, 0x81, 0x4e, 0xd0, 0x1d, 0x3b, 0x4b, 0x94, 0x34, 0x92, 0x58, 0x07, 0xd1, 0xc4, 0xcd, + 0xe4, 0xce, 0xcc, 0xb5, 0xbd, 0x32, 0x9d, 0x3b, 0xdc, 0x7b, 0xdb, 0x04, 0x3f, 0x81, 0x71, 0xe5, + 0x47, 0xe0, 0x23, 0xb8, 0x70, 0xe7, 0x17, 0x20, 0xc4, 0x05, 0x4b, 0x57, 0x46, 0x5b, 0x13, 0xdd, + 0xb9, 0x33, 0xee, 0x34, 0xbd, 0xf7, 0x4e, 0x6d, 0xd1, 0xd2, 0x0a, 0xa8, 0x6c, 0x9a, 0x39, 0xe7, + 0x9e, 0x39, 0xe7, 0xfc, 0x4e, 0xff, 0x73, 0x66, 0xe0, 0x1c, 0x09, 0x1f, 0x62, 0x4f, 0x90, 0x3a, + 0xb6, 0x28, 0x43, 0x5e, 0x80, 0xad, 0xfa, 0x8a, 0x8b, 0x05, 0x5a, 0xb1, 0x22, 0x46, 0x23, 0xca, + 0x51, 0x90, 0x8f, 0x18, 0x15, 0x34, 0x95, 0x6e, 0x07, 0xe6, 0x55, 0x60, 0x5e, 0x07, 0x66, 0x0c, + 0x8f, 0xf2, 0x2a, 0xe5, 0x96, 0x8b, 0xf8, 0xb7, 0xbb, 0x3d, 0x4a, 0x42, 0x75, 0x67, 0xe6, 0x7f, + 0x75, 0xee, 0x48, 0xcb, 0x52, 0x86, 0x3e, 0x9a, 0x2a, 0xd3, 0x32, 0x55, 0xfe, 0xd6, 0x95, 0xf6, + 0xce, 0xf6, 0xec, 0x49, 0x57, 0x56, 0x61, 0xff, 0xa2, 0x2a, 0x09, 0xa9, 0x25, 0x7f, 0x95, 0xcb, + 0x3c, 0x00, 0x30, 0xb7, 0xce, 0x50, 0x28, 0x0a, 0x28, 0xf4, 0x6f, 0xc9, 0xe0, 0x12, 0x23, 0x75, + 0x12, 0xe0, 0x32, 0x2e, 0x69, 0x9e, 0xd4, 0x14, 0x1c, 0x11, 0x44, 0x04, 0x38, 0x0d, 0x72, 0x60, + 0x7e, 0xcc, 0x56, 0x46, 0x2a, 0x07, 0xc7, 0x7d, 0xcc, 0x3d, 0x46, 0x22, 0x41, 0x68, 0x98, 0x1e, + 0x92, 0x67, 0x9d, 0xae, 0x54, 0x06, 0x8e, 0x32, 0x1c, 0xa0, 0x5d, 0xcc, 0x78, 0x7a, 0x38, 0x37, + 0x3c, 0x3f, 0x66, 0xb7, 0xed, 0x55, 0xfb, 0xf1, 0x5e, 0x36, 0xf1, 0x61, 0x2f, 0x9b, 0x38, 0x78, + 0xbe, 0x9c, 0xd1, 0x88, 0x65, 0x5a, 0x8f, 0x67, 0x94, 0x5f, 0xa3, 0xa1, 0xc0, 0xa1, 0x78, 0xf2, + 0xfe, 0xd9, 0xe5, 0x39, 0xcd, 0xd4, 0xaf, 0x4f, 0xf3, 0x25, 0x80, 0x33, 0x36, 0xae, 0xd3, 0x6d, + 0xfc, 0xbb, 0x69, 0x36, 0x07, 0xa7, 0x99, 0xd7, 0x34, 0x7d, 0x1b, 0x35, 0x3f, 0x01, 0x38, 0x23, + 0x99, 0x4b, 0x8c, 0x78, 0xf8, 0x06, 0xc6, 0x3e, 0x66, 0x67, 0x87, 0x93, 0x82, 0xc9, 0x96, 0xfe, + 0xd2, 0xc3, 0xf2, 0x48, 0x5e, 0xb7, 0x72, 0xed, 0xd4, 0xa8, 0xc0, 0xe9, 0xa4, 0xca, 0x25, 0x8d, + 0x2e, 0xf0, 0x91, 0xd3, 0x83, 0xf7, 0x45, 0x32, 0x1b, 0x00, 0x1a, 0x3a, 0x8a, 0xd6, 0xc9, 0x99, + 0x52, 0x67, 0xe0, 0x68, 0xa4, 0x93, 0x6a, 0xf2, 0xb6, 0xdd, 0xc5, 0x99, 0x3c, 0xc2, 0x59, 0x1a, + 0x9c, 0x73, 0xb6, 0x9b, 0xb3, 0x07, 0x81, 0xf9, 0x0e, 0xc0, 0xac, 0xd2, 0xc0, 0x9f, 0xa3, 0x3c, + 0xfa, 0x6f, 0xde, 0x1e, 0x9c, 0xf2, 0x52, 0x97, 0x8c, 0x7b, 0x63, 0x7e, 0x06, 0xd0, 0x8c, 0x63, + 0xce, 0xad, 0x8a, 0xef, 0x0c, 0xce, 0xbd, 0x70, 0x84, 0xfb, 0x18, 0x19, 0x7f, 0x01, 0xd0, 0xbc, + 0x56, 0x13, 0x15, 0xca, 0xc8, 0xa3, 0x8e, 0x07, 0xdd, 0xc6, 0x3b, 0x35, 0xcc, 0xc5, 0xa9, 0xd1, + 0x6f, 0xc2, 0xbf, 0x99, 0x4a, 0x25, 0xe9, 0xc7, 0xaf, 0x2c, 0xe6, 0x7b, 0xbd, 0x71, 0xf2, 0xdf, + 0x55, 0x2f, 0x24, 0xf7, 0x5f, 0x67, 0x13, 0x76, 0x9c, 0xe1, 0x24, 0x13, 0xe8, 0x8f, 0x66, 0xbe, + 0x18, 0x82, 0xd9, 0xad, 0xc8, 0x47, 0xe2, 0x17, 0xe0, 0x2f, 0xc1, 0x94, 0x8f, 0x03, 0x2c, 0xb0, + 0xa3, 0x19, 0x1c, 0xe2, 0xab, 0xc5, 0x9c, 0xb4, 0x27, 0xd5, 0x89, 0x2e, 0x55, 0xf4, 0x79, 0xca, + 0x81, 0xd3, 0x35, 0xd9, 0x88, 0xa3, 0xba, 0x8f, 0x6f, 0x92, 0x1a, 0xf9, 0xb9, 0xd1, 0xd9, 0xff, + 0xa9, 0x4c, 0x5d, 0xce, 0x93, 0x3c, 0x3a, 0x7d, 0x26, 0x63, 0x7e, 0x04, 0x70, 0xfa, 0x7a, 0x88, + 0xdc, 0x40, 0xc6, 0x14, 0x0b, 0x6b, 0xa7, 0x9e, 0xd9, 0x16, 0x9c, 0x70, 0x51, 0xe8, 0x3b, 0xc4, + 0xf5, 0x9c, 0x08, 0x31, 0x54, 0xe5, 0x5a, 0x3a, 0x73, 0xc7, 0xf3, 0xb7, 0x6a, 0xcb, 0x70, 0x2d, + 0x9b, 0x7f, 0x5a, 0x59, 0x8a, 0xae, 0xa7, 0x9c, 0xab, 0xeb, 0x83, 0xb3, 0x5f, 0xd0, 0xec, 0x3f, + 0xe4, 0x32, 0xdf, 0x02, 0x78, 0x51, 0xae, 0xcd, 0x4d, 0x41, 0xd9, 0x76, 0xa9, 0xe6, 0x06, 0x84, + 0x57, 0xce, 0x72, 0x5d, 0x2c, 0xc0, 0x49, 0xde, 0x4a, 0xed, 0x44, 0x71, 0xee, 0xf8, 0x5d, 0x3e, + 0xc1, 0xbb, 0x4a, 0xf2, 0xd5, 0xbb, 0x83, 0x43, 0x2d, 0x76, 0x6e, 0xfc, 0x3e, 0xad, 0x9b, 0x4d, + 0x00, 0x67, 0xd5, 0xf2, 0x38, 0x07, 0x90, 0xf7, 0x06, 0x87, 0x5c, 0xea, 0x5a, 0x7c, 0x7d, 0x7a, + 0x2f, 0x3c, 0xd8, 0x6f, 0x18, 0xe0, 0xb0, 0x61, 0x80, 0x37, 0x0d, 0x03, 0x3c, 0x6d, 0x1a, 0x89, + 0xc3, 0xa6, 0x91, 0x78, 0xd5, 0x34, 0x12, 0xf7, 0x37, 0xca, 0x44, 0x54, 0x6a, 0x6e, 0xde, 0xa3, + 0x55, 0xab, 0x18, 0x8b, 0x6e, 0x03, 0xb9, 0xdc, 0x6a, 0x4b, 0x70, 0xd9, 0xa3, 0x0c, 0x77, 0x9a, + 0x15, 0x44, 0x42, 0xab, 0x4a, 0xfd, 0x5a, 0x80, 0x79, 0xfc, 0x85, 0x2b, 0x76, 0x23, 0xcc, 0xdd, + 0xbf, 0xe4, 0x67, 0xec, 0xd5, 0xaf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x49, 0x54, 0x14, 0x96, + 0x0b, 0x00, 0x00, } func (m *GrantBandOraclePrivilegeProposal) Marshal() (dAtA []byte, err error) { @@ -919,6 +1010,98 @@ func (m *EnableBandIBCProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *GrantStorkPublisherPrivilegeProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GrantStorkPublisherPrivilegeProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GrantStorkPublisherPrivilegeProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.StorkPublishers) > 0 { + for iNdEx := len(m.StorkPublishers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.StorkPublishers[iNdEx]) + copy(dAtA[i:], m.StorkPublishers[iNdEx]) + i = encodeVarintProposal(dAtA, i, uint64(len(m.StorkPublishers[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RevokeStorkPublisherPrivilegeProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RevokeStorkPublisherPrivilegeProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RevokeStorkPublisherPrivilegeProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.StorkPublishers) > 0 { + for iNdEx := len(m.StorkPublishers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.StorkPublishers[iNdEx]) + copy(dAtA[i:], m.StorkPublishers[iNdEx]) + i = encodeVarintProposal(dAtA, i, uint64(len(m.StorkPublishers[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintProposal(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintProposal(dAtA []byte, offset int, v uint64) int { offset -= sovProposal(v) base := offset @@ -1158,6 +1341,52 @@ func (m *EnableBandIBCProposal) Size() (n int) { return n } +func (m *GrantStorkPublisherPrivilegeProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if len(m.StorkPublishers) > 0 { + for _, s := range m.StorkPublishers { + l = len(s) + n += 1 + l + sovProposal(uint64(l)) + } + } + return n +} + +func (m *RevokeStorkPublisherPrivilegeProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovProposal(uint64(l)) + } + if len(m.StorkPublishers) > 0 { + for _, s := range m.StorkPublishers { + l = len(s) + n += 1 + l + sovProposal(uint64(l)) + } + } + return n +} + func sovProposal(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2752,6 +2981,298 @@ func (m *EnableBandIBCProposal) Unmarshal(dAtA []byte) error { } return nil } +func (m *GrantStorkPublisherPrivilegeProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GrantStorkPublisherPrivilegeProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GrantStorkPublisherPrivilegeProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorkPublishers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorkPublishers = append(m.StorkPublishers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProposal(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProposal + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RevokeStorkPublisherPrivilegeProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RevokeStorkPublisherPrivilegeProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RevokeStorkPublisherPrivilegeProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorkPublishers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowProposal + } + 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 ErrInvalidLengthProposal + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthProposal + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorkPublishers = append(m.StorkPublishers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipProposal(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthProposal + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipProposal(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/oracle/types/pyth.go b/chain/oracle/types/pyth.go index 7b1fb3c3..4b986b39 100644 --- a/chain/oracle/types/pyth.go +++ b/chain/oracle/types/pyth.go @@ -1,15 +1,15 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" ) func NewPythPriceState( priceID common.Hash, - emaPrice, emaConf, conf sdk.Dec, + emaPrice, emaConf, conf math.LegacyDec, publishTime int64, - price sdk.Dec, + price math.LegacyDec, blockTime int64, ) *PythPriceState { return &PythPriceState{ @@ -23,9 +23,9 @@ func NewPythPriceState( } func (p *PythPriceState) Update( - emaPrice, emaConf, conf sdk.Dec, + emaPrice, emaConf, conf math.LegacyDec, publishTime uint64, - price sdk.Dec, + price math.LegacyDec, blockTime int64, ) { p.EmaPrice = emaPrice @@ -64,12 +64,12 @@ func (p *PriceAttestation) Validate() error { return nil } -func GetExponentiatedDec(value, expo int64) sdk.Dec { +func GetExponentiatedDec(value, expo int64) math.LegacyDec { // price * 10^-expo if expo <= 0 { - return sdk.NewDecWithPrec(value, -expo) + return math.LegacyNewDecWithPrec(value, -expo) } // price * 10^expo - return sdk.NewDec(value).Power(uint64(expo)) + return math.LegacyNewDec(value).Power(uint64(expo)) } diff --git a/chain/oracle/types/query.pb.go b/chain/oracle/types/query.pb.go index d82bee6f..09773598 100644 --- a/chain/oracle/types/query.pb.go +++ b/chain/oracle/types/query.pb.go @@ -5,8 +5,8 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -706,6 +706,174 @@ func (m *QueryPythPriceStatesResponse) GetPriceStates() []*PythPriceState { return nil } +// QueryStorkPriceStatesRequest is the request type for the +// Query/StorkPriceStates RPC method. +type QueryStorkPriceStatesRequest struct { +} + +func (m *QueryStorkPriceStatesRequest) Reset() { *m = QueryStorkPriceStatesRequest{} } +func (m *QueryStorkPriceStatesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryStorkPriceStatesRequest) ProtoMessage() {} +func (*QueryStorkPriceStatesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_52f5d6f9962923ad, []int{16} +} +func (m *QueryStorkPriceStatesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryStorkPriceStatesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryStorkPriceStatesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryStorkPriceStatesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryStorkPriceStatesRequest.Merge(m, src) +} +func (m *QueryStorkPriceStatesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryStorkPriceStatesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryStorkPriceStatesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryStorkPriceStatesRequest proto.InternalMessageInfo + +// QueryStorkPriceStatesResponse is the response type for the +// Query/StorkPriceStates RPC method. +type QueryStorkPriceStatesResponse struct { + PriceStates []*StorkPriceState `protobuf:"bytes,1,rep,name=price_states,json=priceStates,proto3" json:"price_states,omitempty"` +} + +func (m *QueryStorkPriceStatesResponse) Reset() { *m = QueryStorkPriceStatesResponse{} } +func (m *QueryStorkPriceStatesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryStorkPriceStatesResponse) ProtoMessage() {} +func (*QueryStorkPriceStatesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_52f5d6f9962923ad, []int{17} +} +func (m *QueryStorkPriceStatesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryStorkPriceStatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryStorkPriceStatesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryStorkPriceStatesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryStorkPriceStatesResponse.Merge(m, src) +} +func (m *QueryStorkPriceStatesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryStorkPriceStatesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryStorkPriceStatesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryStorkPriceStatesResponse proto.InternalMessageInfo + +func (m *QueryStorkPriceStatesResponse) GetPriceStates() []*StorkPriceState { + if m != nil { + return m.PriceStates + } + return nil +} + +// QueryStorkPublishersRequest is the request type for the +// Query/StorkPublishers RPC method. +type QueryStorkPublishersRequest struct { +} + +func (m *QueryStorkPublishersRequest) Reset() { *m = QueryStorkPublishersRequest{} } +func (m *QueryStorkPublishersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryStorkPublishersRequest) ProtoMessage() {} +func (*QueryStorkPublishersRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_52f5d6f9962923ad, []int{18} +} +func (m *QueryStorkPublishersRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryStorkPublishersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryStorkPublishersRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryStorkPublishersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryStorkPublishersRequest.Merge(m, src) +} +func (m *QueryStorkPublishersRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryStorkPublishersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryStorkPublishersRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryStorkPublishersRequest proto.InternalMessageInfo + +// QueryStorkPublishersResponse is the response type for the +// Query/StorkPublishers RPC method. +type QueryStorkPublishersResponse struct { + Publishers []string `protobuf:"bytes,1,rep,name=publishers,proto3" json:"publishers,omitempty"` +} + +func (m *QueryStorkPublishersResponse) Reset() { *m = QueryStorkPublishersResponse{} } +func (m *QueryStorkPublishersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryStorkPublishersResponse) ProtoMessage() {} +func (*QueryStorkPublishersResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_52f5d6f9962923ad, []int{19} +} +func (m *QueryStorkPublishersResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryStorkPublishersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryStorkPublishersResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryStorkPublishersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryStorkPublishersResponse.Merge(m, src) +} +func (m *QueryStorkPublishersResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryStorkPublishersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryStorkPublishersResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryStorkPublishersResponse proto.InternalMessageInfo + +func (m *QueryStorkPublishersResponse) GetPublishers() []string { + if m != nil { + return m.Publishers + } + return nil +} + // QueryProviderPriceStateRequest is the request type for the // Query/ProviderPriceState RPC method. type QueryProviderPriceStateRequest struct { @@ -717,7 +885,7 @@ func (m *QueryProviderPriceStateRequest) Reset() { *m = QueryProviderPri func (m *QueryProviderPriceStateRequest) String() string { return proto.CompactTextString(m) } func (*QueryProviderPriceStateRequest) ProtoMessage() {} func (*QueryProviderPriceStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{16} + return fileDescriptor_52f5d6f9962923ad, []int{20} } func (m *QueryProviderPriceStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -770,7 +938,7 @@ func (m *QueryProviderPriceStateResponse) Reset() { *m = QueryProviderPr func (m *QueryProviderPriceStateResponse) String() string { return proto.CompactTextString(m) } func (*QueryProviderPriceStateResponse) ProtoMessage() {} func (*QueryProviderPriceStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{17} + return fileDescriptor_52f5d6f9962923ad, []int{21} } func (m *QueryProviderPriceStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -815,7 +983,7 @@ func (m *QueryModuleStateRequest) Reset() { *m = QueryModuleStateRequest func (m *QueryModuleStateRequest) String() string { return proto.CompactTextString(m) } func (*QueryModuleStateRequest) ProtoMessage() {} func (*QueryModuleStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{18} + return fileDescriptor_52f5d6f9962923ad, []int{22} } func (m *QueryModuleStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -854,7 +1022,7 @@ func (m *QueryModuleStateResponse) Reset() { *m = QueryModuleStateRespon func (m *QueryModuleStateResponse) String() string { return proto.CompactTextString(m) } func (*QueryModuleStateResponse) ProtoMessage() {} func (*QueryModuleStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{19} + return fileDescriptor_52f5d6f9962923ad, []int{23} } func (m *QueryModuleStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -899,7 +1067,7 @@ func (m *QueryHistoricalPriceRecordsRequest) Reset() { *m = QueryHistori func (m *QueryHistoricalPriceRecordsRequest) String() string { return proto.CompactTextString(m) } func (*QueryHistoricalPriceRecordsRequest) ProtoMessage() {} func (*QueryHistoricalPriceRecordsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{20} + return fileDescriptor_52f5d6f9962923ad, []int{24} } func (m *QueryHistoricalPriceRecordsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -950,7 +1118,7 @@ func (m *QueryHistoricalPriceRecordsResponse) Reset() { *m = QueryHistor func (m *QueryHistoricalPriceRecordsResponse) String() string { return proto.CompactTextString(m) } func (*QueryHistoricalPriceRecordsResponse) ProtoMessage() {} func (*QueryHistoricalPriceRecordsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{21} + return fileDescriptor_52f5d6f9962923ad, []int{25} } func (m *QueryHistoricalPriceRecordsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1003,7 +1171,7 @@ func (m *OracleHistoryOptions) Reset() { *m = OracleHistoryOptions{} } func (m *OracleHistoryOptions) String() string { return proto.CompactTextString(m) } func (*OracleHistoryOptions) ProtoMessage() {} func (*OracleHistoryOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{22} + return fileDescriptor_52f5d6f9962923ad, []int{26} } func (m *OracleHistoryOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1065,7 +1233,7 @@ func (m *QueryOracleVolatilityRequest) Reset() { *m = QueryOracleVolatil func (m *QueryOracleVolatilityRequest) String() string { return proto.CompactTextString(m) } func (*QueryOracleVolatilityRequest) ProtoMessage() {} func (*QueryOracleVolatilityRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{23} + return fileDescriptor_52f5d6f9962923ad, []int{27} } func (m *QueryOracleVolatilityRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1118,16 +1286,16 @@ func (m *QueryOracleVolatilityRequest) GetOracleHistoryOptions() *OracleHistoryO // QueryOracleVolatilityResponse is the response type for Query/OracleVolatility // RPC method. type QueryOracleVolatilityResponse struct { - Volatility *github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=volatility,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"volatility,omitempty"` - HistoryMetadata *MetadataStatistics `protobuf:"bytes,2,opt,name=history_metadata,json=historyMetadata,proto3" json:"history_metadata,omitempty"` - RawHistory []*PriceRecord `protobuf:"bytes,3,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` + Volatility *cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=volatility,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"volatility,omitempty"` + HistoryMetadata *MetadataStatistics `protobuf:"bytes,2,opt,name=history_metadata,json=historyMetadata,proto3" json:"history_metadata,omitempty"` + RawHistory []*PriceRecord `protobuf:"bytes,3,rep,name=raw_history,json=rawHistory,proto3" json:"raw_history,omitempty"` } func (m *QueryOracleVolatilityResponse) Reset() { *m = QueryOracleVolatilityResponse{} } func (m *QueryOracleVolatilityResponse) String() string { return proto.CompactTextString(m) } func (*QueryOracleVolatilityResponse) ProtoMessage() {} func (*QueryOracleVolatilityResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{24} + return fileDescriptor_52f5d6f9962923ad, []int{28} } func (m *QueryOracleVolatilityResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1177,7 +1345,7 @@ func (m *QueryOracleProvidersInfoRequest) Reset() { *m = QueryOracleProv func (m *QueryOracleProvidersInfoRequest) String() string { return proto.CompactTextString(m) } func (*QueryOracleProvidersInfoRequest) ProtoMessage() {} func (*QueryOracleProvidersInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{25} + return fileDescriptor_52f5d6f9962923ad, []int{29} } func (m *QueryOracleProvidersInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1214,7 +1382,7 @@ func (m *QueryOracleProvidersInfoResponse) Reset() { *m = QueryOraclePro func (m *QueryOracleProvidersInfoResponse) String() string { return proto.CompactTextString(m) } func (*QueryOracleProvidersInfoResponse) ProtoMessage() {} func (*QueryOracleProvidersInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{26} + return fileDescriptor_52f5d6f9962923ad, []int{30} } func (m *QueryOracleProvidersInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1258,7 +1426,7 @@ func (m *QueryOracleProviderPricesRequest) Reset() { *m = QueryOraclePro func (m *QueryOracleProviderPricesRequest) String() string { return proto.CompactTextString(m) } func (*QueryOracleProviderPricesRequest) ProtoMessage() {} func (*QueryOracleProviderPricesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{27} + return fileDescriptor_52f5d6f9962923ad, []int{31} } func (m *QueryOracleProviderPricesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1302,7 +1470,7 @@ func (m *QueryOracleProviderPricesResponse) Reset() { *m = QueryOraclePr func (m *QueryOracleProviderPricesResponse) String() string { return proto.CompactTextString(m) } func (*QueryOracleProviderPricesResponse) ProtoMessage() {} func (*QueryOracleProviderPricesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{28} + return fileDescriptor_52f5d6f9962923ad, []int{32} } func (m *QueryOracleProviderPricesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1338,19 +1506,75 @@ func (m *QueryOracleProviderPricesResponse) GetProviderState() []*ProviderState return nil } +// ScalingOptions defines optional configuration to avoid precision loss. The +// oracle result will be returned as base_price * 10^base_decimals / quote_price +// * 10^quote_decimals +type ScalingOptions struct { + BaseDecimals uint32 `protobuf:"varint,1,opt,name=base_decimals,json=baseDecimals,proto3" json:"base_decimals,omitempty"` + QuoteDecimals uint32 `protobuf:"varint,2,opt,name=quote_decimals,json=quoteDecimals,proto3" json:"quote_decimals,omitempty"` +} + +func (m *ScalingOptions) Reset() { *m = ScalingOptions{} } +func (m *ScalingOptions) String() string { return proto.CompactTextString(m) } +func (*ScalingOptions) ProtoMessage() {} +func (*ScalingOptions) Descriptor() ([]byte, []int) { + return fileDescriptor_52f5d6f9962923ad, []int{33} +} +func (m *ScalingOptions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ScalingOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ScalingOptions.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ScalingOptions) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScalingOptions.Merge(m, src) +} +func (m *ScalingOptions) XXX_Size() int { + return m.Size() +} +func (m *ScalingOptions) XXX_DiscardUnknown() { + xxx_messageInfo_ScalingOptions.DiscardUnknown(m) +} + +var xxx_messageInfo_ScalingOptions proto.InternalMessageInfo + +func (m *ScalingOptions) GetBaseDecimals() uint32 { + if m != nil { + return m.BaseDecimals + } + return 0 +} + +func (m *ScalingOptions) GetQuoteDecimals() uint32 { + if m != nil { + return m.QuoteDecimals + } + return 0 +} + // QueryOraclePriceRequest is the request type for the Query/OraclePrice RPC // method. type QueryOraclePriceRequest struct { - OracleType OracleType `protobuf:"varint,1,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` - Base string `protobuf:"bytes,2,opt,name=base,proto3" json:"base,omitempty"` - Quote string `protobuf:"bytes,3,opt,name=quote,proto3" json:"quote,omitempty"` + OracleType OracleType `protobuf:"varint,1,opt,name=oracle_type,json=oracleType,proto3,enum=injective.oracle.v1beta1.OracleType" json:"oracle_type,omitempty"` + Base string `protobuf:"bytes,2,opt,name=base,proto3" json:"base,omitempty"` + Quote string `protobuf:"bytes,3,opt,name=quote,proto3" json:"quote,omitempty"` + ScalingOptions *ScalingOptions `protobuf:"bytes,4,opt,name=scaling_options,json=scalingOptions,proto3" json:"scaling_options,omitempty"` } func (m *QueryOraclePriceRequest) Reset() { *m = QueryOraclePriceRequest{} } func (m *QueryOraclePriceRequest) String() string { return proto.CompactTextString(m) } func (*QueryOraclePriceRequest) ProtoMessage() {} func (*QueryOraclePriceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{29} + return fileDescriptor_52f5d6f9962923ad, []int{34} } func (m *QueryOraclePriceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1400,21 +1624,28 @@ func (m *QueryOraclePriceRequest) GetQuote() string { return "" } +func (m *QueryOraclePriceRequest) GetScalingOptions() *ScalingOptions { + if m != nil { + return m.ScalingOptions + } + return nil +} + type PricePairState struct { - PairPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,1,opt,name=pair_price,json=pairPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"pair_price"` - BasePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=base_price,json=basePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"base_price"` - QuotePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=quote_price,json=quotePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quote_price"` - BaseCumulativePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=base_cumulative_price,json=baseCumulativePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"base_cumulative_price"` - QuoteCumulativePrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=quote_cumulative_price,json=quoteCumulativePrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quote_cumulative_price"` - BaseTimestamp int64 `protobuf:"varint,6,opt,name=base_timestamp,json=baseTimestamp,proto3" json:"base_timestamp,omitempty"` - QuoteTimestamp int64 `protobuf:"varint,7,opt,name=quote_timestamp,json=quoteTimestamp,proto3" json:"quote_timestamp,omitempty"` + PairPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=pair_price,json=pairPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"pair_price"` + BasePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=base_price,json=basePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"base_price"` + QuotePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=quote_price,json=quotePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quote_price"` + BaseCumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=base_cumulative_price,json=baseCumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"base_cumulative_price"` + QuoteCumulativePrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=quote_cumulative_price,json=quoteCumulativePrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quote_cumulative_price"` + BaseTimestamp int64 `protobuf:"varint,6,opt,name=base_timestamp,json=baseTimestamp,proto3" json:"base_timestamp,omitempty"` + QuoteTimestamp int64 `protobuf:"varint,7,opt,name=quote_timestamp,json=quoteTimestamp,proto3" json:"quote_timestamp,omitempty"` } func (m *PricePairState) Reset() { *m = PricePairState{} } func (m *PricePairState) String() string { return proto.CompactTextString(m) } func (*PricePairState) ProtoMessage() {} func (*PricePairState) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{30} + return fileDescriptor_52f5d6f9962923ad, []int{35} } func (m *PricePairState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1467,7 +1698,7 @@ func (m *QueryOraclePriceResponse) Reset() { *m = QueryOraclePriceRespon func (m *QueryOraclePriceResponse) String() string { return proto.CompactTextString(m) } func (*QueryOraclePriceResponse) ProtoMessage() {} func (*QueryOraclePriceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_52f5d6f9962923ad, []int{31} + return fileDescriptor_52f5d6f9962923ad, []int{36} } func (m *QueryOraclePriceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1520,6 +1751,10 @@ func init() { proto.RegisterType((*QueryCoinbasePriceStatesResponse)(nil), "injective.oracle.v1beta1.QueryCoinbasePriceStatesResponse") proto.RegisterType((*QueryPythPriceStatesRequest)(nil), "injective.oracle.v1beta1.QueryPythPriceStatesRequest") proto.RegisterType((*QueryPythPriceStatesResponse)(nil), "injective.oracle.v1beta1.QueryPythPriceStatesResponse") + proto.RegisterType((*QueryStorkPriceStatesRequest)(nil), "injective.oracle.v1beta1.QueryStorkPriceStatesRequest") + proto.RegisterType((*QueryStorkPriceStatesResponse)(nil), "injective.oracle.v1beta1.QueryStorkPriceStatesResponse") + proto.RegisterType((*QueryStorkPublishersRequest)(nil), "injective.oracle.v1beta1.QueryStorkPublishersRequest") + proto.RegisterType((*QueryStorkPublishersResponse)(nil), "injective.oracle.v1beta1.QueryStorkPublishersResponse") proto.RegisterType((*QueryProviderPriceStateRequest)(nil), "injective.oracle.v1beta1.QueryProviderPriceStateRequest") proto.RegisterType((*QueryProviderPriceStateResponse)(nil), "injective.oracle.v1beta1.QueryProviderPriceStateResponse") proto.RegisterType((*QueryModuleStateRequest)(nil), "injective.oracle.v1beta1.QueryModuleStateRequest") @@ -1533,6 +1768,7 @@ func init() { proto.RegisterType((*QueryOracleProvidersInfoResponse)(nil), "injective.oracle.v1beta1.QueryOracleProvidersInfoResponse") proto.RegisterType((*QueryOracleProviderPricesRequest)(nil), "injective.oracle.v1beta1.QueryOracleProviderPricesRequest") proto.RegisterType((*QueryOracleProviderPricesResponse)(nil), "injective.oracle.v1beta1.QueryOracleProviderPricesResponse") + proto.RegisterType((*ScalingOptions)(nil), "injective.oracle.v1beta1.ScalingOptions") proto.RegisterType((*QueryOraclePriceRequest)(nil), "injective.oracle.v1beta1.QueryOraclePriceRequest") proto.RegisterType((*PricePairState)(nil), "injective.oracle.v1beta1.PricePairState") proto.RegisterType((*QueryOraclePriceResponse)(nil), "injective.oracle.v1beta1.QueryOraclePriceResponse") @@ -1543,111 +1779,123 @@ func init() { } var fileDescriptor_52f5d6f9962923ad = []byte{ - // 1657 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xdf, 0x6f, 0xd3, 0xd6, - 0x17, 0xaf, 0xfb, 0x8b, 0xe6, 0x04, 0xda, 0x72, 0x1b, 0x4a, 0x31, 0x90, 0x06, 0x43, 0x7f, 0xf0, - 0x85, 0xc6, 0x34, 0x7c, 0x37, 0x18, 0x63, 0x48, 0xb4, 0xc0, 0x56, 0x46, 0xd5, 0xce, 0xb0, 0x1f, - 0xda, 0x4b, 0x74, 0xe3, 0xdc, 0x26, 0x1e, 0x89, 0xaf, 0xb1, 0x9d, 0x42, 0x84, 0xd0, 0xa4, 0x3d, - 0x4e, 0x93, 0x36, 0x69, 0x4f, 0x93, 0xb6, 0xf7, 0x69, 0x6f, 0x7b, 0xd8, 0xc3, 0x5e, 0x27, 0x4d, - 0x62, 0x6f, 0x4c, 0xd3, 0xa4, 0x89, 0x07, 0x34, 0xc1, 0xfe, 0x90, 0xc9, 0xf7, 0x5e, 0xbb, 0x76, - 0x63, 0xc7, 0x49, 0xa4, 0x3d, 0x35, 0xbe, 0x3e, 0xe7, 0x73, 0x3e, 0xe7, 0xf8, 0x9c, 0x63, 0x7f, - 0x54, 0x38, 0x63, 0x98, 0x9f, 0x10, 0xdd, 0x35, 0x76, 0x89, 0x4a, 0x6d, 0xac, 0x37, 0x88, 0xba, - 0xbb, 0x5a, 0x21, 0x2e, 0x5e, 0x55, 0x1f, 0xb4, 0x88, 0xdd, 0x2e, 0x5a, 0x36, 0x75, 0x29, 0x9a, - 0x0b, 0xac, 0x8a, 0xdc, 0xaa, 0x28, 0xac, 0xe4, 0x13, 0x35, 0x4a, 0x6b, 0x0d, 0xa2, 0x62, 0xcb, - 0x50, 0xb1, 0x69, 0x52, 0x17, 0xbb, 0x06, 0x35, 0x1d, 0xee, 0x27, 0x2f, 0x24, 0xa2, 0x0b, 0x18, - 0x6e, 0xb6, 0x98, 0x68, 0x56, 0x23, 0x26, 0x71, 0x0c, 0x1f, 0x2e, 0x57, 0xa3, 0x35, 0xca, 0x7e, - 0xaa, 0xde, 0x2f, 0x7e, 0xaa, 0x94, 0xe0, 0xc8, 0x7b, 0x1e, 0xd7, 0xed, 0xb6, 0x5b, 0xdf, 0xb6, - 0x0d, 0x9d, 0x68, 0xe4, 0x41, 0x8b, 0x38, 0x2e, 0x3a, 0x06, 0x13, 0x96, 0x77, 0x5d, 0x36, 0xaa, - 0x73, 0x52, 0x41, 0x5a, 0xce, 0x68, 0x07, 0xd8, 0xf5, 0x46, 0x55, 0xd1, 0x61, 0x76, 0xbf, 0x8f, - 0x63, 0x51, 0xd3, 0x21, 0x68, 0x03, 0xb2, 0xdc, 0xc9, 0x71, 0xb1, 0x4b, 0x98, 0x5f, 0xb6, 0xb4, - 0x5c, 0x4c, 0x2a, 0x40, 0x31, 0x40, 0xb8, 0xeb, 0xd9, 0x6b, 0x60, 0x05, 0xbf, 0x95, 0x1c, 0x20, - 0x1e, 0x04, 0xdb, 0xb8, 0xe9, 0x08, 0x56, 0xca, 0xfb, 0x30, 0x13, 0x39, 0x15, 0x71, 0xaf, 0xc1, - 0xb8, 0xc5, 0x4e, 0x44, 0xc8, 0x42, 0x97, 0x90, 0xcc, 0x6e, 0x6d, 0xf4, 0xe9, 0x8b, 0xf9, 0x21, - 0x4d, 0x78, 0x29, 0x32, 0xcc, 0x31, 0xd8, 0x35, 0x6c, 0x56, 0x35, 0xd2, 0xc0, 0x6d, 0x62, 0x07, - 0x21, 0x2f, 0xc1, 0xb1, 0x98, 0x7b, 0x22, 0xb0, 0x0c, 0x13, 0xb6, 0x38, 0x9b, 0x93, 0x0a, 0x23, - 0xcb, 0x19, 0x2d, 0xb8, 0x56, 0x4e, 0xc2, 0xf1, 0xc0, 0x71, 0x2f, 0xc9, 0x00, 0xf7, 0x3e, 0x9c, - 0x88, 0xbf, 0x2d, 0xa0, 0xdf, 0x85, 0x83, 0xa1, 0x5a, 0x72, 0xf8, 0xae, 0xc5, 0x8c, 0x02, 0x69, - 0xd9, 0xbd, 0x62, 0x3a, 0x4a, 0x01, 0xf2, 0x41, 0xb0, 0x8d, 0xb5, 0xf5, 0x18, 0x3a, 0x26, 0xcc, - 0x27, 0x5a, 0xfc, 0x17, 0x8c, 0x14, 0x28, 0xf0, 0x27, 0xe9, 0x9d, 0xdd, 0x22, 0x24, 0xae, 0x44, - 0x16, 0x9c, 0xea, 0x62, 0x33, 0x28, 0xab, 0x00, 0x2d, 0x86, 0xd5, 0x29, 0x51, 0x85, 0x75, 0x6a, - 0x98, 0x15, 0xec, 0x90, 0x18, 0x52, 0x8e, 0x20, 0x1e, 0x6b, 0x22, 0x38, 0x6d, 0xc5, 0x72, 0x3a, - 0x9f, 0xcc, 0xa9, 0x13, 0x2c, 0xca, 0xcb, 0xef, 0xa5, 0xe8, 0xc0, 0x74, 0xf4, 0x52, 0xc7, 0xed, - 0x81, 0x6b, 0x14, 0x1d, 0xcc, 0x08, 0x97, 0x7b, 0xa2, 0x97, 0xb6, 0x6d, 0xba, 0x6b, 0x54, 0x89, - 0x1d, 0xb2, 0x13, 0xbb, 0x43, 0xf6, 0x76, 0x07, 0xbf, 0x29, 0x76, 0x47, 0x70, 0x8d, 0x66, 0x61, - 0xdc, 0x69, 0x37, 0x2b, 0xb4, 0x31, 0x37, 0xcc, 0xee, 0x88, 0x2b, 0xa5, 0x2e, 0x2a, 0x1f, 0x87, - 0x2a, 0xb2, 0xb8, 0x19, 0xb7, 0x5d, 0xce, 0xa4, 0x3c, 0xe8, 0xce, 0xcd, 0x72, 0x0c, 0x8e, 0xb2, - 0x48, 0x9b, 0xb4, 0xda, 0x6a, 0x44, 0x88, 0x2b, 0x1f, 0x89, 0x3d, 0x10, 0xb9, 0x25, 0xa2, 0x5f, - 0x85, 0xb1, 0x70, 0xdc, 0xc5, 0xe4, 0xb8, 0x6f, 0xf3, 0xbd, 0xcb, 0xdd, 0xb9, 0x93, 0xf2, 0x29, - 0x28, 0x0c, 0xf9, 0x1d, 0xc3, 0x71, 0xa9, 0x6d, 0xe8, 0xb8, 0x21, 0x36, 0xa7, 0x4e, 0xed, 0xaa, - 0xff, 0x1c, 0xd1, 0x55, 0x18, 0xe7, 0x58, 0x2c, 0xc8, 0x64, 0xb7, 0xe4, 0xb6, 0xd8, 0xe5, 0xbd, - 0xb6, 0x45, 0x34, 0xe1, 0x83, 0x8e, 0x43, 0x86, 0x17, 0xd3, 0xdb, 0xd9, 0xbc, 0xba, 0x13, 0xfc, - 0x60, 0xa3, 0xaa, 0xd8, 0x70, 0xba, 0x2b, 0x81, 0xa0, 0x53, 0x0e, 0xf1, 0x1a, 0xdb, 0xfc, 0x86, - 0x68, 0x95, 0xc5, 0x94, 0x2a, 0xfb, 0x30, 0xbc, 0xcd, 0xc4, 0x95, 0xf2, 0xb9, 0x04, 0x39, 0xce, - 0x93, 0x47, 0x6d, 0x6f, 0x59, 0xec, 0x05, 0x87, 0x8e, 0xc2, 0x81, 0x26, 0x7e, 0x54, 0xc6, 0x35, - 0x9e, 0xe8, 0xa8, 0x36, 0xde, 0xc4, 0x8f, 0xae, 0xd7, 0x08, 0x2a, 0xc2, 0x8c, 0x61, 0xea, 0x8d, - 0x56, 0x95, 0x94, 0x6d, 0xfc, 0xb0, 0x5c, 0xe7, 0x6e, 0x2c, 0x99, 0x09, 0xed, 0xb0, 0xb8, 0xa5, - 0xe1, 0x87, 0x02, 0x0f, 0x9d, 0x85, 0x69, 0xdf, 0xbe, 0x49, 0x5c, 0x5c, 0xc5, 0x2e, 0x9e, 0x1b, - 0x61, 0xc6, 0x53, 0xe2, 0x7c, 0x53, 0x1c, 0x2b, 0x5f, 0x0c, 0x8b, 0x21, 0xe1, 0x8c, 0x3e, 0xa0, - 0x0d, 0xec, 0x1a, 0x0d, 0xc3, 0x6d, 0xfb, 0xc5, 0xbf, 0x0e, 0x19, 0x6f, 0x04, 0xcb, 0x86, 0xb9, - 0x43, 0xd3, 0x9b, 0x8b, 0xa3, 0x6c, 0x98, 0x3b, 0x54, 0x9b, 0xf0, 0xdc, 0xbc, 0x5f, 0x68, 0x1d, - 0xe0, 0x41, 0x8b, 0xba, 0x02, 0x63, 0xb8, 0x0f, 0x8c, 0x0c, 0xf3, 0x63, 0x20, 0x55, 0x98, 0xe5, - 0x76, 0x7e, 0xfa, 0x65, 0xca, 0xcb, 0xc6, 0x32, 0xcb, 0x96, 0x8a, 0x69, 0x80, 0xd1, 0x62, 0x6b, - 0x39, 0x1a, 0x73, 0xea, 0x95, 0xe3, 0x64, 0x42, 0x39, 0x44, 0x2b, 0xdc, 0x06, 0xd8, 0x0d, 0x4e, - 0xf9, 0x1c, 0xaf, 0xfd, 0xef, 0xf9, 0x8b, 0xf9, 0xc5, 0x9a, 0xe1, 0xd6, 0x5b, 0x95, 0xa2, 0x4e, - 0x9b, 0xaa, 0x4e, 0x9d, 0x26, 0x75, 0xc4, 0x9f, 0x15, 0xa7, 0x7a, 0x5f, 0x75, 0xdb, 0x16, 0x71, - 0x8a, 0x37, 0x88, 0xae, 0x85, 0xbc, 0xd1, 0x87, 0x30, 0xed, 0x27, 0x13, 0x3c, 0x27, 0x5e, 0x9e, - 0x2e, 0x4b, 0xd1, 0x7f, 0x74, 0xde, 0x20, 0x19, 0x8e, 0x6b, 0xe8, 0x8e, 0x36, 0x25, 0x50, 0xfc, - 0x5b, 0xe8, 0x16, 0x64, 0xc3, 0x8d, 0x32, 0xc2, 0xba, 0x75, 0xa1, 0xa7, 0x6e, 0xd5, 0xc0, 0x0e, - 0x1a, 0x29, 0x58, 0xfc, 0xbc, 0x1a, 0xfe, 0x12, 0x72, 0xd8, 0xb3, 0x11, 0xcb, 0xa1, 0x2e, 0x16, - 0x7f, 0xac, 0x89, 0xa8, 0xd9, 0x0d, 0xc8, 0xf8, 0x9b, 0xae, 0xa7, 0xd1, 0xe1, 0xa6, 0xbc, 0x03, - 0x02, 0x47, 0xe5, 0x5a, 0x6c, 0x24, 0x46, 0xdd, 0xe9, 0x61, 0xc7, 0x2a, 0xb6, 0x78, 0x6f, 0xc6, - 0xfb, 0x0b, 0xaa, 0x9b, 0xde, 0xa4, 0xf3, 0x3b, 0x77, 0xc5, 0x5e, 0xf3, 0xe8, 0x2e, 0xa5, 0xd3, - 0xe5, 0x8b, 0x2d, 0xea, 0xed, 0xcd, 0xfa, 0xd1, 0x48, 0xd0, 0xd0, 0xb7, 0xe4, 0x4d, 0xc8, 0x8a, - 0x8e, 0xf6, 0xba, 0xa3, 0xaf, 0xdd, 0x06, 0x34, 0xf8, 0x8d, 0x10, 0x8c, 0x7a, 0x93, 0x26, 0x56, - 0x1b, 0xfb, 0x8d, 0x72, 0x30, 0xc6, 0x26, 0x87, 0xcd, 0x46, 0x46, 0xe3, 0x17, 0xca, 0x37, 0xa3, - 0x30, 0xc9, 0x18, 0x6c, 0x63, 0x83, 0xf3, 0x43, 0x9b, 0x00, 0x16, 0x36, 0xec, 0x32, 0x5b, 0x50, - 0xa2, 0x9b, 0x8b, 0xde, 0x47, 0x60, 0x1f, 0x1d, 0x9d, 0xf1, 0x10, 0x18, 0xae, 0x07, 0xc7, 0x96, - 0x05, 0x87, 0x1b, 0x1e, 0x0c, 0x2e, 0x78, 0xe3, 0xa3, 0x2d, 0xc8, 0xf2, 0xc5, 0xc1, 0xf1, 0x46, - 0x06, 0xc2, 0xe3, 0xbb, 0x87, 0x03, 0x56, 0xe0, 0x08, 0xe3, 0xa7, 0xb7, 0x9a, 0x2d, 0x6f, 0x0a, - 0x77, 0x7d, 0xe8, 0xd1, 0x81, 0xa0, 0x67, 0x3c, 0xb0, 0xf5, 0x00, 0x8b, 0xc7, 0xa8, 0xc2, 0x2c, - 0x27, 0xdd, 0x11, 0x64, 0x6c, 0xa0, 0x20, 0x39, 0x86, 0xb6, 0x3f, 0xca, 0x02, 0x4c, 0xb2, 0x4c, - 0x5c, 0xa3, 0x49, 0x1c, 0x17, 0x37, 0xad, 0xb9, 0xf1, 0x82, 0xb4, 0x3c, 0xa2, 0x1d, 0xf2, 0x4e, - 0xef, 0xf9, 0x87, 0x68, 0x09, 0xa6, 0x38, 0x99, 0x3d, 0xbb, 0x03, 0xcc, 0x6e, 0x92, 0x1d, 0x07, - 0x86, 0x8a, 0x29, 0xde, 0xf1, 0x91, 0x3e, 0x15, 0x33, 0xa1, 0xc1, 0x34, 0x7f, 0xfb, 0xb1, 0x56, - 0xe9, 0x55, 0xc4, 0x44, 0x1a, 0x4d, 0x9b, 0xb4, 0x22, 0xd7, 0xa5, 0xe7, 0x47, 0x60, 0x8c, 0x05, - 0x44, 0x5f, 0x4a, 0x30, 0xce, 0xe5, 0x07, 0xea, 0xb2, 0xf5, 0x3a, 0x55, 0x8f, 0xbc, 0xd2, 0xa3, - 0x35, 0xcf, 0x42, 0x59, 0xfe, 0xec, 0x8f, 0x7f, 0xbe, 0x1e, 0x56, 0x50, 0x41, 0x4d, 0x94, 0x86, - 0x5c, 0xf7, 0xa0, 0xef, 0x25, 0x38, 0x18, 0xd6, 0x35, 0xa8, 0x94, 0x12, 0x29, 0x46, 0x20, 0xc9, - 0x17, 0xfb, 0xf2, 0x11, 0x1c, 0x55, 0xc6, 0xf1, 0x2c, 0x5a, 0x4a, 0xe6, 0x58, 0xc1, 0x66, 0xb5, - 0xec, 0xab, 0x29, 0xf4, 0x93, 0x04, 0x53, 0xfb, 0xa4, 0x12, 0x7a, 0xad, 0x87, 0xc8, 0x9d, 0x5f, - 0xcb, 0xf2, 0xeb, 0xfd, 0xba, 0x09, 0xce, 0x17, 0x19, 0xe7, 0x15, 0x74, 0x2e, 0x85, 0x73, 0xf8, - 0x53, 0x1b, 0xfd, 0x22, 0x01, 0xea, 0xd4, 0x54, 0xe8, 0x72, 0x0f, 0x1c, 0x62, 0x85, 0x9a, 0xfc, - 0xc6, 0x00, 0x9e, 0x22, 0x81, 0x4b, 0x2c, 0x81, 0x55, 0xa4, 0xa6, 0x24, 0x60, 0x54, 0xf4, 0x68, - 0x12, 0xbf, 0x49, 0x90, 0x8b, 0x13, 0x61, 0xe8, 0x4a, 0x5a, 0x67, 0x26, 0xab, 0x3b, 0xf9, 0xcd, - 0x81, 0x7c, 0x45, 0x2a, 0x97, 0x59, 0x2a, 0x25, 0x74, 0xa1, 0x4b, 0x8f, 0x7b, 0x6e, 0x3b, 0x84, - 0xec, 0x7b, 0x20, 0xbf, 0x4a, 0x30, 0x13, 0xa3, 0xdd, 0x50, 0x5a, 0x5d, 0x93, 0x25, 0xa1, 0x7c, - 0x65, 0x10, 0xd7, 0xde, 0x9f, 0x89, 0x2e, 0xdc, 0xa3, 0x79, 0x78, 0x03, 0xb1, 0x4f, 0xef, 0xa5, - 0x0e, 0x44, 0xbc, 0x7c, 0x4c, 0x1d, 0x88, 0x04, 0x59, 0xd9, 0xcb, 0x40, 0x58, 0x6d, 0xb7, 0x1e, - 0xe5, 0xfd, 0xa7, 0x04, 0xa8, 0x53, 0xe4, 0xa5, 0x0e, 0x44, 0xa2, 0xda, 0x4c, 0x1d, 0x88, 0x64, - 0x45, 0xa9, 0xdc, 0x66, 0x09, 0xdc, 0x40, 0x6b, 0xdd, 0xba, 0x88, 0x7b, 0x87, 0x93, 0x50, 0x1f, - 0xfb, 0xa7, 0x4f, 0xd4, 0xc7, 0x5c, 0x61, 0x3d, 0x41, 0x3f, 0x48, 0x70, 0x98, 0xbf, 0x53, 0x42, - 0xea, 0x11, 0xad, 0xa6, 0x90, 0xeb, 0x14, 0xa1, 0x72, 0xa9, 0x1f, 0x17, 0x91, 0x48, 0x91, 0x25, - 0xb2, 0x8c, 0x16, 0x93, 0x13, 0x69, 0x32, 0x37, 0x9e, 0x00, 0xfa, 0x5d, 0x82, 0xd9, 0x78, 0x25, - 0x88, 0xae, 0xa6, 0x84, 0xef, 0xaa, 0x60, 0xe5, 0xb7, 0x06, 0xf4, 0x16, 0x79, 0x5c, 0x61, 0x79, - 0xfc, 0x1f, 0x95, 0x92, 0xf3, 0xa8, 0x07, 0x08, 0xe5, 0x88, 0x52, 0x45, 0x3f, 0x4a, 0x30, 0xbd, - 0x5f, 0xcc, 0xa0, 0xb4, 0xd6, 0x4e, 0x10, 0x83, 0xf2, 0xa5, 0xbe, 0xfd, 0x44, 0x06, 0xe7, 0x59, - 0x06, 0x8b, 0xe8, 0x4c, 0x72, 0x06, 0x21, 0x5d, 0xf4, 0xb3, 0x04, 0x33, 0x31, 0x7a, 0x22, 0x75, - 0x19, 0x25, 0xcb, 0x94, 0xd4, 0x65, 0xd4, 0x45, 0xbe, 0x28, 0xe7, 0x18, 0xf9, 0x05, 0x74, 0x3a, - 0x7d, 0x1e, 0xd8, 0x9b, 0x2d, 0x17, 0xa7, 0x30, 0x50, 0x7f, 0x0c, 0x22, 0xb2, 0x26, 0xf5, 0xa5, - 0xd0, 0x4d, 0xd2, 0x28, 0xab, 0x8c, 0xfe, 0x39, 0x74, 0xb6, 0xd7, 0x71, 0x76, 0xd0, 0x77, 0x12, - 0x64, 0x43, 0x5f, 0x82, 0xa9, 0xf3, 0xda, 0xa9, 0x6e, 0x52, 0xe7, 0x35, 0xe6, 0x43, 0x53, 0x59, - 0x62, 0x4c, 0x4f, 0xa1, 0xf9, 0x94, 0xd7, 0x17, 0xfa, 0x56, 0x82, 0x4c, 0xb0, 0x7e, 0x91, 0xda, - 0xeb, 0xa2, 0xf6, 0xb9, 0x5d, 0xe8, 0xdd, 0xa1, 0xf7, 0xfe, 0xdd, 0xdb, 0xe9, 0x6b, 0x3b, 0x4f, - 0x5f, 0xe6, 0xa5, 0x67, 0x2f, 0xf3, 0xd2, 0xdf, 0x2f, 0xf3, 0xd2, 0x57, 0xaf, 0xf2, 0x43, 0xcf, - 0x5e, 0xe5, 0x87, 0xfe, 0x7a, 0x95, 0x1f, 0xfa, 0xf8, 0x4e, 0xe8, 0xa3, 0x7f, 0xc3, 0x47, 0xba, - 0x83, 0x2b, 0xce, 0x1e, 0xee, 0x8a, 0x4e, 0x6d, 0x12, 0xbe, 0xac, 0x63, 0xc3, 0x14, 0x7b, 0xca, - 0xf1, 0x83, 0x32, 0x79, 0x50, 0x19, 0x67, 0xff, 0xad, 0xb8, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xe1, 0xe8, 0xd9, 0x82, 0x72, 0x19, 0x00, 0x00, + // 1846 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xdd, 0x6f, 0xdb, 0x46, + 0x12, 0x37, 0xfd, 0x15, 0x6b, 0x14, 0x7f, 0x64, 0xad, 0x38, 0x8a, 0x92, 0xc8, 0x0e, 0x1d, 0x7f, + 0x5d, 0x1c, 0x29, 0x56, 0x72, 0x49, 0x2e, 0x97, 0xcb, 0x21, 0xb6, 0x93, 0x3b, 0xdf, 0x39, 0x88, + 0x8f, 0xce, 0x35, 0x6d, 0x51, 0x40, 0x58, 0x51, 0xb4, 0xc4, 0x5a, 0x22, 0x15, 0x92, 0x72, 0x22, + 0x04, 0x41, 0xd1, 0x3e, 0x16, 0x05, 0x5a, 0xa0, 0xaf, 0xed, 0x7b, 0xd1, 0xb7, 0x02, 0xed, 0x43, + 0x5e, 0x0b, 0x14, 0x48, 0x1f, 0x0a, 0xa4, 0x28, 0x0a, 0x14, 0x7d, 0x08, 0x0a, 0xbb, 0x7f, 0x48, + 0xc1, 0xdd, 0x21, 0x4d, 0x4a, 0xa4, 0x48, 0x19, 0xe8, 0x9b, 0x76, 0x77, 0xe6, 0xb7, 0xbf, 0x99, + 0x9d, 0x99, 0xdd, 0xa1, 0xe0, 0x82, 0xaa, 0xbd, 0xab, 0xc8, 0x96, 0xba, 0xa7, 0xe4, 0x75, 0x83, + 0xca, 0x35, 0x25, 0xbf, 0xb7, 0x52, 0x52, 0x2c, 0xba, 0x92, 0x7f, 0xdc, 0x54, 0x8c, 0x56, 0xae, + 0x61, 0xe8, 0x96, 0x4e, 0xd2, 0xae, 0x54, 0x8e, 0x4b, 0xe5, 0x50, 0x2a, 0x73, 0xb6, 0xa2, 0xeb, + 0x95, 0x9a, 0x92, 0xa7, 0x0d, 0x35, 0x4f, 0x35, 0x4d, 0xb7, 0xa8, 0xa5, 0xea, 0x9a, 0xc9, 0xf5, + 0x32, 0x73, 0xa1, 0xe8, 0x08, 0xc3, 0xc5, 0xe6, 0x43, 0xc5, 0x2a, 0x8a, 0xa6, 0x98, 0xaa, 0x03, + 0x97, 0xaa, 0xe8, 0x15, 0x9d, 0xfd, 0xcc, 0xdb, 0xbf, 0xf8, 0xac, 0x58, 0x80, 0x93, 0xff, 0xb3, + 0xb9, 0x6e, 0xb5, 0xac, 0xea, 0x96, 0xa1, 0xca, 0x8a, 0xa4, 0x3c, 0x6e, 0x2a, 0xa6, 0x45, 0x4e, + 0xc3, 0x48, 0xc3, 0x1e, 0x17, 0xd5, 0x72, 0x5a, 0x98, 0x11, 0x16, 0x13, 0xd2, 0x31, 0x36, 0xde, + 0x28, 0x8b, 0x32, 0x4c, 0xb5, 0xeb, 0x98, 0x0d, 0x5d, 0x33, 0x15, 0xb2, 0x01, 0x49, 0xae, 0x64, + 0x5a, 0xd4, 0x52, 0x98, 0x5e, 0xb2, 0xb0, 0x98, 0x0b, 0x73, 0x40, 0xce, 0x45, 0xd8, 0xb6, 0xe5, + 0x25, 0x68, 0xb8, 0xbf, 0xc5, 0x14, 0x10, 0xbe, 0x09, 0x35, 0x68, 0xdd, 0x44, 0x56, 0xe2, 0xff, + 0x61, 0xd2, 0x37, 0x8b, 0xfb, 0xde, 0x86, 0xe1, 0x06, 0x9b, 0xc1, 0x2d, 0x67, 0xba, 0x6c, 0xc9, + 0xe4, 0x56, 0x07, 0x5f, 0xbe, 0x9e, 0xee, 0x93, 0x50, 0x4b, 0xcc, 0x40, 0x9a, 0xc1, 0xae, 0x52, + 0xad, 0x2c, 0x29, 0x35, 0xda, 0x52, 0x0c, 0x77, 0xcb, 0xeb, 0x70, 0x3a, 0x60, 0x0d, 0x37, 0xce, + 0xc0, 0x88, 0x81, 0x73, 0x69, 0x61, 0x66, 0x60, 0x31, 0x21, 0xb9, 0x63, 0xf1, 0x1c, 0x9c, 0x71, + 0x15, 0x0f, 0x8d, 0x74, 0x71, 0x77, 0xe1, 0x6c, 0xf0, 0x32, 0x42, 0xff, 0x17, 0x8e, 0x7b, 0x7c, + 0xc9, 0xe1, 0xbb, 0x3a, 0xd3, 0x0f, 0x24, 0x25, 0x0f, 0x9d, 0x69, 0x8a, 0x33, 0x90, 0x75, 0x37, + 0xdb, 0x58, 0x5d, 0x0b, 0xa0, 0xa3, 0xc1, 0x74, 0xa8, 0xc4, 0x9f, 0xc1, 0x48, 0x84, 0x19, 0x7e, + 0x92, 0xf6, 0xdc, 0x3d, 0x45, 0x09, 0x72, 0x51, 0x03, 0xce, 0x77, 0x91, 0x39, 0x2a, 0x2b, 0x17, + 0x2d, 0x80, 0xd5, 0x79, 0xf4, 0xc2, 0x9a, 0xae, 0x6a, 0x25, 0x6a, 0x2a, 0x01, 0xa4, 0x4c, 0x24, + 0x1e, 0x28, 0x82, 0x9c, 0x1e, 0x04, 0x72, 0x5a, 0x0e, 0xe7, 0xd4, 0x09, 0xe6, 0xe7, 0xe5, 0xc4, + 0x92, 0x3f, 0x61, 0x3a, 0x62, 0xa9, 0x63, 0xf9, 0xc8, 0x3e, 0xf2, 0x27, 0xa6, 0x8f, 0x4b, 0x16, + 0x37, 0xdb, 0xb6, 0x74, 0x63, 0x37, 0x80, 0x4c, 0x1d, 0xce, 0x85, 0xac, 0x23, 0x9b, 0xcd, 0x40, + 0x36, 0x4b, 0xe1, 0x6c, 0xda, 0x90, 0x82, 0x5d, 0xc3, 0x85, 0x9a, 0xa5, 0x9a, 0x6a, 0x56, 0x3d, + 0xe9, 0x7b, 0xdb, 0xc7, 0xd6, 0xb3, 0x8c, 0x64, 0xb2, 0x00, 0x0d, 0x77, 0x16, 0x73, 0xd8, 0x33, + 0x23, 0x3e, 0xc4, 0xcc, 0xd9, 0x32, 0xf4, 0x3d, 0xb5, 0xac, 0x18, 0x1e, 0x1a, 0x58, 0x29, 0x33, + 0x76, 0xa5, 0xe4, 0x8b, 0x58, 0x29, 0xdd, 0x31, 0x99, 0x82, 0x61, 0xb3, 0x55, 0x2f, 0xe9, 0xb5, + 0x74, 0x3f, 0x5b, 0xc1, 0x91, 0x58, 0xc5, 0x38, 0x0b, 0x42, 0x45, 0x62, 0x77, 0x83, 0x6a, 0xe9, + 0x85, 0x88, 0xb0, 0xee, 0xac, 0xa3, 0xa7, 0xe1, 0x14, 0xdb, 0xe9, 0xbe, 0x5e, 0x6e, 0xd6, 0x7c, + 0xc4, 0xc5, 0x37, 0xb1, 0xea, 0xf9, 0x96, 0x70, 0xf7, 0x5b, 0x30, 0xe4, 0xdd, 0x77, 0x3e, 0x7c, + 0xdf, 0x7f, 0xf1, 0x5b, 0x86, 0xab, 0x73, 0x25, 0xf1, 0x3d, 0x10, 0x19, 0xf2, 0xbf, 0x55, 0xd3, + 0xd2, 0x0d, 0x55, 0xa6, 0x35, 0xbc, 0x27, 0x64, 0xdd, 0x28, 0x3b, 0x47, 0x43, 0x6e, 0xc1, 0x30, + 0xc7, 0x62, 0x9b, 0x8c, 0x75, 0x33, 0xee, 0x01, 0x1b, 0x3e, 0x6c, 0x35, 0x14, 0x09, 0x75, 0xc8, + 0x19, 0x48, 0x70, 0x67, 0xda, 0x37, 0x14, 0xf7, 0xee, 0x08, 0x9f, 0xd8, 0x28, 0x8b, 0x06, 0xcc, + 0x76, 0x25, 0xe0, 0xe6, 0xc5, 0x28, 0xf7, 0xb1, 0xc1, 0x17, 0x30, 0x14, 0xe7, 0x23, 0xbc, 0xec, + 0xc0, 0xf0, 0x30, 0xc6, 0x91, 0xf8, 0xa1, 0x00, 0x29, 0xce, 0x93, 0xef, 0xda, 0x7a, 0xd0, 0x60, + 0xd7, 0x39, 0x39, 0x05, 0xc7, 0xea, 0xf4, 0x69, 0x91, 0x56, 0xb8, 0xa1, 0x83, 0xd2, 0x70, 0x9d, + 0x3e, 0xbd, 0x53, 0x51, 0x48, 0x0e, 0x26, 0x55, 0x4d, 0xae, 0x35, 0xcb, 0x4a, 0xd1, 0xa0, 0x4f, + 0x8a, 0x55, 0xae, 0xc6, 0x8c, 0x19, 0x91, 0x4e, 0xe0, 0x92, 0x44, 0x9f, 0x20, 0x1e, 0x59, 0x82, + 0x09, 0x47, 0xbe, 0xae, 0x58, 0xb4, 0x4c, 0x2d, 0x9a, 0x1e, 0x60, 0xc2, 0xe3, 0x38, 0x7f, 0x1f, + 0xa7, 0xc5, 0x8f, 0xfa, 0x31, 0xee, 0x39, 0xa3, 0x37, 0xf4, 0x1a, 0xb5, 0xd4, 0x9a, 0x6a, 0xb5, + 0x1c, 0xe7, 0xdf, 0x81, 0x84, 0x5d, 0x70, 0x8a, 0xaa, 0xb6, 0xa3, 0x47, 0x07, 0x17, 0x47, 0xd9, + 0xd0, 0x76, 0x74, 0x69, 0xc4, 0x56, 0xb3, 0x7f, 0x91, 0x35, 0x80, 0xc7, 0x4d, 0xdd, 0x42, 0x8c, + 0xfe, 0x1e, 0x30, 0x12, 0x4c, 0x8f, 0x81, 0x94, 0x61, 0x8a, 0xcb, 0x39, 0xe6, 0x17, 0x75, 0xee, + 0x36, 0x66, 0x59, 0xb2, 0x90, 0x8b, 0x02, 0xf4, 0x3b, 0x5b, 0x4a, 0xe9, 0x01, 0xb3, 0xe2, 0xfb, + 0xfd, 0x58, 0x94, 0x3a, 0xdd, 0x81, 0xa1, 0xf0, 0x4f, 0x80, 0x3d, 0x77, 0x96, 0xe7, 0xf1, 0xea, + 0xf4, 0xaf, 0xaf, 0xa7, 0xcf, 0xc8, 0xba, 0x59, 0xd7, 0x4d, 0xb3, 0xbc, 0x9b, 0x53, 0xf5, 0x7c, + 0x9d, 0x5a, 0xd5, 0xdc, 0xa6, 0x52, 0xa1, 0x72, 0x6b, 0x5d, 0x91, 0x25, 0x8f, 0x0a, 0x79, 0x04, + 0x13, 0x8e, 0x05, 0xee, 0xe1, 0x70, 0x9f, 0x74, 0xa9, 0xfb, 0xce, 0x79, 0xd9, 0xd9, 0xa3, 0x9a, + 0x96, 0x2a, 0x9b, 0xd2, 0x38, 0xa2, 0x38, 0x4b, 0xe4, 0x1e, 0x24, 0xbd, 0xd1, 0x31, 0xc0, 0x42, + 0x74, 0x2e, 0x56, 0x88, 0x4a, 0x60, 0xb8, 0xd1, 0xe3, 0xde, 0x6d, 0xdc, 0x05, 0x4e, 0xe5, 0x31, + 0xd9, 0x81, 0x60, 0x45, 0xa8, 0xe2, 0xdd, 0x16, 0x28, 0x82, 0x8e, 0x5a, 0x87, 0x84, 0x53, 0xde, + 0x62, 0xe5, 0x0b, 0x17, 0xe5, 0xc7, 0xee, 0x2a, 0x8a, 0xb7, 0x03, 0x77, 0x62, 0xd4, 0xcd, 0x18, + 0x85, 0x55, 0x34, 0xf0, 0x69, 0x10, 0xac, 0x8f, 0x54, 0xef, 0xdb, 0xe9, 0xcd, 0x57, 0xb6, 0xb1, + 0x98, 0xd9, 0x74, 0x17, 0xa2, 0xe9, 0xf2, 0x6a, 0xe6, 0xd7, 0x16, 0xdf, 0x81, 0xb1, 0x6d, 0x99, + 0xd6, 0x54, 0xad, 0xe2, 0x64, 0xf6, 0x2c, 0x8c, 0xb2, 0x24, 0x2a, 0x2b, 0xb2, 0x5a, 0xa7, 0x35, + 0xfe, 0xfc, 0x1c, 0x95, 0x8e, 0xdb, 0x93, 0xeb, 0x38, 0x47, 0xe6, 0x60, 0x8c, 0xa7, 0x89, 0x2b, + 0xd5, 0xcf, 0xa4, 0x46, 0xd9, 0xac, 0x23, 0x26, 0x1e, 0x08, 0x58, 0xa9, 0x1d, 0x93, 0x3c, 0x8f, + 0xf1, 0xbb, 0x90, 0xc4, 0x24, 0xb1, 0x5a, 0x8d, 0xde, 0xca, 0x25, 0xe8, 0xee, 0x6f, 0x42, 0x60, + 0xd0, 0x66, 0x86, 0xd5, 0x92, 0xfd, 0x26, 0x29, 0x18, 0x62, 0x3c, 0x58, 0xba, 0x25, 0x24, 0x3e, + 0x20, 0x8f, 0x60, 0xdc, 0xe4, 0xa6, 0xba, 0xe9, 0x38, 0x18, 0xf5, 0x98, 0xf7, 0xfb, 0x86, 0xbd, + 0xb0, 0x05, 0x69, 0xcc, 0xf4, 0xcd, 0x8a, 0xfb, 0x03, 0x30, 0xc6, 0x4c, 0xdb, 0xa2, 0x2a, 0x77, + 0x2b, 0x59, 0x05, 0x68, 0x50, 0xd5, 0x28, 0xb2, 0x62, 0x8a, 0x99, 0x37, 0x6b, 0x3f, 0xcf, 0xa3, + 0xb2, 0x2f, 0x61, 0xab, 0x31, 0x30, 0x1b, 0x83, 0x1d, 0x04, 0xc7, 0xe8, 0xef, 0x01, 0xc3, 0x7d, + 0x75, 0x91, 0x75, 0x48, 0xf2, 0x73, 0xe2, 0x20, 0x03, 0xf1, 0x41, 0x78, 0x19, 0xe4, 0x28, 0x8f, + 0xe0, 0x24, 0x63, 0x22, 0x37, 0xeb, 0x4d, 0xbb, 0x36, 0xec, 0x39, 0x78, 0x83, 0xf1, 0xf1, 0x26, + 0x6d, 0x84, 0x35, 0x17, 0x80, 0x03, 0xbf, 0x05, 0x53, 0x9c, 0x5e, 0x07, 0xf2, 0x50, 0x7c, 0xe4, + 0x14, 0x83, 0x68, 0x87, 0x9e, 0x83, 0x31, 0xc6, 0xd9, 0x52, 0xeb, 0x8a, 0x69, 0xd1, 0x7a, 0x23, + 0x3d, 0x3c, 0x23, 0x2c, 0x0e, 0x48, 0x2c, 0xb8, 0x1f, 0x3a, 0x93, 0x64, 0x01, 0xc6, 0x39, 0x83, + 0x43, 0xb9, 0x63, 0x4c, 0x8e, 0xc7, 0xb7, 0x2b, 0x28, 0x6a, 0xf8, 0xb0, 0xf0, 0x45, 0x32, 0xe6, + 0xa4, 0x04, 0x13, 0xfc, 0xca, 0x65, 0x67, 0x1e, 0xb7, 0x4f, 0xf4, 0x45, 0x8c, 0x34, 0xd6, 0xf0, + 0x8d, 0x0b, 0x3f, 0xa4, 0x61, 0x88, 0x6d, 0x48, 0x3e, 0x16, 0x60, 0x98, 0x77, 0x78, 0xa4, 0x4b, + 0xd5, 0xed, 0x6c, 0x2c, 0x33, 0x97, 0x62, 0x4a, 0x73, 0x2b, 0xc4, 0xc5, 0x0f, 0x7e, 0xfa, 0xfd, + 0xd3, 0x7e, 0x91, 0xcc, 0xe4, 0x43, 0xbb, 0x6f, 0xde, 0x5a, 0x92, 0x2f, 0x04, 0x38, 0xee, 0x6d, + 0x1d, 0x49, 0x21, 0x62, 0xa7, 0x80, 0x1e, 0x34, 0x73, 0xa5, 0x27, 0x1d, 0xe4, 0x98, 0x67, 0x1c, + 0x97, 0xc8, 0x42, 0x38, 0xc7, 0x12, 0xd5, 0xca, 0x45, 0xa7, 0x61, 0x25, 0xdf, 0x08, 0x30, 0xde, + 0xd6, 0x8d, 0x92, 0xbf, 0xc6, 0xd8, 0xb9, 0xb3, 0x07, 0xc8, 0x5c, 0xeb, 0x55, 0x0d, 0x39, 0x5f, + 0x61, 0x9c, 0x2f, 0x91, 0x8b, 0x11, 0x9c, 0xbd, 0xfd, 0x03, 0xf9, 0x56, 0x00, 0xd2, 0xd9, 0xb6, + 0x92, 0x1b, 0x31, 0x38, 0x04, 0xf6, 0xc2, 0x99, 0xbf, 0x1d, 0x41, 0x13, 0x0d, 0xb8, 0xce, 0x0c, + 0x58, 0x21, 0xf9, 0x08, 0x03, 0xd4, 0x92, 0xec, 0x37, 0xe2, 0x7b, 0x01, 0x52, 0x41, 0x7d, 0x2e, + 0xb9, 0x19, 0x15, 0x99, 0xe1, 0x0d, 0x74, 0xe6, 0xef, 0x47, 0xd2, 0x45, 0x53, 0x6e, 0x30, 0x53, + 0x0a, 0xe4, 0x72, 0x97, 0x18, 0xb7, 0xd5, 0x76, 0x14, 0xa5, 0xed, 0x40, 0xbe, 0x13, 0x60, 0x32, + 0xa0, 0x3d, 0x26, 0x51, 0x7e, 0x0d, 0xef, 0xba, 0x33, 0x37, 0x8f, 0xa2, 0x1a, 0xff, 0x4c, 0x64, + 0x54, 0xf7, 0xdb, 0x61, 0x27, 0x44, 0x5b, 0x4b, 0x1d, 0x99, 0x10, 0xc1, 0x1d, 0x7a, 0x64, 0x42, + 0x84, 0x74, 0xee, 0x71, 0x12, 0xa2, 0xd1, 0xb2, 0xaa, 0x7e, 0xde, 0x2f, 0x04, 0x98, 0x68, 0xef, + 0xbe, 0x49, 0x14, 0x83, 0x90, 0x76, 0x3e, 0x73, 0xbd, 0x67, 0x3d, 0xa4, 0x7e, 0x95, 0x51, 0xcf, + 0x91, 0xe5, 0x70, 0xea, 0xf6, 0xc3, 0x74, 0xd7, 0xcf, 0xfd, 0x6b, 0x01, 0xc6, 0xdb, 0x7a, 0xf5, + 0x48, 0x9f, 0x07, 0xb7, 0xfe, 0x99, 0x6b, 0xbd, 0xaa, 0x21, 0xf1, 0x02, 0x23, 0xbe, 0x4c, 0xfe, + 0x12, 0x49, 0xfc, 0x90, 0xe2, 0xcf, 0x02, 0x90, 0xce, 0x66, 0x3e, 0xb2, 0x06, 0x85, 0x7e, 0x55, + 0x88, 0xac, 0x41, 0xe1, 0x5f, 0x0e, 0xc4, 0xff, 0x30, 0xfe, 0xeb, 0x64, 0xb5, 0x5b, 0xe2, 0x72, + 0x6d, 0xaf, 0xef, 0xf3, 0xcf, 0x9c, 0xd9, 0xe7, 0xf9, 0x67, 0xbc, 0x93, 0x7e, 0x4e, 0xbe, 0x14, + 0xe0, 0x04, 0xbf, 0xc6, 0x3d, 0x5f, 0x09, 0xc8, 0x4a, 0x04, 0xb9, 0xce, 0x8f, 0x0d, 0x99, 0x42, + 0x2f, 0x2a, 0x68, 0x48, 0x8e, 0x19, 0xb2, 0x48, 0xe6, 0xc3, 0x0d, 0xa9, 0x33, 0x35, 0x6e, 0x00, + 0xf9, 0x51, 0x80, 0xa9, 0xe0, 0x8e, 0x9f, 0xdc, 0x8a, 0xd8, 0xbe, 0xeb, 0x97, 0x8a, 0xcc, 0x3f, + 0x8e, 0xa8, 0x8d, 0x76, 0xdc, 0x64, 0x76, 0x5c, 0x25, 0x85, 0x70, 0x3b, 0xaa, 0x2e, 0x42, 0xd1, + 0xf7, 0x45, 0x82, 0x7c, 0x25, 0xc0, 0x44, 0x7b, 0xd3, 0x1a, 0x99, 0xcb, 0x21, 0x4d, 0x7f, 0x64, + 0x2e, 0x87, 0x75, 0xc7, 0xe2, 0x32, 0xb3, 0x60, 0x9e, 0x5c, 0x08, 0xb7, 0xc0, 0xd3, 0x0a, 0xbf, + 0x10, 0x60, 0x32, 0xa0, 0x85, 0x8c, 0xac, 0xff, 0xe1, 0x9d, 0x69, 0x64, 0xfd, 0xef, 0xd2, 0xb1, + 0x8a, 0x17, 0x19, 0xf9, 0x39, 0x32, 0x1b, 0x9d, 0x0f, 0xec, 0x31, 0x91, 0x0a, 0x6a, 0x2a, 0x49, + 0x6f, 0x0c, 0x7c, 0x9d, 0x6c, 0xe4, 0x3d, 0xdc, 0xad, 0x8b, 0x15, 0x57, 0x18, 0xfd, 0x8b, 0x64, + 0x29, 0x6e, 0x3a, 0x9b, 0xe4, 0x73, 0x01, 0x92, 0x9e, 0xc7, 0x77, 0x64, 0xbe, 0x76, 0xb6, 0x9c, + 0x91, 0xf9, 0x1a, 0xf0, 0xb6, 0x17, 0x17, 0x18, 0xd3, 0xf3, 0x64, 0x3a, 0xe2, 0xc5, 0x40, 0x3e, + 0x13, 0x20, 0xe1, 0xde, 0x78, 0x24, 0x1f, 0xf7, 0x6e, 0x74, 0xb8, 0x5d, 0x8e, 0xaf, 0x10, 0x3f, + 0x7e, 0x0f, 0xaf, 0xd1, 0xd5, 0x9d, 0x97, 0xfb, 0x59, 0xe1, 0xd5, 0x7e, 0x56, 0xf8, 0x6d, 0x3f, + 0x2b, 0x7c, 0x72, 0x90, 0xed, 0x7b, 0x75, 0x90, 0xed, 0xfb, 0xe5, 0x20, 0xdb, 0xf7, 0xf6, 0x66, + 0x45, 0xb5, 0xaa, 0xcd, 0x52, 0x4e, 0xd6, 0xeb, 0xf9, 0x0d, 0x07, 0x69, 0x93, 0x96, 0xcc, 0x43, + 0xdc, 0x4b, 0xb2, 0x6e, 0x28, 0xde, 0x61, 0x95, 0xaa, 0x1a, 0xd6, 0x29, 0xd3, 0xd9, 0xd4, 0x6e, + 0xe3, 0xcd, 0xd2, 0x30, 0xfb, 0x0f, 0xee, 0xca, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x91, 0x50, + 0x4b, 0xd5, 0x48, 0x1c, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1676,6 +1924,10 @@ type QueryClient interface { CoinbasePriceStates(ctx context.Context, in *QueryCoinbasePriceStatesRequest, opts ...grpc.CallOption) (*QueryCoinbasePriceStatesResponse, error) // Retrieves the state for all pyth price feeds PythPriceStates(ctx context.Context, in *QueryPythPriceStatesRequest, opts ...grpc.CallOption) (*QueryPythPriceStatesResponse, error) + // Retrieves the state for all stork price feeds + StorkPriceStates(ctx context.Context, in *QueryStorkPriceStatesRequest, opts ...grpc.CallOption) (*QueryStorkPriceStatesResponse, error) + // Retrieves all stork publishers + StorkPublishers(ctx context.Context, in *QueryStorkPublishersRequest, opts ...grpc.CallOption) (*QueryStorkPublishersResponse, error) // Retrieves the state for all provider price feeds ProviderPriceState(ctx context.Context, in *QueryProviderPriceStateRequest, opts ...grpc.CallOption) (*QueryProviderPriceStateResponse, error) // Retrieves the entire oracle module's state @@ -1761,6 +2013,24 @@ func (c *queryClient) PythPriceStates(ctx context.Context, in *QueryPythPriceSta return out, nil } +func (c *queryClient) StorkPriceStates(ctx context.Context, in *QueryStorkPriceStatesRequest, opts ...grpc.CallOption) (*QueryStorkPriceStatesResponse, error) { + out := new(QueryStorkPriceStatesResponse) + err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Query/StorkPriceStates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) StorkPublishers(ctx context.Context, in *QueryStorkPublishersRequest, opts ...grpc.CallOption) (*QueryStorkPublishersResponse, error) { + out := new(QueryStorkPublishersResponse) + err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Query/StorkPublishers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *queryClient) ProviderPriceState(ctx context.Context, in *QueryProviderPriceStateRequest, opts ...grpc.CallOption) (*QueryProviderPriceStateResponse, error) { out := new(QueryProviderPriceStateResponse) err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Query/ProviderPriceState", in, out, opts...) @@ -1849,6 +2119,10 @@ type QueryServer interface { CoinbasePriceStates(context.Context, *QueryCoinbasePriceStatesRequest) (*QueryCoinbasePriceStatesResponse, error) // Retrieves the state for all pyth price feeds PythPriceStates(context.Context, *QueryPythPriceStatesRequest) (*QueryPythPriceStatesResponse, error) + // Retrieves the state for all stork price feeds + StorkPriceStates(context.Context, *QueryStorkPriceStatesRequest) (*QueryStorkPriceStatesResponse, error) + // Retrieves all stork publishers + StorkPublishers(context.Context, *QueryStorkPublishersRequest) (*QueryStorkPublishersResponse, error) // Retrieves the state for all provider price feeds ProviderPriceState(context.Context, *QueryProviderPriceStateRequest) (*QueryProviderPriceStateResponse, error) // Retrieves the entire oracle module's state @@ -1888,6 +2162,12 @@ func (*UnimplementedQueryServer) CoinbasePriceStates(ctx context.Context, req *Q func (*UnimplementedQueryServer) PythPriceStates(ctx context.Context, req *QueryPythPriceStatesRequest) (*QueryPythPriceStatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PythPriceStates not implemented") } +func (*UnimplementedQueryServer) StorkPriceStates(ctx context.Context, req *QueryStorkPriceStatesRequest) (*QueryStorkPriceStatesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StorkPriceStates not implemented") +} +func (*UnimplementedQueryServer) StorkPublishers(ctx context.Context, req *QueryStorkPublishersRequest) (*QueryStorkPublishersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StorkPublishers not implemented") +} func (*UnimplementedQueryServer) ProviderPriceState(ctx context.Context, req *QueryProviderPriceStateRequest) (*QueryProviderPriceStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ProviderPriceState not implemented") } @@ -2043,6 +2323,42 @@ func _Query_PythPriceStates_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _Query_StorkPriceStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryStorkPriceStatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).StorkPriceStates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.oracle.v1beta1.Query/StorkPriceStates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).StorkPriceStates(ctx, req.(*QueryStorkPriceStatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_StorkPublishers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryStorkPublishersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).StorkPublishers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.oracle.v1beta1.Query/StorkPublishers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).StorkPublishers(ctx, req.(*QueryStorkPublishersRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Query_ProviderPriceState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryProviderPriceStateRequest) if err := dec(in); err != nil { @@ -2219,6 +2535,14 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "PythPriceStates", Handler: _Query_PythPriceStates_Handler, }, + { + MethodName: "StorkPriceStates", + Handler: _Query_StorkPriceStates_Handler, + }, + { + MethodName: "StorkPublishers", + Handler: _Query_StorkPublishers_Handler, + }, { MethodName: "ProviderPriceState", Handler: _Query_ProviderPriceState_Handler, @@ -2732,7 +3056,7 @@ func (m *QueryPythPriceStatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *QueryProviderPriceStateRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryStorkPriceStatesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2742,34 +3066,20 @@ func (m *QueryProviderPriceStateRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryProviderPriceStateRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryStorkPriceStatesRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryProviderPriceStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryStorkPriceStatesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Symbol) > 0 { - i -= len(m.Symbol) - copy(dAtA[i:], m.Symbol) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Symbol))) - i-- - dAtA[i] = 0x12 - } - if len(m.Provider) > 0 { - i -= len(m.Provider) - copy(dAtA[i:], m.Provider) - i = encodeVarintQuery(dAtA, i, uint64(len(m.Provider))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *QueryProviderPriceStateResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryStorkPriceStatesResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2779,32 +3089,34 @@ func (m *QueryProviderPriceStateResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryProviderPriceStateResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryStorkPriceStatesResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryProviderPriceStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryStorkPriceStatesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.PriceState != nil { - { - size, err := m.PriceState.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.PriceStates) > 0 { + for iNdEx := len(m.PriceStates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PriceStates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryStorkPublishersRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2814,12 +3126,12 @@ func (m *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryModuleStateRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryStorkPublishersRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryModuleStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryStorkPublishersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -2827,7 +3139,7 @@ func (m *QueryModuleStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *QueryModuleStateResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryStorkPublishersResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2837,19 +3149,146 @@ func (m *QueryModuleStateResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryModuleStateResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryStorkPublishersResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryStorkPublishersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.State != nil { - { - size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if len(m.Publishers) > 0 { + for iNdEx := len(m.Publishers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Publishers[iNdEx]) + copy(dAtA[i:], m.Publishers[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Publishers[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryProviderPriceStateRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProviderPriceStateRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProviderPriceStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Symbol) > 0 { + i -= len(m.Symbol) + copy(dAtA[i:], m.Symbol) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Symbol))) + i-- + dAtA[i] = 0x12 + } + if len(m.Provider) > 0 { + i -= len(m.Provider) + copy(dAtA[i:], m.Provider) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Provider))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryProviderPriceStateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryProviderPriceStateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryProviderPriceStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PriceState != nil { + { + size, err := m.PriceState.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 *QueryModuleStateRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryModuleStateResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryModuleStateResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryModuleStateResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.State != nil { + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -3229,6 +3668,39 @@ func (m *QueryOracleProviderPricesResponse) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } +func (m *ScalingOptions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScalingOptions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ScalingOptions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.QuoteDecimals != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.QuoteDecimals)) + i-- + dAtA[i] = 0x10 + } + if m.BaseDecimals != 0 { + i = encodeVarintQuery(dAtA, i, uint64(m.BaseDecimals)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func (m *QueryOraclePriceRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -3249,6 +3721,18 @@ func (m *QueryOraclePriceRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l + if m.ScalingOptions != nil { + { + size, err := m.ScalingOptions.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if len(m.Quote) > 0 { i -= len(m.Quote) copy(dAtA[i:], m.Quote) @@ -3590,6 +4074,54 @@ func (m *QueryPythPriceStatesResponse) Size() (n int) { return n } +func (m *QueryStorkPriceStatesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryStorkPriceStatesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.PriceStates) > 0 { + for _, e := range m.PriceStates { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryStorkPublishersRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryStorkPublishersResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Publishers) > 0 { + for _, s := range m.Publishers { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + func (m *QueryProviderPriceStateRequest) Size() (n int) { if m == nil { return 0 @@ -3787,6 +4319,21 @@ func (m *QueryOracleProviderPricesResponse) Size() (n int) { return n } +func (m *ScalingOptions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BaseDecimals != 0 { + n += 1 + sovQuery(uint64(m.BaseDecimals)) + } + if m.QuoteDecimals != 0 { + n += 1 + sovQuery(uint64(m.QuoteDecimals)) + } + return n +} + func (m *QueryOraclePriceRequest) Size() (n int) { if m == nil { return 0 @@ -3804,6 +4351,10 @@ func (m *QueryOraclePriceRequest) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } + if m.ScalingOptions != nil { + l = m.ScalingOptions.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -3933,7 +4484,276 @@ func (m *QueryPythPriceRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPythPriceResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPythPriceResponse) Unmarshal(dAtA []byte) 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: QueryPythPriceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryPythPriceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PriceState", 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 m.PriceState == nil { + m.PriceState = &PythPriceState{} + } + if err := m.PriceState.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 *QueryParamsRequest) Unmarshal(dAtA []byte) 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: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: 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 *QueryParamsResponse) Unmarshal(dAtA []byte) 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: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", 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.Params.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 *QueryBandRelayersRequest) Unmarshal(dAtA []byte) 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: QueryBandRelayersRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryBandRelayersRequest: 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 *QueryBandRelayersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -3956,17 +4776,17 @@ func (m *QueryPythPriceResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPythPriceResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBandRelayersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPythPriceResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBandRelayersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PriceState", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -3976,27 +4796,23 @@ func (m *QueryPythPriceResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - if m.PriceState == nil { - m.PriceState = &PythPriceState{} - } - if err := m.PriceState.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -4019,7 +4835,7 @@ func (m *QueryPythPriceResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { +func (m *QueryBandPriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4042,10 +4858,10 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBandPriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBandPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4069,7 +4885,7 @@ func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { +func (m *QueryBandPriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4092,15 +4908,15 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBandPriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBandPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PriceStates", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -4127,7 +4943,8 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.PriceStates = append(m.PriceStates, &BandPriceState{}) + if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -4152,7 +4969,7 @@ func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandRelayersRequest) Unmarshal(dAtA []byte) error { +func (m *QueryBandIBCPriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4175,10 +4992,10 @@ func (m *QueryBandRelayersRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandRelayersRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBandIBCPriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandRelayersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBandIBCPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4202,7 +5019,7 @@ func (m *QueryBandRelayersRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandRelayersResponse) Unmarshal(dAtA []byte) error { +func (m *QueryBandIBCPriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4225,17 +5042,17 @@ func (m *QueryBandRelayersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandRelayersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryBandIBCPriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandRelayersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryBandIBCPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PriceStates", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4245,23 +5062,25 @@ func (m *QueryBandRelayersResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex])) + m.PriceStates = append(m.PriceStates, &BandPriceState{}) + if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -4284,7 +5103,7 @@ func (m *QueryBandRelayersResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandPriceStatesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPriceFeedPriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4307,10 +5126,10 @@ func (m *QueryBandPriceStatesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandPriceStatesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPriceFeedPriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPriceFeedPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4334,7 +5153,7 @@ func (m *QueryBandPriceStatesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandPriceStatesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPriceFeedPriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4357,10 +5176,10 @@ func (m *QueryBandPriceStatesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandPriceStatesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPriceFeedPriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPriceFeedPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4392,7 +5211,7 @@ func (m *QueryBandPriceStatesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PriceStates = append(m.PriceStates, &BandPriceState{}) + m.PriceStates = append(m.PriceStates, &PriceFeedState{}) if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4418,7 +5237,7 @@ func (m *QueryBandPriceStatesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandIBCPriceStatesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryCoinbasePriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4441,10 +5260,10 @@ func (m *QueryBandIBCPriceStatesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandIBCPriceStatesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryCoinbasePriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandIBCPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryCoinbasePriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4468,7 +5287,7 @@ func (m *QueryBandIBCPriceStatesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryBandIBCPriceStatesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryCoinbasePriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4491,10 +5310,10 @@ func (m *QueryBandIBCPriceStatesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryBandIBCPriceStatesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryCoinbasePriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryBandIBCPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryCoinbasePriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4526,7 +5345,7 @@ func (m *QueryBandIBCPriceStatesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PriceStates = append(m.PriceStates, &BandPriceState{}) + m.PriceStates = append(m.PriceStates, &CoinbasePriceState{}) if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4552,7 +5371,7 @@ func (m *QueryBandIBCPriceStatesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPriceFeedPriceStatesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPythPriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4575,10 +5394,10 @@ func (m *QueryPriceFeedPriceStatesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPriceFeedPriceStatesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPythPriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPriceFeedPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPythPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4602,7 +5421,7 @@ func (m *QueryPriceFeedPriceStatesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPriceFeedPriceStatesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPythPriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4625,10 +5444,10 @@ func (m *QueryPriceFeedPriceStatesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPriceFeedPriceStatesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPythPriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPriceFeedPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPythPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4660,7 +5479,7 @@ func (m *QueryPriceFeedPriceStatesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PriceStates = append(m.PriceStates, &PriceFeedState{}) + m.PriceStates = append(m.PriceStates, &PythPriceState{}) if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4686,7 +5505,7 @@ func (m *QueryPriceFeedPriceStatesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryCoinbasePriceStatesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryStorkPriceStatesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4709,10 +5528,10 @@ func (m *QueryCoinbasePriceStatesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryCoinbasePriceStatesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryStorkPriceStatesRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryCoinbasePriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryStorkPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4736,7 +5555,7 @@ func (m *QueryCoinbasePriceStatesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryCoinbasePriceStatesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryStorkPriceStatesResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4759,10 +5578,10 @@ func (m *QueryCoinbasePriceStatesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryCoinbasePriceStatesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryStorkPriceStatesResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryCoinbasePriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryStorkPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -4794,7 +5613,7 @@ func (m *QueryCoinbasePriceStatesResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PriceStates = append(m.PriceStates, &CoinbasePriceState{}) + m.PriceStates = append(m.PriceStates, &StorkPriceState{}) if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -4820,7 +5639,7 @@ func (m *QueryCoinbasePriceStatesResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPythPriceStatesRequest) Unmarshal(dAtA []byte) error { +func (m *QueryStorkPublishersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4843,10 +5662,10 @@ func (m *QueryPythPriceStatesRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPythPriceStatesRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryStorkPublishersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPythPriceStatesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryStorkPublishersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: @@ -4870,7 +5689,7 @@ func (m *QueryPythPriceStatesRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPythPriceStatesResponse) Unmarshal(dAtA []byte) error { +func (m *QueryStorkPublishersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -4893,17 +5712,17 @@ func (m *QueryPythPriceStatesResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPythPriceStatesResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryStorkPublishersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPythPriceStatesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryStorkPublishersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PriceStates", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Publishers", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4913,25 +5732,23 @@ func (m *QueryPythPriceStatesResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthQuery } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthQuery } if postIndex > l { return io.ErrUnexpectedEOF } - m.PriceStates = append(m.PriceStates, &PythPriceState{}) - if err := m.PriceStates[len(m.PriceStates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Publishers = append(m.Publishers, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -5801,7 +6618,7 @@ func (m *QueryOracleVolatilityResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Volatility = &v if err := m.Volatility.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6198,6 +7015,94 @@ func (m *QueryOracleProviderPricesResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *ScalingOptions) Unmarshal(dAtA []byte) 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: ScalingOptions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScalingOptions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseDecimals", wireType) + } + m.BaseDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.BaseDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field QuoteDecimals", wireType) + } + m.QuoteDecimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.QuoteDecimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 *QueryOraclePriceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -6310,6 +7215,42 @@ func (m *QueryOraclePriceRequest) Unmarshal(dAtA []byte) error { } m.Quote = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScalingOptions", 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 m.ScalingOptions == nil { + m.ScalingOptions = &ScalingOptions{} + } + if err := m.ScalingOptions.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) diff --git a/chain/oracle/types/stork.go b/chain/oracle/types/stork.go new file mode 100644 index 00000000..343eb8e8 --- /dev/null +++ b/chain/oracle/types/stork.go @@ -0,0 +1,29 @@ +package types + +import ( + "cosmossdk.io/math" +) + +func NewStorkPriceState( + price math.LegacyDec, + timestamp uint64, + symbol string, + blockTime int64, +) *StorkPriceState { + return &StorkPriceState{ + Timestamp: timestamp, + Symbol: symbol, + Value: price, + PriceState: *NewPriceState(price, blockTime), + } +} + +func (s *StorkPriceState) Update(price math.LegacyDec, timestamp uint64, blockTime int64) { + s.Value = price + s.Timestamp = timestamp + s.PriceState.UpdatePrice(price, blockTime) +} + +func ScaleStorkPrice(price math.LegacyDec) math.LegacyDec { + return price.QuoTruncate(EighteenDecimals) +} diff --git a/chain/oracle/types/stork_oracle.go b/chain/oracle/types/stork_oracle.go new file mode 100644 index 00000000..da52f788 --- /dev/null +++ b/chain/oracle/types/stork_oracle.go @@ -0,0 +1,39 @@ +package types + +import ( + "bytes" + "math/big" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/math" + "github.com/ethereum/go-ethereum/crypto" + + peggytypes "github.com/InjectiveLabs/sdk-go/chain/peggy/types" +) + +func getMessageHash(publisher common.Address, assetPairID, timeStamp, price string) (hash common.Hash) { + enc := encodePacked(publisher.Bytes(), []byte(assetPairID), encodeUint256(timeStamp), encodeUint256(price)) + + return crypto.Keccak256Hash(enc) +} + +func encodePacked(input ...[]byte) []byte { + return bytes.Join(input, nil) +} + +func encodeUint256(v string) []byte { + bn := new(big.Int) + bn.SetString(v, 10) + return math.U256Bytes(bn) +} + +func VerifyStorkMsgSignature(oraclePubKey common.Address, assetPairID, timeStamp, price string, signature []byte) bool { + hash := getMessageHash(oraclePubKey, assetPairID, timeStamp, price) + + recoveredPubKey, err := peggytypes.EthAddressFromSignature(hash, signature) + if err != nil { + return false + } + + return recoveredPubKey == oraclePubKey +} diff --git a/chain/oracle/types/tx.pb.go b/chain/oracle/types/tx.pb.go index c993e9d9..eaf64d6b 100644 --- a/chain/oracle/types/tx.pb.go +++ b/chain/oracle/types/tx.pb.go @@ -5,10 +5,11 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/cosmos/cosmos-proto" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -34,10 +35,10 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // MsgRelayProviderPrice defines a SDK message for setting a price through the // provider oracle. type MsgRelayProviderPrices struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty"` - Symbols []string `protobuf:"bytes,3,rep,name=symbols,proto3" json:"symbols,omitempty"` - Prices []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,rep,name=prices,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"prices"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty"` + Symbols []string `protobuf:"bytes,3,rep,name=symbols,proto3" json:"symbols,omitempty"` + Prices []cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,rep,name=prices,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"prices"` } func (m *MsgRelayProviderPrices) Reset() { *m = MsgRelayProviderPrices{} } @@ -116,7 +117,7 @@ type MsgRelayPriceFeedPrice struct { Base []string `protobuf:"bytes,2,rep,name=base,proto3" json:"base,omitempty"` Quote []string `protobuf:"bytes,3,rep,name=quote,proto3" json:"quote,omitempty"` // price defines the price of the oracle base and quote - Price []github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,rep,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + Price []cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,rep,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` } func (m *MsgRelayPriceFeedPrice) Reset() { *m = MsgRelayPriceFeedPrice{} } @@ -377,6 +378,82 @@ func (m *MsgRelayCoinbaseMessagesResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgRelayCoinbaseMessagesResponse proto.InternalMessageInfo +// MsgRelayStorkPrices defines a SDK message for relaying price message +// from Stork API. +type MsgRelayStorkPrices struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + AssetPairs []*AssetPair `protobuf:"bytes,2,rep,name=asset_pairs,json=assetPairs,proto3" json:"asset_pairs,omitempty"` +} + +func (m *MsgRelayStorkPrices) Reset() { *m = MsgRelayStorkPrices{} } +func (m *MsgRelayStorkPrices) String() string { return proto.CompactTextString(m) } +func (*MsgRelayStorkPrices) ProtoMessage() {} +func (*MsgRelayStorkPrices) Descriptor() ([]byte, []int) { + return fileDescriptor_5fdf1c490eba4310, []int{8} +} +func (m *MsgRelayStorkPrices) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRelayStorkPrices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRelayStorkPrices.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRelayStorkPrices) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRelayStorkPrices.Merge(m, src) +} +func (m *MsgRelayStorkPrices) XXX_Size() int { + return m.Size() +} +func (m *MsgRelayStorkPrices) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRelayStorkPrices.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRelayStorkPrices proto.InternalMessageInfo + +type MsgRelayStorkPricesResponse struct { +} + +func (m *MsgRelayStorkPricesResponse) Reset() { *m = MsgRelayStorkPricesResponse{} } +func (m *MsgRelayStorkPricesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRelayStorkPricesResponse) ProtoMessage() {} +func (*MsgRelayStorkPricesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_5fdf1c490eba4310, []int{9} +} +func (m *MsgRelayStorkPricesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRelayStorkPricesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRelayStorkPricesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRelayStorkPricesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRelayStorkPricesResponse.Merge(m, src) +} +func (m *MsgRelayStorkPricesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRelayStorkPricesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRelayStorkPricesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRelayStorkPricesResponse proto.InternalMessageInfo + // MsgRequestBandIBCRates defines a SDK message for requesting data from // BandChain using IBC. type MsgRequestBandIBCRates struct { @@ -388,7 +465,7 @@ func (m *MsgRequestBandIBCRates) Reset() { *m = MsgRequestBandIBCRates{} func (m *MsgRequestBandIBCRates) String() string { return proto.CompactTextString(m) } func (*MsgRequestBandIBCRates) ProtoMessage() {} func (*MsgRequestBandIBCRates) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{8} + return fileDescriptor_5fdf1c490eba4310, []int{10} } func (m *MsgRequestBandIBCRates) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -425,7 +502,7 @@ func (m *MsgRequestBandIBCRatesResponse) Reset() { *m = MsgRequestBandIB func (m *MsgRequestBandIBCRatesResponse) String() string { return proto.CompactTextString(m) } func (*MsgRequestBandIBCRatesResponse) ProtoMessage() {} func (*MsgRequestBandIBCRatesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{9} + return fileDescriptor_5fdf1c490eba4310, []int{11} } func (m *MsgRequestBandIBCRatesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -464,7 +541,7 @@ func (m *MsgRelayPythPrices) Reset() { *m = MsgRelayPythPrices{} } func (m *MsgRelayPythPrices) String() string { return proto.CompactTextString(m) } func (*MsgRelayPythPrices) ProtoMessage() {} func (*MsgRelayPythPrices) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{10} + return fileDescriptor_5fdf1c490eba4310, []int{12} } func (m *MsgRelayPythPrices) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -501,7 +578,7 @@ func (m *MsgRelayPythPricesResponse) Reset() { *m = MsgRelayPythPricesRe func (m *MsgRelayPythPricesResponse) String() string { return proto.CompactTextString(m) } func (*MsgRelayPythPricesResponse) ProtoMessage() {} func (*MsgRelayPythPricesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{11} + return fileDescriptor_5fdf1c490eba4310, []int{13} } func (m *MsgRelayPythPricesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -543,7 +620,7 @@ func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParams) ProtoMessage() {} func (*MsgUpdateParams) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{12} + return fileDescriptor_5fdf1c490eba4310, []int{14} } func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -593,7 +670,7 @@ func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateParamsResponse) ProtoMessage() {} func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_5fdf1c490eba4310, []int{13} + return fileDescriptor_5fdf1c490eba4310, []int{15} } func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -631,6 +708,8 @@ func init() { proto.RegisterType((*MsgRelayBandRatesResponse)(nil), "injective.oracle.v1beta1.MsgRelayBandRatesResponse") proto.RegisterType((*MsgRelayCoinbaseMessages)(nil), "injective.oracle.v1beta1.MsgRelayCoinbaseMessages") proto.RegisterType((*MsgRelayCoinbaseMessagesResponse)(nil), "injective.oracle.v1beta1.MsgRelayCoinbaseMessagesResponse") + proto.RegisterType((*MsgRelayStorkPrices)(nil), "injective.oracle.v1beta1.MsgRelayStorkPrices") + proto.RegisterType((*MsgRelayStorkPricesResponse)(nil), "injective.oracle.v1beta1.MsgRelayStorkPricesResponse") proto.RegisterType((*MsgRequestBandIBCRates)(nil), "injective.oracle.v1beta1.MsgRequestBandIBCRates") proto.RegisterType((*MsgRequestBandIBCRatesResponse)(nil), "injective.oracle.v1beta1.MsgRequestBandIBCRatesResponse") proto.RegisterType((*MsgRelayPythPrices)(nil), "injective.oracle.v1beta1.MsgRelayPythPrices") @@ -642,61 +721,69 @@ func init() { func init() { proto.RegisterFile("injective/oracle/v1beta1/tx.proto", fileDescriptor_5fdf1c490eba4310) } var fileDescriptor_5fdf1c490eba4310 = []byte{ - // 854 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x4f, 0x8f, 0xdb, 0x44, - 0x14, 0x8f, 0x77, 0x93, 0x40, 0xa6, 0xa1, 0x55, 0xa7, 0xa1, 0xf5, 0x1a, 0x70, 0x42, 0x10, 0xa8, - 0x14, 0xd6, 0x26, 0x29, 0x42, 0x28, 0x07, 0xa4, 0xa6, 0xab, 0x4a, 0x2b, 0x35, 0xd2, 0xca, 0xc0, - 0x01, 0x2e, 0xd1, 0xc4, 0x1e, 0x1c, 0x43, 0xec, 0x71, 0x67, 0x26, 0x11, 0x39, 0x02, 0x07, 0x38, - 0x72, 0x45, 0xe2, 0xd0, 0x8f, 0xd0, 0x03, 0x7c, 0x02, 0x2e, 0x3d, 0x56, 0x9c, 0x10, 0x87, 0x0a, - 0xed, 0x1e, 0xe0, 0x03, 0xf0, 0x01, 0x90, 0xc7, 0xe3, 0x59, 0xe7, 0x8f, 0xf3, 0x87, 0x93, 0xfd, - 0xe6, 0xfd, 0xde, 0x9b, 0xdf, 0xef, 0xcd, 0xbc, 0x67, 0x83, 0xd7, 0x83, 0xe8, 0x4b, 0xec, 0xf2, - 0x60, 0x86, 0x6d, 0x42, 0x91, 0x3b, 0xc1, 0xf6, 0xac, 0x33, 0xc2, 0x1c, 0x75, 0x6c, 0xfe, 0xb5, - 0x15, 0x53, 0xc2, 0x09, 0xd4, 0x15, 0xc4, 0x4a, 0x21, 0x96, 0x84, 0x18, 0x0d, 0x9f, 0xf8, 0x44, - 0x80, 0xec, 0xe4, 0x2d, 0xc5, 0x1b, 0x6f, 0x16, 0xa6, 0x94, 0xe1, 0x29, 0xec, 0x96, 0x4b, 0x58, - 0x48, 0x98, 0x1d, 0x32, 0xdf, 0x9e, 0x75, 0x92, 0x87, 0x74, 0x1c, 0xa5, 0x8e, 0x61, 0x9a, 0x38, - 0x35, 0x52, 0x57, 0xfb, 0x37, 0x0d, 0xdc, 0x1c, 0x30, 0xdf, 0xc1, 0x13, 0x34, 0x3f, 0xa3, 0x64, - 0x16, 0x78, 0x98, 0x9e, 0xd1, 0xc0, 0xc5, 0x0c, 0xde, 0x04, 0x55, 0x86, 0x23, 0x0f, 0x53, 0x5d, - 0x6b, 0x69, 0xb7, 0x6b, 0x8e, 0xb4, 0xa0, 0x01, 0x5e, 0x8c, 0x25, 0x52, 0x3f, 0x10, 0x1e, 0x65, - 0x43, 0x1d, 0xbc, 0xc0, 0xe6, 0xe1, 0x88, 0x4c, 0x98, 0x7e, 0xd8, 0x3a, 0xbc, 0x5d, 0x73, 0x32, - 0x13, 0x3e, 0x00, 0xd5, 0x58, 0xe4, 0xd5, 0xcb, 0x89, 0xa3, 0x6f, 0x3d, 0x7d, 0xde, 0x2c, 0xfd, - 0xf9, 0xbc, 0xf9, 0x96, 0x1f, 0xf0, 0xf1, 0x74, 0x64, 0xb9, 0x24, 0x94, 0xcc, 0xe4, 0xe3, 0x98, - 0x79, 0x5f, 0xd9, 0x7c, 0x1e, 0x63, 0x66, 0x9d, 0x60, 0xd7, 0x91, 0xd1, 0xbd, 0x1b, 0x3f, 0x3c, - 0x6e, 0x96, 0xfe, 0x79, 0xdc, 0x2c, 0x7d, 0xfb, 0xf7, 0x93, 0x3b, 0x92, 0x52, 0xbb, 0x05, 0xcc, - 0xf5, 0x22, 0x1c, 0xcc, 0x62, 0x12, 0x31, 0xdc, 0xfe, 0x75, 0x41, 0x67, 0xe0, 0xe2, 0x07, 0x18, - 0x7b, 0xe2, 0xa5, 0x50, 0x27, 0x04, 0xe5, 0x11, 0x62, 0x58, 0x3f, 0x10, 0x42, 0xc4, 0x3b, 0x6c, - 0x80, 0xca, 0xa3, 0x29, 0xe1, 0x58, 0xaa, 0x4b, 0x0d, 0x78, 0x02, 0x2a, 0x82, 0xdd, 0xff, 0x94, - 0x96, 0x06, 0xef, 0xa0, 0x2c, 0x4f, 0x5b, 0x29, 0x7b, 0xa2, 0x81, 0xeb, 0x19, 0xa4, 0x8f, 0x22, - 0xcf, 0x41, 0x1c, 0xb3, 0xe4, 0x20, 0x68, 0xb2, 0xa2, 0x54, 0x65, 0x66, 0xfe, 0x88, 0x0e, 0x16, - 0x8f, 0xa8, 0x01, 0x2a, 0x34, 0x09, 0x16, 0xe2, 0xca, 0x4e, 0x6a, 0xc0, 0x37, 0xc0, 0x4b, 0x14, - 0x33, 0x32, 0x99, 0xe1, 0x21, 0x0f, 0x42, 0x79, 0x7e, 0x65, 0xa7, 0x2e, 0x17, 0x3f, 0x49, 0xd6, - 0xa0, 0x09, 0x00, 0xc5, 0x8f, 0xa6, 0x98, 0xf1, 0xd3, 0x13, 0xa6, 0x57, 0x04, 0x22, 0xb7, 0xd2, - 0xab, 0x27, 0x9a, 0x32, 0x0a, 0xed, 0x57, 0xc0, 0xd1, 0x0a, 0x63, 0xa5, 0xe7, 0x3b, 0x0d, 0xe8, - 0x99, 0xf7, 0x3e, 0x09, 0xa2, 0xa4, 0xee, 0x03, 0xcc, 0x18, 0xf2, 0x37, 0xdf, 0xc9, 0x50, 0x62, - 0x84, 0xaa, 0xba, 0xa3, 0xec, 0x84, 0x1b, 0x0b, 0xfc, 0x08, 0xf1, 0x29, 0x95, 0xda, 0xea, 0x4e, - 0x6e, 0x65, 0x7d, 0xdd, 0xdb, 0xa0, 0x55, 0x44, 0x42, 0x31, 0xf5, 0xe4, 0x95, 0x12, 0x2a, 0x13, - 0x21, 0xa7, 0xfd, 0xfb, 0x69, 0xf5, 0x8b, 0x68, 0xbe, 0xa6, 0xca, 0x34, 0x0c, 0x3c, 0xd1, 0x3c, - 0x65, 0xa7, 0x96, 0x95, 0xc9, 0xdb, 0x7c, 0x03, 0x56, 0x76, 0x51, 0x3c, 0x7e, 0xd6, 0x00, 0x54, - 0x97, 0x64, 0xce, 0xc7, 0x5b, 0xfa, 0xf7, 0x33, 0x00, 0xc5, 0x85, 0x1b, 0x22, 0xce, 0x31, 0xe3, - 0x88, 0x07, 0x24, 0x4a, 0xab, 0x76, 0xa5, 0x7b, 0xc7, 0x2a, 0x1a, 0x4d, 0x96, 0xc8, 0x7a, 0xef, - 0x32, 0xc4, 0xb9, 0x1e, 0x2f, 0xad, 0x14, 0x94, 0xf2, 0x55, 0x60, 0xac, 0xb2, 0x53, 0xe4, 0x7f, - 0xd2, 0xc0, 0xb5, 0x01, 0xf3, 0x3f, 0x8d, 0x3d, 0xc4, 0xf1, 0x19, 0xa2, 0x28, 0x64, 0xf0, 0x03, - 0x50, 0x43, 0x53, 0x3e, 0x26, 0x34, 0xe0, 0xf3, 0x94, 0x7c, 0x5f, 0xff, 0xfd, 0x97, 0xe3, 0x86, - 0x9c, 0x5c, 0xf7, 0x3c, 0x8f, 0x62, 0xc6, 0x3e, 0xe6, 0x34, 0x88, 0x7c, 0xe7, 0x12, 0x0a, 0x3f, - 0x02, 0xd5, 0x58, 0x64, 0x10, 0xa5, 0xbd, 0xd2, 0x6d, 0x6d, 0x50, 0x23, 0x70, 0xfd, 0x72, 0xd2, - 0xaa, 0x8e, 0x8c, 0xea, 0x5d, 0x4d, 0x68, 0x5f, 0xe6, 0x6b, 0x1f, 0x81, 0x5b, 0x4b, 0xd4, 0x32, - 0xda, 0xdd, 0x7f, 0xab, 0xe0, 0x70, 0xc0, 0x7c, 0xf8, 0x8d, 0x06, 0x6e, 0xac, 0x1b, 0x9e, 0xef, - 0x15, 0x6f, 0xbd, 0x7e, 0x52, 0x19, 0x1f, 0xee, 0x1b, 0x91, 0x71, 0xc9, 0x73, 0x58, 0x18, 0x6c, - 0x3b, 0x71, 0xc8, 0x47, 0xec, 0xc6, 0x61, 0xdd, 0x14, 0x82, 0x14, 0x5c, 0x5d, 0x9a, 0x40, 0xef, - 0x6c, 0xcf, 0xa5, 0xc0, 0xc6, 0xdd, 0x3d, 0xc0, 0x4b, 0xba, 0x57, 0xbb, 0x6f, 0x9b, 0xee, 0x95, - 0x88, 0xad, 0xba, 0x0b, 0x7b, 0x0f, 0x7e, 0xaf, 0x81, 0x97, 0xd7, 0x8f, 0xaa, 0xee, 0x76, 0x49, - 0xcb, 0x31, 0x46, 0x6f, 0xff, 0x18, 0xc5, 0x64, 0x0a, 0xae, 0x2d, 0x4f, 0x80, 0x77, 0x77, 0x38, - 0x4e, 0x85, 0x36, 0xde, 0xdf, 0x07, 0xad, 0xb6, 0x9d, 0x80, 0xfa, 0x42, 0xef, 0xbe, 0xbd, 0x31, - 0x4b, 0x1e, 0x6a, 0x74, 0x76, 0x86, 0x66, 0xbb, 0xf5, 0xbf, 0x78, 0x7a, 0x6e, 0x6a, 0xcf, 0xce, - 0x4d, 0xed, 0xaf, 0x73, 0x53, 0xfb, 0xf1, 0xc2, 0x2c, 0x3d, 0xbb, 0x30, 0x4b, 0x7f, 0x5c, 0x98, - 0xa5, 0xcf, 0x1f, 0xe6, 0x3e, 0xb6, 0xa7, 0x59, 0xda, 0x87, 0x68, 0xc4, 0x6c, 0xb5, 0xc9, 0xb1, - 0x4b, 0x28, 0xce, 0x9b, 0x63, 0x14, 0x44, 0x76, 0x48, 0xbc, 0xe9, 0x04, 0xb3, 0xec, 0xcf, 0x4a, - 0x7c, 0x96, 0x47, 0x55, 0xf1, 0x77, 0x74, 0xf7, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x8a, - 0x17, 0xab, 0xcd, 0x09, 0x00, 0x00, + // 990 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0x4f, 0x6f, 0xe3, 0x44, + 0x14, 0x8f, 0xdb, 0xa4, 0x4b, 0x5f, 0x0b, 0xab, 0xba, 0xa5, 0xeb, 0xba, 0x34, 0x09, 0xa9, 0x90, + 0x76, 0x0b, 0x8d, 0x49, 0x97, 0xe5, 0x4f, 0x90, 0x90, 0x9a, 0xad, 0x90, 0x2a, 0xb5, 0x52, 0xe5, + 0x85, 0x03, 0x5c, 0xa2, 0x49, 0x3c, 0x38, 0x66, 0x63, 0x8f, 0x77, 0x66, 0x12, 0x91, 0x1b, 0x70, + 0x80, 0x15, 0x27, 0x3e, 0xc2, 0xde, 0xb8, 0xf6, 0xb0, 0x27, 0x3e, 0xc1, 0x1e, 0x40, 0x5a, 0x71, + 0x42, 0x7b, 0xa8, 0x50, 0x7b, 0x28, 0x9f, 0x80, 0x33, 0xf2, 0xd8, 0x9e, 0x38, 0x4e, 0xdc, 0x24, + 0x97, 0xd6, 0xef, 0xbd, 0xdf, 0x7b, 0xf3, 0xfb, 0xf9, 0xcd, 0x7b, 0x0e, 0xbc, 0xed, 0x78, 0xdf, + 0xe2, 0x36, 0x77, 0xfa, 0xd8, 0x20, 0x14, 0xb5, 0xbb, 0xd8, 0xe8, 0xd7, 0x5a, 0x98, 0xa3, 0x9a, + 0xc1, 0xbf, 0xab, 0xfa, 0x94, 0x70, 0xa2, 0x6a, 0x12, 0x52, 0x0d, 0x21, 0xd5, 0x08, 0xa2, 0x6f, + 0xd8, 0xc4, 0x26, 0x02, 0x64, 0x04, 0x4f, 0x21, 0x5e, 0x7f, 0x27, 0xb3, 0x64, 0x94, 0x1e, 0xc2, + 0xee, 0xb4, 0x09, 0x73, 0x09, 0x33, 0x5c, 0x66, 0x1b, 0xfd, 0x5a, 0xf0, 0x2f, 0x0a, 0x6c, 0x85, + 0x81, 0x66, 0x58, 0x38, 0x34, 0xa2, 0xd0, 0x1a, 0x72, 0x1d, 0x8f, 0x18, 0xe2, 0x6f, 0xe8, 0xaa, + 0xbc, 0x52, 0x60, 0xf3, 0x94, 0xd9, 0x26, 0xee, 0xa2, 0xc1, 0x19, 0x25, 0x7d, 0xc7, 0xc2, 0xf4, + 0x8c, 0x3a, 0x6d, 0xcc, 0xd4, 0x4d, 0x58, 0x62, 0xd8, 0xb3, 0x30, 0xd5, 0x94, 0xb2, 0x72, 0x77, + 0xd9, 0x8c, 0x2c, 0x55, 0x87, 0xd7, 0xfc, 0x08, 0xa9, 0x2d, 0x88, 0x88, 0xb4, 0x55, 0x0d, 0x6e, + 0xb1, 0x81, 0xdb, 0x22, 0x5d, 0xa6, 0x2d, 0x96, 0x17, 0xef, 0x2e, 0x9b, 0xb1, 0xa9, 0x7e, 0x0a, + 0x4b, 0xbe, 0xa8, 0xab, 0xe5, 0x83, 0x40, 0x63, 0xf7, 0xc5, 0x45, 0x29, 0xf7, 0xea, 0xa2, 0xb4, + 0x1d, 0x32, 0x64, 0xd6, 0xe3, 0xaa, 0x43, 0x0c, 0x17, 0xf1, 0x4e, 0xf5, 0x04, 0xdb, 0xa8, 0x3d, + 0x38, 0xc2, 0x6d, 0x33, 0x4a, 0xa9, 0x3f, 0x78, 0xfa, 0xac, 0x94, 0xfb, 0xf7, 0x59, 0x29, 0xf7, + 0xe3, 0xf5, 0xf9, 0x5e, 0xc4, 0xe3, 0x97, 0xeb, 0xf3, 0xbd, 0x9d, 0xe8, 0x0d, 0x4d, 0x56, 0x50, + 0x29, 0x43, 0x71, 0x72, 0xc4, 0xc4, 0xcc, 0x27, 0x1e, 0xc3, 0x95, 0x3f, 0x46, 0xe4, 0x3b, 0x6d, + 0xfc, 0x39, 0xc6, 0x96, 0x78, 0xc8, 0x94, 0xaf, 0x42, 0xbe, 0x85, 0x18, 0xd6, 0x16, 0x84, 0x3e, + 0xf1, 0xac, 0x6e, 0x40, 0xe1, 0x49, 0x8f, 0x70, 0x1c, 0x89, 0x0e, 0x0d, 0xf5, 0x13, 0x28, 0x08, + 0xfe, 0xf3, 0x28, 0x0e, 0x33, 0xe6, 0x10, 0x9c, 0xe4, 0x3c, 0x2a, 0x38, 0x19, 0x91, 0x82, 0xff, + 0x54, 0x60, 0x2d, 0x86, 0x34, 0x90, 0x67, 0x99, 0x88, 0x63, 0x16, 0xb4, 0x8d, 0x06, 0x1e, 0x29, + 0x36, 0x36, 0x93, 0x0d, 0x5d, 0x18, 0x6d, 0xe8, 0x06, 0x14, 0x68, 0x90, 0x2c, 0x34, 0xe7, 0xcd, + 0xd0, 0x50, 0x77, 0xe1, 0x75, 0x8a, 0x19, 0xe9, 0xf6, 0x71, 0x93, 0x3b, 0x6e, 0xd4, 0xed, 0xbc, + 0xb9, 0x1a, 0x39, 0xbf, 0x08, 0x7c, 0x6a, 0x11, 0x80, 0xe2, 0x27, 0x3d, 0xcc, 0xf8, 0xf1, 0x11, + 0xd3, 0x0a, 0x02, 0x91, 0xf0, 0xd4, 0xef, 0x05, 0xaa, 0x63, 0x0a, 0x81, 0x6c, 0x2d, 0x25, 0x5b, + 0x32, 0xaf, 0x6c, 0xc3, 0xd6, 0x98, 0x53, 0x8a, 0xfd, 0x4d, 0x01, 0x2d, 0x8e, 0x3e, 0x24, 0x8e, + 0x17, 0xf4, 0xea, 0x14, 0x33, 0x86, 0xec, 0x9b, 0xaf, 0xb7, 0x1b, 0x61, 0x84, 0xe4, 0x55, 0x53, + 0xda, 0x01, 0x71, 0xe6, 0xd8, 0x1e, 0xe2, 0x3d, 0x1a, 0x09, 0x5f, 0x35, 0x13, 0x9e, 0xfa, 0x47, + 0x19, 0x6d, 0x2b, 0xa5, 0xf8, 0xa7, 0xc9, 0x54, 0x2a, 0x50, 0xce, 0x8a, 0x49, 0x35, 0x4f, 0x15, + 0x58, 0x8f, 0x41, 0x8f, 0x38, 0xa1, 0x8f, 0xa7, 0xcc, 0xe9, 0x11, 0xac, 0x20, 0xc6, 0x30, 0x6f, + 0xfa, 0xc8, 0xa1, 0xa1, 0x96, 0x95, 0x83, 0xdd, 0x6a, 0xd6, 0x3a, 0xaa, 0x1e, 0x06, 0xe0, 0x33, + 0xe4, 0x50, 0x13, 0x50, 0xfc, 0xc8, 0xea, 0xeb, 0x13, 0x24, 0x55, 0x76, 0x60, 0x7b, 0x02, 0x13, + 0xc9, 0xf4, 0xa7, 0x78, 0xaa, 0x44, 0x47, 0x83, 0xbe, 0x1c, 0x37, 0x1e, 0x86, 0x37, 0x2d, 0x8b, + 0xec, 0x8e, 0xbc, 0x12, 0x4d, 0xc7, 0x12, 0x6b, 0x25, 0x6f, 0x2e, 0xc7, 0x57, 0xc2, 0x9a, 0x6d, + 0x1e, 0xc6, 0x4e, 0x93, 0xf3, 0x30, 0x16, 0x91, 0x54, 0x7f, 0x57, 0x40, 0x95, 0x23, 0x33, 0xe0, + 0x9d, 0x29, 0xef, 0xf4, 0x2b, 0x50, 0xc5, 0x80, 0x36, 0x11, 0xe7, 0x98, 0x71, 0xc4, 0x1d, 0xe2, + 0xc5, 0xaf, 0x76, 0x2f, 0xfb, 0xd5, 0x8a, 0xaa, 0x87, 0xc3, 0x14, 0x73, 0xcd, 0x4f, 0x79, 0x58, + 0xbd, 0x96, 0x21, 0x71, 0x2b, 0x3d, 0xf2, 0x92, 0x65, 0xe5, 0x2d, 0xd0, 0xc7, 0xbd, 0x52, 0xda, + 0x73, 0x05, 0x6e, 0x9f, 0x32, 0xfb, 0x4b, 0xdf, 0x42, 0x1c, 0x9f, 0x21, 0x8a, 0x5c, 0xa6, 0x7e, + 0x08, 0xcb, 0xa8, 0xc7, 0x3b, 0x84, 0x3a, 0x7c, 0x10, 0x4a, 0x6b, 0x68, 0x7f, 0x3d, 0xdf, 0xdf, + 0x88, 0x3e, 0x13, 0x87, 0x96, 0x45, 0x31, 0x63, 0x8f, 0x38, 0x75, 0x3c, 0xdb, 0x1c, 0x42, 0xd5, + 0xcf, 0x60, 0xc9, 0x17, 0x15, 0x44, 0x6b, 0x56, 0x0e, 0xca, 0x37, 0x68, 0x15, 0xb8, 0x46, 0x3e, + 0xd8, 0x76, 0x66, 0x94, 0x15, 0x4e, 0xf4, 0xb0, 0x5e, 0xa0, 0x6b, 0x73, 0xa8, 0x2b, 0x49, 0xb1, + 0xb2, 0x05, 0x77, 0x52, 0xae, 0x58, 0xd1, 0xc1, 0x7f, 0xb7, 0x60, 0xf1, 0x94, 0xd9, 0xea, 0x0f, + 0x0a, 0xac, 0x4f, 0xfa, 0x62, 0xbd, 0x9f, 0xcd, 0x6a, 0xf2, 0x77, 0x40, 0xff, 0x78, 0xde, 0x8c, + 0x98, 0x4b, 0x92, 0xc3, 0xc8, 0x67, 0x63, 0x26, 0x0e, 0xc9, 0x8c, 0xd9, 0x38, 0x4c, 0x5a, 0xe6, + 0x2a, 0x85, 0x37, 0x52, 0x8b, 0xfc, 0xdd, 0xe9, 0xb5, 0x24, 0x58, 0xbf, 0x3f, 0x07, 0x38, 0xa5, + 0x7b, 0x7c, 0xb0, 0xa7, 0xe9, 0x1e, 0xcb, 0x98, 0xaa, 0x3b, 0x73, 0x68, 0xd5, 0x9f, 0x15, 0x78, + 0x73, 0xf2, 0x52, 0x3f, 0x98, 0x2e, 0x29, 0x9d, 0xa3, 0xd7, 0xe7, 0xcf, 0x91, 0x4c, 0x06, 0xb0, + 0x36, 0xdc, 0x82, 0x51, 0x54, 0xdd, 0x9f, 0x5e, 0x30, 0xb1, 0x35, 0xf5, 0x07, 0x73, 0xc1, 0xe5, + 0xd1, 0x3d, 0xb8, 0x9d, 0xde, 0x5a, 0xef, 0xcd, 0x70, 0x93, 0x24, 0x5a, 0xff, 0x60, 0x1e, 0xb4, + 0x3c, 0xb6, 0x0b, 0xab, 0x23, 0x1b, 0xe5, 0xde, 0x8d, 0x55, 0x92, 0x50, 0xbd, 0x36, 0x33, 0x34, + 0x3e, 0x4d, 0x2f, 0x7c, 0x7f, 0x7d, 0xbe, 0xa7, 0x34, 0xbe, 0x79, 0x71, 0x59, 0x54, 0x5e, 0x5e, + 0x16, 0x95, 0x7f, 0x2e, 0x8b, 0xca, 0xaf, 0x57, 0xc5, 0xdc, 0xcb, 0xab, 0x62, 0xee, 0xef, 0xab, + 0x62, 0xee, 0xeb, 0x13, 0xdb, 0xe1, 0x9d, 0x5e, 0xab, 0xda, 0x26, 0xae, 0x71, 0x1c, 0x57, 0x3f, + 0x41, 0x2d, 0x66, 0xc8, 0xb3, 0xf6, 0xdb, 0x84, 0xe2, 0xa4, 0xd9, 0x41, 0x8e, 0x67, 0xb8, 0xc4, + 0xea, 0x75, 0x31, 0x8b, 0x7f, 0x63, 0xf3, 0x81, 0x8f, 0x59, 0x6b, 0x49, 0xfc, 0x28, 0xbe, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x21, 0x85, 0x8e, 0x1e, 0xd7, 0x0b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -724,6 +811,9 @@ type MsgClient interface { // RelayCoinbaseMessages defines a method for relaying price messages from // Coinbase API RelayCoinbaseMessages(ctx context.Context, in *MsgRelayCoinbaseMessages, opts ...grpc.CallOption) (*MsgRelayCoinbaseMessagesResponse, error) + // RelayStorkMessage defines a method for relaying price message from + // Stork API + RelayStorkMessage(ctx context.Context, in *MsgRelayStorkPrices, opts ...grpc.CallOption) (*MsgRelayStorkPricesResponse, error) // RelayPythPrices defines a method for relaying rates from the Pyth contract RelayPythPrices(ctx context.Context, in *MsgRelayPythPrices, opts ...grpc.CallOption) (*MsgRelayPythPricesResponse, error) // UpdateParams enables updating oracle module's params via governance @@ -783,6 +873,15 @@ func (c *msgClient) RelayCoinbaseMessages(ctx context.Context, in *MsgRelayCoinb return out, nil } +func (c *msgClient) RelayStorkMessage(ctx context.Context, in *MsgRelayStorkPrices, opts ...grpc.CallOption) (*MsgRelayStorkPricesResponse, error) { + out := new(MsgRelayStorkPricesResponse) + err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RelayStorkMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *msgClient) RelayPythPrices(ctx context.Context, in *MsgRelayPythPrices, opts ...grpc.CallOption) (*MsgRelayPythPricesResponse, error) { out := new(MsgRelayPythPricesResponse) err := c.cc.Invoke(ctx, "/injective.oracle.v1beta1.Msg/RelayPythPrices", in, out, opts...) @@ -816,6 +915,9 @@ type MsgServer interface { // RelayCoinbaseMessages defines a method for relaying price messages from // Coinbase API RelayCoinbaseMessages(context.Context, *MsgRelayCoinbaseMessages) (*MsgRelayCoinbaseMessagesResponse, error) + // RelayStorkMessage defines a method for relaying price message from + // Stork API + RelayStorkMessage(context.Context, *MsgRelayStorkPrices) (*MsgRelayStorkPricesResponse, error) // RelayPythPrices defines a method for relaying rates from the Pyth contract RelayPythPrices(context.Context, *MsgRelayPythPrices) (*MsgRelayPythPricesResponse, error) // UpdateParams enables updating oracle module's params via governance @@ -841,6 +943,9 @@ func (*UnimplementedMsgServer) RequestBandIBCRates(ctx context.Context, req *Msg func (*UnimplementedMsgServer) RelayCoinbaseMessages(ctx context.Context, req *MsgRelayCoinbaseMessages) (*MsgRelayCoinbaseMessagesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RelayCoinbaseMessages not implemented") } +func (*UnimplementedMsgServer) RelayStorkMessage(ctx context.Context, req *MsgRelayStorkPrices) (*MsgRelayStorkPricesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RelayStorkMessage not implemented") +} func (*UnimplementedMsgServer) RelayPythPrices(ctx context.Context, req *MsgRelayPythPrices) (*MsgRelayPythPricesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RelayPythPrices not implemented") } @@ -942,6 +1047,24 @@ func _Msg_RelayCoinbaseMessages_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _Msg_RelayStorkMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRelayStorkPrices) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RelayStorkMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.oracle.v1beta1.Msg/RelayStorkMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RelayStorkMessage(ctx, req.(*MsgRelayStorkPrices)) + } + return interceptor(ctx, in, info, handler) +} + func _Msg_RelayPythPrices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgRelayPythPrices) if err := dec(in); err != nil { @@ -1002,6 +1125,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "RelayCoinbaseMessages", Handler: _Msg_RelayCoinbaseMessages_Handler, }, + { + MethodName: "RelayStorkMessage", + Handler: _Msg_RelayStorkMessage_Handler, + }, { MethodName: "RelayPythPrices", Handler: _Msg_RelayPythPrices_Handler, @@ -1370,6 +1497,73 @@ func (m *MsgRelayCoinbaseMessagesResponse) MarshalToSizedBuffer(dAtA []byte) (in return len(dAtA) - i, nil } +func (m *MsgRelayStorkPrices) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRelayStorkPrices) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRelayStorkPrices) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AssetPairs) > 0 { + for iNdEx := len(m.AssetPairs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AssetPairs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + 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 *MsgRelayStorkPricesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRelayStorkPricesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRelayStorkPricesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func (m *MsgRequestBandIBCRates) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1730,6 +1924,34 @@ func (m *MsgRelayCoinbaseMessagesResponse) Size() (n int) { return n } +func (m *MsgRelayStorkPrices) 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)) + } + if len(m.AssetPairs) > 0 { + for _, e := range m.AssetPairs { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgRelayStorkPricesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + func (m *MsgRequestBandIBCRates) Size() (n int) { if m == nil { return 0 @@ -1968,7 +2190,7 @@ func (m *MsgRelayProviderPrices) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Prices = append(m.Prices, v) if err := m.Prices[len(m.Prices)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2200,7 +2422,7 @@ func (m *MsgRelayPriceFeedPrice) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Dec + var v cosmossdk_io_math.LegacyDec m.Price = append(m.Price, v) if err := m.Price[len(m.Price)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -2865,6 +3087,172 @@ func (m *MsgRelayCoinbaseMessagesResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgRelayStorkPrices) Unmarshal(dAtA []byte) 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: MsgRelayStorkPrices: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRelayStorkPrices: 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 AssetPairs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AssetPairs = append(m.AssetPairs, &AssetPair{}) + if err := m.AssetPairs[len(m.AssetPairs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgRelayStorkPricesResponse) Unmarshal(dAtA []byte) 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: MsgRelayStorkPricesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRelayStorkPricesResponse: 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 (m *MsgRequestBandIBCRates) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/attestation.pb.go b/chain/peggy/types/attestation.pb.go index 0d591bd2..a88e4156 100644 --- a/chain/peggy/types/attestation.pb.go +++ b/chain/peggy/types/attestation.pb.go @@ -4,9 +4,9 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types "github.com/cosmos/cosmos-sdk/codec/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" @@ -151,8 +151,8 @@ func (m *Attestation) GetClaim() *types.Any { // (note: developers should look up the token symbol using the address on ETH to // display for UI) type ERC20Token struct { - Contract string `protobuf:"bytes,1,opt,name=contract,proto3" json:"contract,omitempty"` - Amount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"amount"` + Contract string `protobuf:"bytes,1,opt,name=contract,proto3" json:"contract,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` } func (m *ERC20Token) Reset() { *m = ERC20Token{} } @@ -206,38 +206,38 @@ func init() { } var fileDescriptor_3022043570947e1e = []byte{ - // 485 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x31, 0x6f, 0x9b, 0x40, - 0x1c, 0xc5, 0xc1, 0x76, 0xac, 0xf8, 0xb2, 0x58, 0x57, 0x2b, 0x25, 0x48, 0x25, 0x28, 0xaa, 0x2a, - 0x2b, 0x52, 0xee, 0x92, 0x74, 0xed, 0x42, 0x0c, 0x55, 0x51, 0x5c, 0xdb, 0x22, 0xa4, 0x56, 0xba, - 0x58, 0x80, 0xaf, 0x98, 0xc6, 0x70, 0xc8, 0x77, 0x46, 0x62, 0xee, 0x52, 0x79, 0xea, 0x17, 0xb0, - 0x3a, 0xf4, 0xcb, 0x64, 0xcc, 0x58, 0x75, 0x88, 0x2a, 0xfb, 0x8b, 0x54, 0x06, 0xe2, 0xba, 0x49, - 0x3a, 0xc1, 0xbb, 0xf7, 0xfb, 0x1f, 0x4f, 0x7f, 0x1e, 0x78, 0x19, 0x44, 0x9f, 0x89, 0xc7, 0x83, - 0x84, 0xe0, 0x98, 0xf8, 0x7e, 0x8a, 0x93, 0x13, 0xec, 0x70, 0x4e, 0x18, 0x77, 0x78, 0x40, 0x23, - 0x14, 0x4f, 0x28, 0xa7, 0x10, 0xae, 0x29, 0x94, 0x51, 0x28, 0x39, 0x91, 0x1b, 0x3e, 0xf5, 0x69, - 0x66, 0xe3, 0xd5, 0x5b, 0x4e, 0xca, 0x7b, 0x3e, 0xa5, 0xfe, 0x98, 0xe0, 0x4c, 0xb9, 0xd3, 0x4f, - 0xd8, 0x89, 0xd2, 0xdc, 0x3a, 0xf8, 0x22, 0x82, 0x1d, 0xed, 0xef, 0xd5, 0x50, 0x06, 0xdb, 0xd4, - 0x65, 0x64, 0x92, 0x90, 0xa1, 0x24, 0xaa, 0x62, 0x73, 0xdb, 0x5a, 0x6b, 0xd8, 0x00, 0x5b, 0x09, - 0xe5, 0x84, 0x49, 0x25, 0xb5, 0xdc, 0xac, 0x59, 0xb9, 0x80, 0xbb, 0xa0, 0x3a, 0x22, 0x81, 0x3f, - 0xe2, 0x52, 0x59, 0x15, 0x9b, 0x15, 0xab, 0x50, 0xf0, 0x10, 0x6c, 0x79, 0x63, 0x27, 0x08, 0xa5, - 0x8a, 0x2a, 0x36, 0x77, 0x4e, 0x1b, 0x28, 0x0f, 0x81, 0xee, 0x43, 0x20, 0x2d, 0x4a, 0xad, 0x1c, - 0x39, 0x88, 0x01, 0x30, 0xac, 0xd6, 0xe9, 0xb1, 0x4d, 0xaf, 0x49, 0x96, 0xc1, 0xa3, 0x11, 0x9f, - 0x38, 0x1e, 0xcf, 0x32, 0xd4, 0xac, 0xb5, 0x86, 0x6f, 0x41, 0xd5, 0x09, 0xe9, 0x34, 0xe2, 0x52, - 0x69, 0xe5, 0x9c, 0xa1, 0x9b, 0xbb, 0x7d, 0xe1, 0xd7, 0xdd, 0xfe, 0x2b, 0x3f, 0xe0, 0xa3, 0xa9, - 0x8b, 0x3c, 0x1a, 0x62, 0x8f, 0xb2, 0x90, 0xb2, 0xe2, 0x71, 0xc4, 0x86, 0xd7, 0x98, 0xa7, 0x31, - 0x61, 0xc8, 0x8c, 0xb8, 0x55, 0x4c, 0x1f, 0x7e, 0x2f, 0x81, 0x5a, 0x6b, 0xf5, 0x6d, 0x3b, 0x8d, - 0x09, 0x44, 0x00, 0xb6, 0xda, 0x9a, 0xf9, 0x7e, 0x60, 0x5f, 0xf5, 0x8c, 0xc1, 0x65, 0xe7, 0xbc, - 0xd3, 0xed, 0x77, 0xea, 0x82, 0xbc, 0x3b, 0x9b, 0xab, 0x4f, 0x38, 0x0f, 0x78, 0xdd, 0xe8, 0x75, - 0x2f, 0x4c, 0xbb, 0x2e, 0x3e, 0xe2, 0x0b, 0x07, 0x1e, 0x83, 0x67, 0x1b, 0xa7, 0x7d, 0xd3, 0x7e, - 0xa7, 0x5b, 0x5a, 0xbf, 0x5e, 0x92, 0x9f, 0xcf, 0xe6, 0xea, 0x53, 0x16, 0x7c, 0x03, 0xf6, 0x36, - 0x8e, 0xb3, 0xe5, 0xac, 0x6e, 0x6b, 0x77, 0xaf, 0x0c, 0xbd, 0x5e, 0x96, 0x5f, 0xcc, 0xe6, 0xea, - 0xff, 0x81, 0x07, 0xd3, 0x1f, 0xb4, 0xf6, 0x85, 0x61, 0x0f, 0x2e, 0x7b, 0xba, 0x66, 0x1b, 0x7a, - 0xbd, 0xf2, 0x68, 0xfa, 0x5f, 0x40, 0xae, 0x7c, 0xfd, 0xa1, 0x08, 0x67, 0xe4, 0x66, 0xa1, 0x88, - 0xb7, 0x0b, 0x45, 0xfc, 0xbd, 0x50, 0xc4, 0x6f, 0x4b, 0x45, 0xb8, 0x5d, 0x2a, 0xc2, 0xcf, 0xa5, - 0x22, 0x7c, 0x3c, 0xdf, 0xd8, 0xb5, 0x79, 0xdf, 0xc1, 0xb6, 0xe3, 0x32, 0xbc, 0x6e, 0xe4, 0x91, - 0x47, 0x27, 0x64, 0x53, 0x8e, 0x9c, 0x20, 0xc2, 0x21, 0x1d, 0x4e, 0xc7, 0x84, 0x15, 0xa5, 0xce, - 0x7e, 0x8a, 0x5b, 0xcd, 0xfa, 0xf0, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0xa2, 0x82, - 0x9c, 0xf4, 0x02, 0x00, 0x00, + // 483 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0x31, 0x6f, 0xda, 0x40, + 0x14, 0xc7, 0x6d, 0x20, 0x28, 0x5c, 0x16, 0xeb, 0x4a, 0x53, 0xc7, 0x52, 0x1c, 0x2b, 0xea, 0x80, + 0x22, 0xf5, 0x2e, 0x49, 0xd5, 0xad, 0x8b, 0x83, 0x2d, 0xd5, 0x0a, 0x05, 0xe4, 0x38, 0x45, 0xe9, + 0x82, 0x6c, 0x73, 0xb5, 0xdd, 0x60, 0x1f, 0xe2, 0x0e, 0x4b, 0x9e, 0xbb, 0x54, 0x4c, 0xfd, 0x02, + 0xa8, 0x43, 0xbf, 0x4c, 0xc6, 0x8c, 0x55, 0x87, 0xa8, 0x82, 0x2f, 0x52, 0x61, 0x13, 0x4a, 0x93, + 0x74, 0xbb, 0xff, 0xfb, 0xff, 0xde, 0xbb, 0xbf, 0xee, 0x1e, 0x78, 0x19, 0x25, 0x9f, 0x89, 0xcf, + 0xa3, 0x94, 0xe0, 0x11, 0x09, 0x82, 0x0c, 0xa7, 0x27, 0xd8, 0xe5, 0x9c, 0x30, 0xee, 0xf2, 0x88, + 0x26, 0x68, 0x34, 0xa6, 0x9c, 0x42, 0xb8, 0xa6, 0x50, 0x4e, 0xa1, 0xf4, 0x44, 0xa9, 0x07, 0x34, + 0xa0, 0xb9, 0x8d, 0x97, 0xa7, 0x82, 0x54, 0xf6, 0x02, 0x4a, 0x83, 0x21, 0xc1, 0xb9, 0xf2, 0x26, + 0x9f, 0xb0, 0x9b, 0x64, 0x85, 0x75, 0xf8, 0x45, 0x04, 0x3b, 0xfa, 0xdf, 0xd1, 0x50, 0x01, 0xdb, + 0xd4, 0x63, 0x64, 0x9c, 0x92, 0x81, 0x2c, 0x6a, 0x62, 0x63, 0xdb, 0x5e, 0x6b, 0x58, 0x07, 0x5b, + 0x29, 0xe5, 0x84, 0xc9, 0x25, 0xad, 0xdc, 0xa8, 0xd9, 0x85, 0x80, 0xbb, 0xa0, 0x1a, 0x92, 0x28, + 0x08, 0xb9, 0x5c, 0xd6, 0xc4, 0x46, 0xc5, 0x5e, 0x29, 0x78, 0x04, 0xb6, 0xfc, 0xa1, 0x1b, 0xc5, + 0x72, 0x45, 0x13, 0x1b, 0x3b, 0xa7, 0x75, 0x54, 0x84, 0x40, 0xf7, 0x21, 0x90, 0x9e, 0x64, 0x76, + 0x81, 0x1c, 0xf6, 0x01, 0x30, 0xed, 0xe6, 0xe9, 0xb1, 0x43, 0xaf, 0x49, 0x9e, 0xc1, 0xa7, 0x09, + 0x1f, 0xbb, 0x3e, 0xcf, 0x33, 0xd4, 0xec, 0xb5, 0x86, 0x6f, 0x40, 0xd5, 0x8d, 0xe9, 0x24, 0xe1, + 0x72, 0x69, 0xe9, 0x9c, 0xed, 0xdf, 0xdc, 0x1d, 0x08, 0xbf, 0xee, 0x0e, 0x9e, 0xfb, 0x94, 0xc5, + 0x94, 0xb1, 0xc1, 0x35, 0x8a, 0x28, 0x8e, 0x5d, 0x1e, 0x22, 0x2b, 0xe1, 0xf6, 0x0a, 0x3e, 0xfa, + 0x5e, 0x02, 0xb5, 0xe6, 0xf2, 0x2a, 0x27, 0x1b, 0x11, 0x88, 0x00, 0x6c, 0xb6, 0x74, 0xeb, 0x7d, + 0xdf, 0xb9, 0xea, 0x9a, 0xfd, 0xcb, 0xf6, 0x79, 0xbb, 0xd3, 0x6b, 0x4b, 0x82, 0xb2, 0x3b, 0x9d, + 0x69, 0x4f, 0x38, 0x0f, 0x78, 0xc3, 0xec, 0x76, 0x2e, 0x2c, 0x47, 0x12, 0x1f, 0xf1, 0x2b, 0x07, + 0x1e, 0x83, 0x67, 0x1b, 0xd5, 0x9e, 0xe5, 0xbc, 0x33, 0x6c, 0xbd, 0x27, 0x95, 0x94, 0x17, 0xd3, + 0x99, 0xf6, 0x94, 0x05, 0xdf, 0x82, 0xbd, 0x8d, 0x72, 0xfe, 0x16, 0xcb, 0x69, 0xad, 0xce, 0x95, + 0x69, 0x48, 0x65, 0x65, 0x7f, 0x3a, 0xd3, 0xfe, 0x0f, 0x3c, 0xe8, 0xfe, 0xa0, 0xb7, 0x2e, 0x4c, + 0xa7, 0x7f, 0xd9, 0x35, 0x74, 0xc7, 0x34, 0xa4, 0xca, 0xa3, 0xee, 0x7f, 0x01, 0xa5, 0xf2, 0xf5, + 0x87, 0x2a, 0x9c, 0x91, 0x9b, 0xb9, 0x2a, 0xde, 0xce, 0x55, 0xf1, 0xf7, 0x5c, 0x15, 0xbf, 0x2d, + 0x54, 0xe1, 0x76, 0xa1, 0x0a, 0x3f, 0x17, 0xaa, 0xf0, 0xf1, 0x3c, 0x88, 0x78, 0x38, 0xf1, 0x90, + 0x4f, 0x63, 0x6c, 0xdd, 0xaf, 0x5c, 0xcb, 0xf5, 0x18, 0x5e, 0x2f, 0xe0, 0x2b, 0x9f, 0x8e, 0xc9, + 0xa6, 0x0c, 0xdd, 0x28, 0xc1, 0x31, 0x1d, 0x4c, 0x86, 0x84, 0xad, 0x76, 0x98, 0x67, 0x23, 0xc2, + 0xbc, 0x6a, 0xfe, 0xfd, 0xaf, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x9f, 0x86, 0x0b, 0xe3, + 0x02, 0x00, 0x00, } func (m *Attestation) Marshal() (dAtA []byte, err error) { diff --git a/chain/peggy/types/codec.go b/chain/peggy/types/codec.go index 172e34ed..bead1936 100644 --- a/chain/peggy/types/codec.go +++ b/chain/peggy/types/codec.go @@ -7,9 +7,6 @@ import ( "github.com/cosmos/cosmos-sdk/types/msgservice" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" ) // ModuleCdc is the codec for the module @@ -17,10 +14,10 @@ var ModuleCdc = codec.NewLegacyAmino() func init() { RegisterLegacyAminoCodec(ModuleCdc) - RegisterLegacyAminoCodec(authzcdc.Amino) - RegisterLegacyAminoCodec(govcdc.Amino) - RegisterLegacyAminoCodec(groupcdc.Amino) + // TODO: check + // RegisterLegacyAminoCodec(govcdc.Amino) + // RegisterLegacyAminoCodec(groupcdc.Amino) } // RegisterInterfaces registers the interfaces for the proto stuff @@ -38,11 +35,8 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgCancelSendToEth{}, &MsgSubmitBadSignatureEvidence{}, &MsgUpdateParams{}, - ) - - registry.RegisterImplementations((*govtypes.Content)(nil), - &BlacklistEthereumAddressesProposal{}, - &RevokeEthereumBlacklistProposal{}, + &MsgBlacklistEthereumAddresses{}, + &MsgRevokeEthereumBlacklist{}, ) registry.RegisterInterface( @@ -77,7 +71,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&Attestation{}, "peggy/Attestation", nil) cdc.RegisterConcrete(&MsgSubmitBadSignatureEvidence{}, "peggy/MsgSubmitBadSignatureEvidence", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "peggy/MsgUpdateParams", nil) - - cdc.RegisterConcrete(&BlacklistEthereumAddressesProposal{}, "peggy/BlacklistEthereumAddressesProposal", nil) - cdc.RegisterConcrete(&RevokeEthereumBlacklistProposal{}, "peggy/RevokeEthereumBlacklistProposal", nil) + cdc.RegisterConcrete(&MsgBlacklistEthereumAddresses{}, "peggy/MsgBlacklistEthereumAddresses", nil) + cdc.RegisterConcrete(&MsgRevokeEthereumBlacklist{}, "peggy/MsgRevokeEthereumBlacklist", nil) + cdc.RegisterConcrete(&Params{}, "peggy/Params", nil) } diff --git a/chain/peggy/types/ethereum.go b/chain/peggy/types/ethereum.go index 4bba8f3e..6c0651a5 100644 --- a/chain/peggy/types/ethereum.go +++ b/chain/peggy/types/ethereum.go @@ -62,7 +62,7 @@ func ValidateEthAddress(address string) error { // NewERC20Token returns a new instance of an ERC20 func NewERC20Token(amount uint64, contract gethcommon.Address) *ERC20Token { - return &ERC20Token{Amount: sdk.NewIntFromUint64(amount), Contract: contract.Hex()} + return &ERC20Token{Amount: math.NewIntFromUint64(amount), Contract: contract.Hex()} } func NewSDKIntERC20Token(amount math.Int, contract gethcommon.Address) *ERC20Token { diff --git a/chain/peggy/types/events.pb.go b/chain/peggy/types/events.pb.go index 13168705..ac80a720 100644 --- a/chain/peggy/types/events.pb.go +++ b/chain/peggy/types/events.pb.go @@ -4,6 +4,7 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/gogoproto/gogoproto" @@ -297,11 +298,11 @@ func (m *EventOutgoingBatchCanceled) GetNonce() uint64 { } type EventValsetUpdateRequest struct { - ValsetNonce uint64 `protobuf:"varint,1,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` - ValsetHeight uint64 `protobuf:"varint,2,opt,name=valset_height,json=valsetHeight,proto3" json:"valset_height,omitempty"` - ValsetMembers []*BridgeValidator `protobuf:"bytes,3,rep,name=valset_members,json=valsetMembers,proto3" json:"valset_members,omitempty"` - RewardAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=reward_amount,json=rewardAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"reward_amount"` - RewardToken string `protobuf:"bytes,5,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` + ValsetNonce uint64 `protobuf:"varint,1,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` + ValsetHeight uint64 `protobuf:"varint,2,opt,name=valset_height,json=valsetHeight,proto3" json:"valset_height,omitempty"` + ValsetMembers []*BridgeValidator `protobuf:"bytes,3,rep,name=valset_members,json=valsetMembers,proto3" json:"valset_members,omitempty"` + RewardAmount cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=reward_amount,json=rewardAmount,proto3,customtype=cosmossdk.io/math.Int" json:"reward_amount"` + RewardToken string `protobuf:"bytes,5,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` } func (m *EventValsetUpdateRequest) Reset() { *m = EventValsetUpdateRequest{} } @@ -652,15 +653,15 @@ func (m *EventAttestationVote) GetVoter() string { } type EventDepositClaim struct { - EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` - EventHeight uint64 `protobuf:"varint,2,opt,name=event_height,json=eventHeight,proto3" json:"event_height,omitempty"` - AttestationId []byte `protobuf:"bytes,3,opt,name=attestation_id,json=attestationId,proto3" json:"attestation_id,omitempty"` - EthereumSender string `protobuf:"bytes,4,opt,name=ethereum_sender,json=ethereumSender,proto3" json:"ethereum_sender,omitempty"` - CosmosReceiver string `protobuf:"bytes,5,opt,name=cosmos_receiver,json=cosmosReceiver,proto3" json:"cosmos_receiver,omitempty"` - TokenContract string `protobuf:"bytes,6,opt,name=token_contract,json=tokenContract,proto3" json:"token_contract,omitempty"` - Amount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"amount"` - OrchestratorAddress string `protobuf:"bytes,8,opt,name=orchestrator_address,json=orchestratorAddress,proto3" json:"orchestrator_address,omitempty"` - Data string `protobuf:"bytes,9,opt,name=data,proto3" json:"data,omitempty"` + EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` + EventHeight uint64 `protobuf:"varint,2,opt,name=event_height,json=eventHeight,proto3" json:"event_height,omitempty"` + AttestationId []byte `protobuf:"bytes,3,opt,name=attestation_id,json=attestationId,proto3" json:"attestation_id,omitempty"` + EthereumSender string `protobuf:"bytes,4,opt,name=ethereum_sender,json=ethereumSender,proto3" json:"ethereum_sender,omitempty"` + CosmosReceiver string `protobuf:"bytes,5,opt,name=cosmos_receiver,json=cosmosReceiver,proto3" json:"cosmos_receiver,omitempty"` + TokenContract string `protobuf:"bytes,6,opt,name=token_contract,json=tokenContract,proto3" json:"token_contract,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,7,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` + OrchestratorAddress string `protobuf:"bytes,8,opt,name=orchestrator_address,json=orchestratorAddress,proto3" json:"orchestrator_address,omitempty"` + Data string `protobuf:"bytes,9,opt,name=data,proto3" json:"data,omitempty"` } func (m *EventDepositClaim) Reset() { *m = EventDepositClaim{} } @@ -945,14 +946,14 @@ func (m *EventERC20DeployedClaim) GetOrchestratorAddress() string { } type EventValsetUpdateClaim struct { - EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` - EventHeight uint64 `protobuf:"varint,2,opt,name=event_height,json=eventHeight,proto3" json:"event_height,omitempty"` - AttestationId []byte `protobuf:"bytes,3,opt,name=attestation_id,json=attestationId,proto3" json:"attestation_id,omitempty"` - ValsetNonce uint64 `protobuf:"varint,4,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` - ValsetMembers []*BridgeValidator `protobuf:"bytes,5,rep,name=valset_members,json=valsetMembers,proto3" json:"valset_members,omitempty"` - RewardAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=reward_amount,json=rewardAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"reward_amount"` - RewardToken string `protobuf:"bytes,7,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` - OrchestratorAddress string `protobuf:"bytes,8,opt,name=orchestrator_address,json=orchestratorAddress,proto3" json:"orchestrator_address,omitempty"` + EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` + EventHeight uint64 `protobuf:"varint,2,opt,name=event_height,json=eventHeight,proto3" json:"event_height,omitempty"` + AttestationId []byte `protobuf:"bytes,3,opt,name=attestation_id,json=attestationId,proto3" json:"attestation_id,omitempty"` + ValsetNonce uint64 `protobuf:"varint,4,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` + ValsetMembers []*BridgeValidator `protobuf:"bytes,5,rep,name=valset_members,json=valsetMembers,proto3" json:"valset_members,omitempty"` + RewardAmount cosmossdk_io_math.Int `protobuf:"bytes,6,opt,name=reward_amount,json=rewardAmount,proto3,customtype=cosmossdk.io/math.Int" json:"reward_amount"` + RewardToken string `protobuf:"bytes,7,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` + OrchestratorAddress string `protobuf:"bytes,8,opt,name=orchestrator_address,json=orchestratorAddress,proto3" json:"orchestrator_address,omitempty"` } func (m *EventValsetUpdateClaim) Reset() { *m = EventValsetUpdateClaim{} } @@ -1232,86 +1233,87 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/events.proto", fileDescriptor_95f217691d2f42c2) } var fileDescriptor_95f217691d2f42c2 = []byte{ - // 1254 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6e, 0x1b, 0xb7, - 0x13, 0xf7, 0x4a, 0xb2, 0x1c, 0xd1, 0xb2, 0xe4, 0x30, 0x46, 0xfe, 0x8a, 0xff, 0x88, 0xac, 0x6c, - 0x3e, 0xec, 0xb6, 0x88, 0x94, 0xa4, 0xa7, 0x02, 0xbd, 0xc4, 0x8a, 0xd2, 0xb8, 0x1f, 0x09, 0xb0, - 0x72, 0x53, 0xa0, 0x17, 0x81, 0xbb, 0x9c, 0x68, 0x99, 0x68, 0x49, 0x75, 0x49, 0x29, 0xf1, 0xb9, - 0x40, 0xd1, 0x63, 0x5f, 0xa0, 0x3d, 0xf6, 0xde, 0x43, 0x1f, 0xa1, 0x40, 0x7a, 0xcb, 0xb1, 0xe8, - 0x21, 0x28, 0x92, 0x37, 0xe8, 0xb1, 0xa7, 0x62, 0x49, 0xee, 0x46, 0xf6, 0x4a, 0xa8, 0x63, 0x34, - 0xe9, 0x49, 0x3b, 0xc3, 0x99, 0xe1, 0x70, 0xe6, 0x37, 0x1f, 0x42, 0x5b, 0x8c, 0x3f, 0x84, 0x40, - 0xb1, 0x29, 0x74, 0xc6, 0x30, 0x1c, 0x1e, 0x74, 0xa6, 0xd7, 0x3b, 0x30, 0x05, 0xae, 0x64, 0x7b, - 0x1c, 0x0b, 0x25, 0x30, 0xce, 0x04, 0xda, 0x5a, 0xa0, 0x3d, 0xbd, 0xbe, 0xb9, 0x31, 0x14, 0x43, - 0xa1, 0x8f, 0x3b, 0xc9, 0x97, 0x91, 0xdc, 0xbc, 0x34, 0xc7, 0x14, 0x51, 0x0a, 0xa4, 0x22, 0x8a, - 0x09, 0x6e, 0xa5, 0x9a, 0x73, 0xa4, 0xd4, 0xc1, 0x18, 0xec, 0x7d, 0xee, 0x9f, 0x0e, 0x6a, 0xf4, - 0x12, 0x07, 0x6e, 0xbe, 0x52, 0xbd, 0xe7, 0x4b, 0x88, 0xa7, 0x40, 0xf1, 0x1d, 0xb4, 0x3e, 0x63, - 0x71, 0x90, 0xe8, 0x35, 0x9c, 0x96, 0xb3, 0x53, 0xbb, 0x71, 0xbe, 0x9d, 0xf7, 0xb3, 0xdd, 0x1d, - 0x11, 0x16, 0xed, 0x1f, 0x8c, 0xc1, 0xab, 0xcf, 0xa8, 0x25, 0x0c, 0xbc, 0x8d, 0xea, 0x7e, 0xcc, - 0xe8, 0x10, 0x06, 0x81, 0xe0, 0x2a, 0x26, 0x81, 0x6a, 0x14, 0x5a, 0xce, 0x4e, 0xc5, 0xab, 0x19, - 0x76, 0xd7, 0x72, 0xf1, 0x95, 0x57, 0x82, 0x21, 0x61, 0x7c, 0xc0, 0x68, 0xa3, 0xd8, 0x72, 0x76, - 0x4a, 0xde, 0x9a, 0x15, 0x4c, 0xb8, 0x7b, 0x14, 0x5f, 0x46, 0xb5, 0x59, 0xd7, 0x18, 0x6d, 0x94, - 0x5a, 0xce, 0x4e, 0xd5, 0x5b, 0x9b, 0xe1, 0xee, 0x51, 0xbc, 0x81, 0x96, 0xb9, 0xe0, 0x01, 0x34, - 0x96, 0xb5, 0x11, 0x43, 0xb8, 0x1c, 0xfd, 0x5f, 0xbf, 0x79, 0x57, 0x9b, 0xfc, 0x82, 0xa9, 0x90, - 0xc6, 0xe4, 0x71, 0x97, 0xf0, 0x00, 0x46, 0x40, 0xe7, 0x39, 0xeb, 0x1c, 0xd7, 0xd9, 0xc2, 0x1c, - 0x67, 0xdd, 0x5f, 0x1c, 0x84, 0xf5, 0x85, 0xf7, 0x26, 0x6a, 0x28, 0x18, 0x1f, 0xee, 0x12, 0x15, - 0x84, 0x89, 0x73, 0x14, 0xb8, 0x88, 0xac, 0x75, 0x43, 0xe0, 0xeb, 0x68, 0x43, 0xc4, 0x41, 0x08, - 0x52, 0xc5, 0x44, 0x89, 0x78, 0x40, 0x28, 0x8d, 0x41, 0x4a, 0x1b, 0xaf, 0x33, 0xb3, 0x67, 0x37, - 0xcd, 0x11, 0xde, 0x42, 0xab, 0x7e, 0x62, 0x71, 0x60, 0xde, 0x6a, 0x02, 0x86, 0x34, 0xeb, 0x6e, - 0xc2, 0xc1, 0x17, 0xd1, 0x9a, 0x11, 0x50, 0x2c, 0x02, 0x31, 0x51, 0x3a, 0x58, 0x25, 0xaf, 0xaa, - 0x99, 0xfb, 0x86, 0x87, 0x5b, 0xa8, 0x6a, 0x85, 0x9e, 0x0c, 0x18, 0x95, 0x8d, 0xe5, 0x56, 0x31, - 0x33, 0xb3, 0xff, 0x64, 0x8f, 0x4a, 0xf7, 0x07, 0x07, 0x6d, 0xe6, 0xdf, 0xf1, 0xc6, 0xe2, 0x86, - 0xcf, 0xa1, 0x53, 0xc6, 0xa3, 0x0c, 0x05, 0x2b, 0x9a, 0x9e, 0x4d, 0x6c, 0x69, 0x36, 0xb1, 0x3f, - 0x16, 0x2c, 0x9a, 0xef, 0x93, 0x91, 0x04, 0xf5, 0xf9, 0x98, 0x12, 0x05, 0x1e, 0x7c, 0x35, 0x01, - 0xa9, 0xf0, 0x05, 0x54, 0x9d, 0x6a, 0xb6, 0x0d, 0x93, 0xa3, 0x35, 0x57, 0x0d, 0x2f, 0x8b, 0x93, - 0x15, 0x09, 0x81, 0x0d, 0x43, 0x65, 0xdd, 0xb2, 0x7a, 0x77, 0x34, 0x0f, 0x7f, 0x8c, 0x6a, 0x56, - 0x28, 0x82, 0xc8, 0x87, 0x58, 0x36, 0x8a, 0xad, 0xe2, 0xce, 0xea, 0x8d, 0x8b, 0xf3, 0x6a, 0xc2, - 0x40, 0xec, 0x3e, 0x19, 0x31, 0x9a, 0x64, 0xcc, 0xb3, 0xf6, 0x3f, 0x33, 0x9a, 0xb8, 0x8f, 0xd6, - 0x62, 0x78, 0x4c, 0x62, 0x3a, 0x20, 0x91, 0x98, 0x70, 0x93, 0x98, 0xca, 0x6e, 0xfb, 0xe9, 0xf3, - 0xad, 0xa5, 0xdf, 0x9f, 0x6f, 0x5d, 0x19, 0x32, 0x15, 0x4e, 0xfc, 0x76, 0x20, 0xa2, 0x4e, 0x20, - 0x64, 0x24, 0xa4, 0xfd, 0xb9, 0x2a, 0xe9, 0x23, 0x5b, 0xc7, 0x7b, 0x5c, 0x79, 0x55, 0x63, 0xe4, - 0xa6, 0xb6, 0x91, 0x3c, 0xd4, 0x1a, 0x55, 0xe2, 0x11, 0x70, 0x8d, 0xfd, 0x8a, 0xb7, 0x6a, 0x78, - 0xfb, 0x09, 0xcb, 0xfd, 0xc9, 0x41, 0xe7, 0x75, 0xa0, 0xfa, 0xa0, 0xee, 0xe5, 0x11, 0x05, 0x12, - 0xbf, 0x87, 0x4e, 0x4f, 0x53, 0xaf, 0x33, 0x0c, 0x9a, 0x74, 0xae, 0x67, 0x07, 0x29, 0x00, 0x4f, - 0x80, 0xd9, 0x6b, 0x68, 0x43, 0x8c, 0xc1, 0x88, 0x83, 0x0a, 0x33, 0x95, 0xa2, 0x56, 0xc1, 0xe9, - 0x59, 0x4f, 0x85, 0x56, 0xc3, 0x7d, 0x68, 0x8b, 0xc8, 0xe4, 0xb6, 0x2b, 0xf8, 0x03, 0x16, 0x47, - 0xc7, 0xc9, 0xea, 0xeb, 0x7b, 0xe7, 0x7e, 0x5d, 0x40, 0x35, 0x1b, 0x1f, 0x4e, 0xf7, 0x45, 0x4f, - 0x85, 0xf8, 0x12, 0xaa, 0x09, 0x0b, 0x7b, 0x53, 0x21, 0xf6, 0xaa, 0x6a, 0xca, 0x4d, 0x6a, 0x04, - 0x9f, 0x45, 0x65, 0x09, 0x9c, 0x42, 0x6c, 0xad, 0x5b, 0x0a, 0x6f, 0xa2, 0x53, 0x31, 0x04, 0xc0, - 0xa6, 0x10, 0xdb, 0x27, 0x66, 0x34, 0xfe, 0x08, 0x95, 0x0f, 0x65, 0xbf, 0x63, 0xb3, 0xbf, 0x7d, - 0x8c, 0xec, 0x77, 0x05, 0xe3, 0x9e, 0x55, 0xc7, 0x77, 0x11, 0xb2, 0x75, 0xf5, 0x00, 0x4c, 0xcb, - 0x3b, 0x81, 0xb1, 0x8a, 0x31, 0x71, 0x1b, 0xc0, 0x1d, 0xa2, 0xd3, 0x3a, 0x08, 0x36, 0xd6, 0xa6, - 0x6b, 0x1d, 0x69, 0x36, 0x4e, 0xae, 0xd9, 0x9c, 0x20, 0xdc, 0x0a, 0x6d, 0x1c, 0x1d, 0x42, 0xf7, - 0x85, 0x82, 0xe4, 0x2e, 0x3d, 0x1d, 0x0f, 0xdf, 0xa5, 0x59, 0xe6, 0xae, 0xfc, 0x18, 0x28, 0x2c, - 0x18, 0x03, 0x53, 0xa1, 0xb2, 0xd0, 0x1b, 0xc2, 0xfd, 0xa6, 0x68, 0xdf, 0x77, 0x0b, 0xc6, 0x42, - 0x32, 0xa5, 0xe7, 0xd7, 0x3f, 0xdf, 0x79, 0x01, 0x55, 0x8d, 0xc0, 0xa1, 0x1e, 0x61, 0x94, 0x6c, - 0x8b, 0xc8, 0xbb, 0x55, 0x9c, 0xe7, 0xd6, 0x36, 0xaa, 0x83, 0x0a, 0x21, 0x86, 0x49, 0x34, 0xb0, - 0xa8, 0x29, 0x99, 0x86, 0x99, 0xb2, 0xfb, 0x06, 0x3d, 0xdb, 0xa8, 0x6e, 0x92, 0x35, 0xc8, 0x40, - 0x64, 0x8a, 0xba, 0x66, 0xd8, 0x5e, 0x0a, 0xa5, 0xcb, 0xa8, 0xa6, 0x6b, 0xfe, 0x55, 0x07, 0x2e, - 0x6b, 0xb9, 0x35, 0xcd, 0xcd, 0x1a, 0xf0, 0xed, 0x0c, 0x71, 0x2b, 0x27, 0xea, 0x37, 0x29, 0xe0, - 0x16, 0xa5, 0xfa, 0xd4, 0xe2, 0xba, 0xc7, 0xa8, 0x44, 0x89, 0x22, 0x8d, 0x8a, 0x16, 0xd1, 0xdf, - 0xee, 0x5f, 0xe9, 0x7c, 0xcc, 0x46, 0xf1, 0xdb, 0xce, 0xc4, 0x11, 0x50, 0x97, 0x72, 0xa0, 0xce, - 0x07, 0x76, 0x79, 0x5e, 0x60, 0x17, 0x05, 0xa4, 0xbc, 0x18, 0xfb, 0xbf, 0x16, 0xd0, 0xff, 0xf4, - 0xe3, 0x7b, 0x5e, 0xf7, 0xc6, 0xb5, 0x5b, 0x30, 0x1e, 0x89, 0x03, 0xa0, 0x6f, 0x3d, 0x02, 0x17, - 0x50, 0xd5, 0x42, 0xcc, 0xec, 0x24, 0x06, 0x88, 0xab, 0x86, 0x77, 0x4b, 0x6f, 0x26, 0xc7, 0x8c, - 0x01, 0x46, 0x25, 0x4e, 0x22, 0xb0, 0x6f, 0xd6, 0xdf, 0xba, 0x2d, 0x1e, 0x44, 0xbe, 0x18, 0x19, - 0xc0, 0x79, 0x96, 0x4a, 0xda, 0x22, 0x85, 0x80, 0x45, 0x64, 0x64, 0x40, 0x53, 0xf2, 0x32, 0x7a, - 0x61, 0x2c, 0x2b, 0x8b, 0x63, 0xf9, 0x7d, 0x11, 0x9d, 0xcd, 0xcd, 0xff, 0xff, 0x22, 0x94, 0x87, - 0x46, 0x52, 0x29, 0x3f, 0x92, 0xf2, 0x3b, 0xc4, 0xf2, 0xbf, 0xb7, 0x43, 0x94, 0xdf, 0xc0, 0x0e, - 0xb1, 0x92, 0xdb, 0x21, 0x4e, 0x50, 0xfc, 0xee, 0x87, 0xb6, 0xcf, 0x9b, 0x95, 0xf1, 0x35, 0x67, - 0xab, 0xfb, 0xad, 0x83, 0xb6, 0xcc, 0x50, 0x9e, 0xf8, 0x11, 0x53, 0xbb, 0x84, 0xf6, 0xd9, 0x90, - 0x13, 0x35, 0x89, 0xa1, 0x37, 0x65, 0x14, 0x92, 0xc0, 0xbe, 0x8b, 0x4e, 0xfb, 0x84, 0xea, 0x8d, - 0x42, 0xa6, 0x87, 0x76, 0x6d, 0xa9, 0xfb, 0x84, 0xf6, 0x54, 0x98, 0xe9, 0xe0, 0x0f, 0xd0, 0xb9, - 0x9c, 0xec, 0x40, 0x4e, 0xfc, 0x24, 0x01, 0x76, 0x5a, 0x9d, 0x3d, 0xa2, 0xd3, 0x37, 0xa7, 0xee, - 0xcf, 0x0e, 0x3a, 0x93, 0x02, 0xcd, 0x64, 0xa5, 0x3f, 0x22, 0x52, 0xaf, 0xf4, 0x63, 0xf1, 0x18, - 0x62, 0x7d, 0x65, 0xd1, 0x33, 0x44, 0x82, 0xfe, 0x18, 0x88, 0x14, 0x3c, 0x5d, 0x0a, 0x0c, 0x95, - 0xec, 0x58, 0x81, 0xe0, 0x12, 0xb8, 0x9c, 0xc8, 0x23, 0x0b, 0xd0, 0x7a, 0x76, 0x90, 0x36, 0xce, - 0x77, 0xd0, 0x7a, 0xb6, 0x30, 0xa5, 0xb2, 0xa6, 0x48, 0xeb, 0x29, 0x3f, 0x15, 0x6d, 0xa0, 0x95, - 0x48, 0x70, 0xf6, 0x28, 0x1b, 0x13, 0x29, 0xb9, 0x0b, 0x4f, 0x5f, 0x34, 0x9d, 0x67, 0x2f, 0x9a, - 0xce, 0x1f, 0x2f, 0x9a, 0xce, 0x77, 0x2f, 0x9b, 0x4b, 0xcf, 0x5e, 0x36, 0x97, 0x7e, 0x7b, 0xd9, - 0x5c, 0xfa, 0xf2, 0x93, 0x19, 0x98, 0xec, 0xa5, 0x18, 0xfc, 0x94, 0xf8, 0xb2, 0x93, 0x21, 0xf2, - 0x6a, 0x20, 0x62, 0x98, 0x25, 0x93, 0x35, 0xbd, 0x13, 0x09, 0x3a, 0x19, 0x81, 0xb4, 0x7f, 0x2f, - 0x35, 0x9e, 0xfc, 0xb2, 0xfe, 0x73, 0xf9, 0xfe, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x45, - 0xe6, 0xc6, 0xef, 0x0e, 0x00, 0x00, + // 1265 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xda, 0x4e, 0x52, 0x4f, 0x1c, 0x3b, 0x9d, 0xe6, 0xdb, 0xaf, 0x1b, 0x54, 0xc7, 0xdd, + 0xb6, 0x24, 0x80, 0x6a, 0xb7, 0x45, 0x1c, 0x90, 0xb8, 0xd4, 0xae, 0xa1, 0xe1, 0x47, 0x2b, 0x6d, + 0x42, 0x91, 0xb8, 0x58, 0xb3, 0x3b, 0xaf, 0xde, 0x69, 0xbc, 0x33, 0x66, 0x67, 0xec, 0x36, 0x67, + 0x2e, 0x1c, 0x38, 0x70, 0xe1, 0xca, 0xff, 0xc0, 0x81, 0x3f, 0x01, 0xa9, 0xdc, 0x7a, 0x44, 0x1c, + 0x2a, 0xd4, 0xfe, 0x07, 0x48, 0x5c, 0x38, 0xa1, 0x9d, 0x99, 0xdd, 0x38, 0x59, 0x5b, 0xa4, 0x01, + 0xca, 0xc9, 0x3b, 0x6f, 0xde, 0x7b, 0xf3, 0xe6, 0xf3, 0x3e, 0xf3, 0xde, 0x33, 0xda, 0x64, 0xfc, + 0x21, 0x04, 0x8a, 0x4d, 0xa0, 0x3d, 0x82, 0xc1, 0xe0, 0xa0, 0x3d, 0xb9, 0xd1, 0x86, 0x09, 0x70, + 0x25, 0x5b, 0xa3, 0x58, 0x28, 0x81, 0x71, 0xa6, 0xd0, 0xd2, 0x0a, 0xad, 0xc9, 0x8d, 0x8d, 0xf5, + 0x81, 0x18, 0x08, 0xbd, 0xdd, 0x4e, 0xbe, 0x8c, 0xe6, 0xc6, 0x95, 0x19, 0xae, 0x88, 0x52, 0x20, + 0x15, 0x51, 0x4c, 0x70, 0xab, 0xd5, 0x98, 0xa1, 0xa5, 0x0e, 0x46, 0x60, 0xcf, 0x73, 0x7f, 0x73, + 0x50, 0xbd, 0x97, 0x04, 0x70, 0xeb, 0xd0, 0xf4, 0x9e, 0x2f, 0x21, 0x9e, 0x00, 0xc5, 0x77, 0xd0, + 0xda, 0x94, 0xc7, 0x7e, 0x62, 0x57, 0x77, 0x9a, 0xce, 0x76, 0xf5, 0xe6, 0xc5, 0x56, 0x3e, 0xce, + 0x56, 0x77, 0x48, 0x58, 0xb4, 0x77, 0x30, 0x02, 0xaf, 0x36, 0x65, 0x96, 0x08, 0xf0, 0x16, 0xaa, + 0xf9, 0x31, 0xa3, 0x03, 0xe8, 0x07, 0x82, 0xab, 0x98, 0x04, 0xaa, 0x5e, 0x68, 0x3a, 0xdb, 0x65, + 0xaf, 0x6a, 0xc4, 0x5d, 0x2b, 0xc5, 0xaf, 0x1f, 0x2a, 0x86, 0x84, 0xf1, 0x3e, 0xa3, 0xf5, 0x62, + 0xd3, 0xd9, 0x2e, 0x79, 0xab, 0x56, 0x31, 0x91, 0xee, 0x50, 0x7c, 0x15, 0x55, 0xa7, 0x43, 0x63, + 0xb4, 0x5e, 0x6a, 0x3a, 0xdb, 0x15, 0x6f, 0x75, 0x4a, 0xba, 0x43, 0xf1, 0x3a, 0x5a, 0xe4, 0x82, + 0x07, 0x50, 0x5f, 0xd4, 0x4e, 0xcc, 0xc2, 0xe5, 0xe8, 0x35, 0x7d, 0xe7, 0x8e, 0x76, 0xf9, 0x19, + 0x53, 0x21, 0x8d, 0xc9, 0xa3, 0x2e, 0xe1, 0x01, 0x0c, 0x81, 0xce, 0x0a, 0xd6, 0x39, 0x69, 0xb0, + 0x85, 0x19, 0xc1, 0xba, 0x3f, 0x3a, 0x08, 0xeb, 0x03, 0xef, 0x8d, 0xd5, 0x40, 0x30, 0x3e, 0xe8, + 0x10, 0x15, 0x84, 0x49, 0x70, 0x14, 0xb8, 0x88, 0xac, 0x77, 0xb3, 0xc0, 0x37, 0xd0, 0xba, 0x88, + 0x83, 0x10, 0xa4, 0x8a, 0x89, 0x12, 0x71, 0x9f, 0x50, 0x1a, 0x83, 0x94, 0x16, 0xaf, 0x73, 0xd3, + 0x7b, 0xb7, 0xcc, 0x16, 0xde, 0x44, 0x2b, 0x7e, 0xe2, 0xb1, 0x6f, 0xee, 0x6a, 0x00, 0x43, 0x5a, + 0x74, 0x37, 0x91, 0xe0, 0xcb, 0x68, 0xd5, 0x28, 0x28, 0x16, 0x81, 0x18, 0x2b, 0x0d, 0x56, 0xc9, + 0xab, 0x68, 0xe1, 0x9e, 0x91, 0xe1, 0x26, 0xaa, 0x58, 0xa5, 0xc7, 0x7d, 0x46, 0x65, 0x7d, 0xb1, + 0x59, 0xcc, 0xdc, 0xec, 0x3d, 0xde, 0xa1, 0xd2, 0xfd, 0xce, 0x41, 0x1b, 0xf9, 0x7b, 0xfc, 0x6b, + 0xb8, 0xe1, 0x0b, 0xe8, 0x8c, 0x89, 0x28, 0x63, 0xc1, 0xb2, 0x5e, 0x4f, 0x27, 0xb6, 0x34, 0x9d, + 0xd8, 0x6f, 0x0b, 0x96, 0xcd, 0xf7, 0xc9, 0x50, 0x82, 0xfa, 0x74, 0x44, 0x89, 0x02, 0x0f, 0xbe, + 0x18, 0x83, 0x54, 0xf8, 0x12, 0xaa, 0x4c, 0xb4, 0xd8, 0xc2, 0xe4, 0x68, 0xcb, 0x15, 0x23, 0xcb, + 0x70, 0xb2, 0x2a, 0x21, 0xb0, 0x41, 0xa8, 0x6c, 0x58, 0xd6, 0xee, 0x8e, 0x96, 0xe1, 0x0f, 0x51, + 0xd5, 0x2a, 0x45, 0x10, 0xf9, 0x10, 0xcb, 0x7a, 0xb1, 0x59, 0xdc, 0x5e, 0xb9, 0x79, 0x79, 0xd6, + 0x9b, 0x30, 0x14, 0xbb, 0x4f, 0x86, 0x8c, 0x26, 0x19, 0xf3, 0xac, 0xff, 0x4f, 0x8c, 0x25, 0xee, + 0xa0, 0xd5, 0x18, 0x1e, 0x91, 0x98, 0xf6, 0x49, 0x24, 0xc6, 0xdc, 0x24, 0xa6, 0xdc, 0xb9, 0xf8, + 0xe4, 0xd9, 0xe6, 0xc2, 0x2f, 0xcf, 0x36, 0xff, 0x17, 0x08, 0x19, 0x09, 0x29, 0xe9, 0x7e, 0x8b, + 0x89, 0x76, 0x44, 0x54, 0xd8, 0xda, 0xe1, 0xca, 0xab, 0x18, 0x9b, 0x5b, 0xda, 0x24, 0xb9, 0x97, + 0xf5, 0xa1, 0xc4, 0x3e, 0x70, 0x4d, 0xf5, 0xb2, 0xb7, 0x62, 0x64, 0x7b, 0x89, 0xc8, 0xfd, 0xde, + 0x41, 0x17, 0x35, 0x2e, 0xbb, 0xa0, 0xee, 0xe5, 0x09, 0x04, 0x12, 0xbf, 0x85, 0xce, 0x4e, 0xd2, + 0x20, 0x33, 0xca, 0x99, 0xec, 0xad, 0x65, 0x1b, 0x29, 0xdf, 0x4e, 0x41, 0xd1, 0xeb, 0x68, 0x5d, + 0x8c, 0xc0, 0xa8, 0x83, 0x0a, 0x33, 0x93, 0xa2, 0x36, 0xc1, 0xe9, 0x5e, 0x4f, 0x85, 0xd6, 0xc2, + 0x7d, 0x68, 0xdf, 0x8c, 0x49, 0x65, 0x57, 0xf0, 0x07, 0x2c, 0x8e, 0x4e, 0x92, 0xc4, 0x97, 0x8f, + 0xce, 0xfd, 0xb2, 0x80, 0xaa, 0x16, 0x1f, 0x4e, 0xf7, 0x44, 0x4f, 0x85, 0xf8, 0x0a, 0xaa, 0x0a, + 0xcb, 0x72, 0xf3, 0x20, 0xec, 0x51, 0x95, 0x54, 0x9a, 0x3c, 0x09, 0x7c, 0x1e, 0x2d, 0x49, 0xe0, + 0x14, 0x62, 0xeb, 0xdd, 0xae, 0xf0, 0x06, 0x3a, 0x13, 0x43, 0x00, 0x6c, 0x02, 0xb1, 0xbd, 0x62, + 0xb6, 0xc6, 0x1f, 0xa0, 0xa5, 0x23, 0xc9, 0x6e, 0xdb, 0x64, 0x6f, 0x0d, 0x98, 0x0a, 0xc7, 0x7e, + 0x2b, 0x10, 0x51, 0xdb, 0xe4, 0xdd, 0xfe, 0x5c, 0x93, 0x74, 0xdf, 0x16, 0xed, 0xae, 0x60, 0xdc, + 0xb3, 0xe6, 0xf8, 0x2e, 0x42, 0xf6, 0x19, 0x3d, 0x00, 0x53, 0xe1, 0x4e, 0xe1, 0xac, 0x6c, 0x5c, + 0xbc, 0x0f, 0xe0, 0x0e, 0xd0, 0x59, 0x0d, 0x82, 0xc5, 0xda, 0x14, 0xa9, 0x63, 0xb5, 0xc5, 0xc9, + 0xd5, 0x96, 0x53, 0xc0, 0xad, 0xd0, 0xfa, 0xf1, 0x9e, 0x73, 0x5f, 0x28, 0x48, 0xce, 0xd2, 0xcd, + 0xf0, 0xe8, 0x59, 0x5a, 0x64, 0xce, 0xca, 0x57, 0xfd, 0xc2, 0x9c, 0xaa, 0x3f, 0x11, 0x2a, 0x83, + 0xde, 0x2c, 0xdc, 0xdf, 0x0b, 0xf6, 0x7e, 0xb7, 0x61, 0x24, 0x24, 0x53, 0xba, 0x5d, 0xfd, 0xf5, + 0x99, 0x97, 0x50, 0xc5, 0x28, 0x1c, 0x29, 0x09, 0xc6, 0xc8, 0x56, 0x84, 0x7c, 0x58, 0xc5, 0x59, + 0x61, 0x6d, 0xa1, 0x1a, 0xa8, 0x10, 0x62, 0x18, 0x47, 0x7d, 0xcb, 0x9a, 0x92, 0xa9, 0x8f, 0xa9, + 0x78, 0xd7, 0xb0, 0x67, 0x0b, 0xd5, 0x4c, 0xb2, 0xfa, 0x19, 0x89, 0xcc, 0xa3, 0xae, 0x1a, 0xb1, + 0x97, 0x52, 0xe9, 0x2a, 0xaa, 0xea, 0x37, 0x7f, 0x58, 0x70, 0x97, 0xb4, 0xde, 0xaa, 0x96, 0x66, + 0xf5, 0xf6, 0x9d, 0x8c, 0x71, 0xcb, 0x27, 0x29, 0x2f, 0x29, 0xbf, 0xe6, 0x65, 0xf6, 0xcc, 0xfc, + 0x67, 0x8e, 0x51, 0x89, 0x12, 0x45, 0xea, 0x65, 0xad, 0xa2, 0xbf, 0xdd, 0x3f, 0xd2, 0xee, 0x97, + 0x35, 0xda, 0x57, 0x0d, 0xfc, 0x31, 0x0e, 0x97, 0x72, 0x1c, 0xce, 0xe3, 0xb8, 0x38, 0x0b, 0xc7, + 0x79, 0x80, 0x2c, 0xcd, 0xa7, 0xfa, 0x4f, 0x05, 0xf4, 0x7f, 0x7d, 0xf9, 0x9e, 0xd7, 0xbd, 0x79, + 0xfd, 0x36, 0x8c, 0x86, 0xe2, 0x00, 0xe8, 0x2b, 0x47, 0xe0, 0x12, 0xaa, 0x58, 0x46, 0x99, 0x89, + 0xc3, 0xf0, 0x6e, 0xc5, 0xc8, 0x6e, 0xeb, 0xb9, 0xe3, 0x84, 0x18, 0x60, 0x54, 0xe2, 0x24, 0x02, + 0x7b, 0x67, 0xfd, 0xad, 0xab, 0xe0, 0x41, 0xe4, 0x8b, 0xa1, 0xe1, 0x97, 0x67, 0x57, 0x49, 0x15, + 0xa4, 0x10, 0xb0, 0x88, 0x0c, 0x0d, 0x69, 0x4a, 0x5e, 0xb6, 0x9e, 0x8b, 0x65, 0x79, 0x3e, 0x96, + 0x5f, 0x17, 0xd1, 0xf9, 0x5c, 0x77, 0xff, 0x2f, 0xa0, 0x3c, 0xd2, 0x81, 0x4a, 0xf9, 0x0e, 0x94, + 0x9f, 0x10, 0x16, 0xff, 0xb9, 0x09, 0x61, 0xe9, 0xef, 0x4f, 0x08, 0xcb, 0xb9, 0x09, 0xe1, 0x14, + 0x6f, 0xdd, 0x7d, 0xcf, 0x56, 0x71, 0x33, 0xff, 0xbd, 0x64, 0xe7, 0x74, 0xbf, 0x72, 0xd0, 0xa6, + 0x69, 0xb9, 0x63, 0x3f, 0x62, 0xaa, 0x43, 0xe8, 0x2e, 0x1b, 0x70, 0xa2, 0xc6, 0x31, 0xf4, 0x26, + 0x8c, 0x42, 0x82, 0xe3, 0x9b, 0xe8, 0xac, 0x4f, 0xa8, 0x9e, 0x17, 0x64, 0xba, 0x69, 0x87, 0x92, + 0x9a, 0x4f, 0x68, 0x4f, 0x85, 0x99, 0x0d, 0x7e, 0x17, 0x5d, 0xc8, 0xe9, 0xf6, 0xe5, 0xd8, 0x4f, + 0xf0, 0xb6, 0xbd, 0xe8, 0xfc, 0x31, 0x9b, 0x5d, 0xb3, 0xeb, 0xfe, 0xe0, 0xa0, 0x73, 0x29, 0xaf, + 0x4c, 0x12, 0x76, 0x87, 0x44, 0xea, 0xf9, 0x7c, 0x24, 0x1e, 0x41, 0xac, 0x8f, 0x2c, 0x7a, 0x66, + 0x91, 0x90, 0x3d, 0x06, 0x22, 0x05, 0x4f, 0x5b, 0xbe, 0x59, 0x25, 0x13, 0x54, 0x20, 0xb8, 0x04, + 0x2e, 0xc7, 0xf2, 0xd8, 0x78, 0xb3, 0x96, 0x6d, 0xa4, 0x75, 0xf2, 0x0d, 0xb4, 0x96, 0x8d, 0x43, + 0xa9, 0xae, 0x79, 0x93, 0xb5, 0x54, 0x9e, 0xaa, 0xd6, 0xd1, 0x72, 0x24, 0x38, 0xdb, 0xcf, 0x9a, + 0x40, 0xba, 0xec, 0xc0, 0x93, 0xe7, 0x0d, 0xe7, 0xe9, 0xf3, 0x86, 0xf3, 0xeb, 0xf3, 0x86, 0xf3, + 0xcd, 0x8b, 0xc6, 0xc2, 0xd3, 0x17, 0x8d, 0x85, 0x9f, 0x5f, 0x34, 0x16, 0x3e, 0xff, 0x68, 0xaa, + 0xfb, 0xef, 0xa4, 0x94, 0xfb, 0x98, 0xf8, 0xb2, 0x9d, 0x11, 0xf0, 0x5a, 0x20, 0x62, 0x98, 0x5e, + 0x26, 0x33, 0x77, 0x3b, 0x12, 0x74, 0x3c, 0x04, 0x69, 0xff, 0x2b, 0xea, 0x31, 0xc1, 0x5f, 0xd2, + 0xff, 0x14, 0xdf, 0xfe, 0x33, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x8d, 0x4c, 0x9e, 0xbc, 0x0e, 0x00, + 0x00, } func (m *EventAttestationObserved) Marshal() (dAtA []byte, err error) { diff --git a/chain/peggy/types/expected_keepers.go b/chain/peggy/types/expected_keepers.go index b4d8bb2d..a76278f5 100644 --- a/chain/peggy/types/expected_keepers.go +++ b/chain/peggy/types/expected_keepers.go @@ -1,9 +1,11 @@ package types import ( + "context" "time" - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" + storetypes "cosmossdk.io/store/types" sdk "github.com/cosmos/cosmos-sdk/types" bank "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/distribution/types" @@ -13,40 +15,40 @@ import ( // StakingKeeper defines the expected staking keeper methods type StakingKeeper interface { - GetBondedValidatorsByPower(ctx sdk.Context) []stakingtypes.Validator - GetLastValidatorPower(ctx sdk.Context, operator sdk.ValAddress) int64 - GetLastTotalPower(ctx sdk.Context) (power sdkmath.Int) - IterateValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) - ValidatorQueueIterator(ctx sdk.Context, endTime time.Time, endHeight int64) sdk.Iterator - GetParams(ctx sdk.Context) stakingtypes.Params - GetValidator(ctx sdk.Context, addr sdk.ValAddress) (validator stakingtypes.Validator, found bool) - IterateBondedValidatorsByPower(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) - IterateLastValidators(sdk.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) - Validator(sdk.Context, sdk.ValAddress) stakingtypes.ValidatorI - ValidatorByConsAddr(sdk.Context, sdk.ConsAddress) stakingtypes.ValidatorI - Slash(sdk.Context, sdk.ConsAddress, int64, int64, sdk.Dec) sdkmath.Int - Jail(sdk.Context, sdk.ConsAddress) - PowerReduction(ctx sdk.Context) (res sdkmath.Int) + GetBondedValidatorsByPower(ctx context.Context) ([]stakingtypes.Validator, error) + GetLastValidatorPower(ctx context.Context, operator sdk.ValAddress) (int64, error) + GetLastTotalPower(ctx context.Context) (power math.Int, err error) + IterateValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error + ValidatorQueueIterator(ctx context.Context, endTime time.Time, endHeight int64) (storetypes.Iterator, error) + GetParams(ctx context.Context) (stakingtypes.Params, error) + GetValidator(ctx context.Context, addr sdk.ValAddress) (validator stakingtypes.Validator, err error) + IterateBondedValidatorsByPower(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error + IterateLastValidators(context.Context, func(index int64, validator stakingtypes.ValidatorI) (stop bool)) error + Validator(context.Context, sdk.ValAddress) (stakingtypes.ValidatorI, error) + ValidatorByConsAddr(context.Context, sdk.ConsAddress) (stakingtypes.ValidatorI, error) + Slash(context.Context, sdk.ConsAddress, int64, int64, math.LegacyDec) (math.Int, error) + Jail(context.Context, sdk.ConsAddress) error + PowerReduction(ctx context.Context) (res math.Int) } // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx sdk.Context, name string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - GetDenomMetaData(ctx sdk.Context, denom string) (bank.Metadata, bool) - GetSupply(ctx sdk.Context, denom string) sdk.Coin + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + MintCoins(ctx context.Context, name string, amt sdk.Coins) error + BurnCoins(ctx context.Context, name string, amt sdk.Coins) error + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + GetDenomMetaData(ctx context.Context, denom string) (bank.Metadata, bool) + GetSupply(ctx context.Context, denom string) sdk.Coin } type SlashingKeeper interface { - GetValidatorSigningInfo(ctx sdk.Context, address sdk.ConsAddress) (info slashingtypes.ValidatorSigningInfo, found bool) + GetValidatorSigningInfo(ctx context.Context, address sdk.ConsAddress) (info slashingtypes.ValidatorSigningInfo, err error) } type DistributionKeeper interface { - FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error - GetFeePool(ctx sdk.Context) (feePool types.FeePool) - SetFeePool(ctx sdk.Context, feePool types.FeePool) + FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error + GetFeePool(ctx context.Context) (feePool types.FeePool) + SetFeePool(ctx context.Context, feePool types.FeePool) } diff --git a/chain/peggy/types/msgs.go b/chain/peggy/types/msgs.go index e95cdb2f..c1910b4f 100644 --- a/chain/peggy/types/msgs.go +++ b/chain/peggy/types/msgs.go @@ -24,6 +24,8 @@ var ( _ sdk.Msg = &MsgValsetUpdatedClaim{} _ sdk.Msg = &MsgSubmitBadSignatureEvidence{} _ sdk.Msg = &MsgUpdateParams{} + _ sdk.Msg = &MsgBlacklistEthereumAddresses{} + _ sdk.Msg = &MsgRevokeEthereumBlacklist{} ) func (m *MsgUpdateParams) Route() string { return RouterKey } @@ -618,3 +620,61 @@ func (msg MsgSubmitBadSignatureEvidence) Type() string { return "Submit_Bad_Sign // Route should return the name of the module func (msg MsgSubmitBadSignatureEvidence) Route() string { return RouterKey } + +func (m *MsgBlacklistEthereumAddresses) Route() string { return RouterKey } + +func (m *MsgBlacklistEthereumAddresses) Type() string { return "blacklist_ethereum_addresses" } + +func (m *MsgBlacklistEthereumAddresses) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { + return errors.Wrap(err, "invalid signer address") + } + + for _, blacklistAddress := range m.BlacklistAddresses { + + _, err := NewEthAddress(blacklistAddress) + if err != nil { + return errors.Wrapf(err, "invalid blacklist address %s", blacklistAddress) + } + } + + return nil +} + +func (m *MsgBlacklistEthereumAddresses) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m *MsgBlacklistEthereumAddresses) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Signer) + return []sdk.AccAddress{addr} +} + +func (m *MsgRevokeEthereumBlacklist) Route() string { return RouterKey } + +func (m *MsgRevokeEthereumBlacklist) Type() string { return "revoke_ethereum_blacklist" } + +func (m *MsgRevokeEthereumBlacklist) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(m.Signer); err != nil { + return errors.Wrap(err, "invalid signer address") + } + + for _, blacklistAddress := range m.BlacklistAddresses { + + _, err := NewEthAddress(blacklistAddress) + if err != nil { + return errors.Wrapf(err, "invalid blacklist address %s", blacklistAddress) + } + } + + return nil +} + +func (m *MsgRevokeEthereumBlacklist) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m *MsgRevokeEthereumBlacklist) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Signer) + return []sdk.AccAddress{addr} +} diff --git a/chain/peggy/types/msgs.pb.go b/chain/peggy/types/msgs.pb.go index 6bf0619c..b9928aab 100644 --- a/chain/peggy/types/msgs.pb.go +++ b/chain/peggy/types/msgs.pb.go @@ -5,12 +5,13 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" _ "github.com/cosmos/cosmos-proto" types1 "github.com/cosmos/cosmos-sdk/codec/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/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -601,14 +602,14 @@ var xxx_messageInfo_MsgConfirmBatchResponse proto.InternalMessageInfo // issued to the Cosmos address in question // ------------- type MsgDepositClaim struct { - EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` - BlockHeight uint64 `protobuf:"varint,2,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - TokenContract string `protobuf:"bytes,3,opt,name=token_contract,json=tokenContract,proto3" json:"token_contract,omitempty"` - Amount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"amount"` - EthereumSender string `protobuf:"bytes,5,opt,name=ethereum_sender,json=ethereumSender,proto3" json:"ethereum_sender,omitempty"` - CosmosReceiver string `protobuf:"bytes,6,opt,name=cosmos_receiver,json=cosmosReceiver,proto3" json:"cosmos_receiver,omitempty"` - Orchestrator string `protobuf:"bytes,7,opt,name=orchestrator,proto3" json:"orchestrator,omitempty"` - Data string `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"` + EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` + BlockHeight uint64 `protobuf:"varint,2,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + TokenContract string `protobuf:"bytes,3,opt,name=token_contract,json=tokenContract,proto3" json:"token_contract,omitempty"` + Amount cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=amount,proto3,customtype=cosmossdk.io/math.Int" json:"amount"` + EthereumSender string `protobuf:"bytes,5,opt,name=ethereum_sender,json=ethereumSender,proto3" json:"ethereum_sender,omitempty"` + CosmosReceiver string `protobuf:"bytes,6,opt,name=cosmos_receiver,json=cosmosReceiver,proto3" json:"cosmos_receiver,omitempty"` + Orchestrator string `protobuf:"bytes,7,opt,name=orchestrator,proto3" json:"orchestrator,omitempty"` + Data string `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"` } func (m *MsgDepositClaim) Reset() { *m = MsgDepositClaim{} } @@ -1175,13 +1176,13 @@ var xxx_messageInfo_MsgSubmitBadSignatureEvidenceResponse proto.InternalMessageI // This informs the Cosmos module that a validator // set has been updated. type MsgValsetUpdatedClaim struct { - EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` - ValsetNonce uint64 `protobuf:"varint,2,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` - BlockHeight uint64 `protobuf:"varint,3,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - Members []*BridgeValidator `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` - RewardAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=reward_amount,json=rewardAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"reward_amount"` - RewardToken string `protobuf:"bytes,6,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` - Orchestrator string `protobuf:"bytes,7,opt,name=orchestrator,proto3" json:"orchestrator,omitempty"` + EventNonce uint64 `protobuf:"varint,1,opt,name=event_nonce,json=eventNonce,proto3" json:"event_nonce,omitempty"` + ValsetNonce uint64 `protobuf:"varint,2,opt,name=valset_nonce,json=valsetNonce,proto3" json:"valset_nonce,omitempty"` + BlockHeight uint64 `protobuf:"varint,3,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + Members []*BridgeValidator `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` + RewardAmount cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=reward_amount,json=rewardAmount,proto3,customtype=cosmossdk.io/math.Int" json:"reward_amount"` + RewardToken string `protobuf:"bytes,6,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` + Orchestrator string `protobuf:"bytes,7,opt,name=orchestrator,proto3" json:"orchestrator,omitempty"` } func (m *MsgValsetUpdatedClaim) Reset() { *m = MsgValsetUpdatedClaim{} } @@ -1387,6 +1388,194 @@ func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo +// MsgBlacklistEthereumAddresses defines the message used to add Ethereum +// addresses to peggy blacklist. +type MsgBlacklistEthereumAddresses struct { + // signer address + Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"` + // Ethereum addresses to include in the blacklist + BlacklistAddresses []string `protobuf:"bytes,2,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` +} + +func (m *MsgBlacklistEthereumAddresses) Reset() { *m = MsgBlacklistEthereumAddresses{} } +func (m *MsgBlacklistEthereumAddresses) String() string { return proto.CompactTextString(m) } +func (*MsgBlacklistEthereumAddresses) ProtoMessage() {} +func (*MsgBlacklistEthereumAddresses) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{24} +} +func (m *MsgBlacklistEthereumAddresses) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgBlacklistEthereumAddresses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgBlacklistEthereumAddresses.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgBlacklistEthereumAddresses) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgBlacklistEthereumAddresses.Merge(m, src) +} +func (m *MsgBlacklistEthereumAddresses) XXX_Size() int { + return m.Size() +} +func (m *MsgBlacklistEthereumAddresses) XXX_DiscardUnknown() { + xxx_messageInfo_MsgBlacklistEthereumAddresses.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgBlacklistEthereumAddresses proto.InternalMessageInfo + +func (m *MsgBlacklistEthereumAddresses) GetSigner() string { + if m != nil { + return m.Signer + } + return "" +} + +func (m *MsgBlacklistEthereumAddresses) GetBlacklistAddresses() []string { + if m != nil { + return m.BlacklistAddresses + } + return nil +} + +// MsgBlacklistEthereumAddressesResponse defines the +// MsgBlacklistEthereumAddresses response type. +type MsgBlacklistEthereumAddressesResponse struct { +} + +func (m *MsgBlacklistEthereumAddressesResponse) Reset() { *m = MsgBlacklistEthereumAddressesResponse{} } +func (m *MsgBlacklistEthereumAddressesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgBlacklistEthereumAddressesResponse) ProtoMessage() {} +func (*MsgBlacklistEthereumAddressesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{25} +} +func (m *MsgBlacklistEthereumAddressesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgBlacklistEthereumAddressesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgBlacklistEthereumAddressesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgBlacklistEthereumAddressesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgBlacklistEthereumAddressesResponse.Merge(m, src) +} +func (m *MsgBlacklistEthereumAddressesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgBlacklistEthereumAddressesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgBlacklistEthereumAddressesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgBlacklistEthereumAddressesResponse proto.InternalMessageInfo + +// MsgRevokeEthereumBlacklist defines the message used to remove Ethereum +// addresses from peggy blacklist. +type MsgRevokeEthereumBlacklist struct { + // signer address + Signer string `protobuf:"bytes,1,opt,name=signer,proto3" json:"signer,omitempty"` + // Ethereum addresses to include in the blacklist + BlacklistAddresses []string `protobuf:"bytes,2,rep,name=blacklist_addresses,json=blacklistAddresses,proto3" json:"blacklist_addresses,omitempty"` +} + +func (m *MsgRevokeEthereumBlacklist) Reset() { *m = MsgRevokeEthereumBlacklist{} } +func (m *MsgRevokeEthereumBlacklist) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeEthereumBlacklist) ProtoMessage() {} +func (*MsgRevokeEthereumBlacklist) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{26} +} +func (m *MsgRevokeEthereumBlacklist) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeEthereumBlacklist) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeEthereumBlacklist.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeEthereumBlacklist) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeEthereumBlacklist.Merge(m, src) +} +func (m *MsgRevokeEthereumBlacklist) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeEthereumBlacklist) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeEthereumBlacklist.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeEthereumBlacklist proto.InternalMessageInfo + +func (m *MsgRevokeEthereumBlacklist) GetSigner() string { + if m != nil { + return m.Signer + } + return "" +} + +func (m *MsgRevokeEthereumBlacklist) GetBlacklistAddresses() []string { + if m != nil { + return m.BlacklistAddresses + } + return nil +} + +// MsgRevokeEthereumBlacklistResponse defines the MsgRevokeEthereumBlacklist +// response type. +type MsgRevokeEthereumBlacklistResponse struct { +} + +func (m *MsgRevokeEthereumBlacklistResponse) Reset() { *m = MsgRevokeEthereumBlacklistResponse{} } +func (m *MsgRevokeEthereumBlacklistResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeEthereumBlacklistResponse) ProtoMessage() {} +func (*MsgRevokeEthereumBlacklistResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_751daa04abed7ef4, []int{27} +} +func (m *MsgRevokeEthereumBlacklistResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeEthereumBlacklistResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeEthereumBlacklistResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeEthereumBlacklistResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeEthereumBlacklistResponse.Merge(m, src) +} +func (m *MsgRevokeEthereumBlacklistResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeEthereumBlacklistResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeEthereumBlacklistResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeEthereumBlacklistResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgSetOrchestratorAddresses)(nil), "injective.peggy.v1.MsgSetOrchestratorAddresses") proto.RegisterType((*MsgSetOrchestratorAddressesResponse)(nil), "injective.peggy.v1.MsgSetOrchestratorAddressesResponse") @@ -1412,109 +1601,127 @@ func init() { proto.RegisterType((*MsgValsetUpdatedClaimResponse)(nil), "injective.peggy.v1.MsgValsetUpdatedClaimResponse") proto.RegisterType((*MsgUpdateParams)(nil), "injective.peggy.v1.MsgUpdateParams") proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.peggy.v1.MsgUpdateParamsResponse") + proto.RegisterType((*MsgBlacklistEthereumAddresses)(nil), "injective.peggy.v1.MsgBlacklistEthereumAddresses") + proto.RegisterType((*MsgBlacklistEthereumAddressesResponse)(nil), "injective.peggy.v1.MsgBlacklistEthereumAddressesResponse") + proto.RegisterType((*MsgRevokeEthereumBlacklist)(nil), "injective.peggy.v1.MsgRevokeEthereumBlacklist") + proto.RegisterType((*MsgRevokeEthereumBlacklistResponse)(nil), "injective.peggy.v1.MsgRevokeEthereumBlacklistResponse") } func init() { proto.RegisterFile("injective/peggy/v1/msgs.proto", fileDescriptor_751daa04abed7ef4) } var fileDescriptor_751daa04abed7ef4 = []byte{ - // 1544 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x8f, 0xdc, 0xc4, - 0x12, 0x5f, 0xef, 0xce, 0x7e, 0xf5, 0xec, 0xc7, 0x8b, 0xb5, 0x2f, 0x99, 0xf5, 0x4b, 0x66, 0xb3, - 0xde, 0x24, 0xbb, 0xc9, 0x4b, 0x3c, 0xd9, 0xcd, 0xd3, 0x0b, 0x89, 0x04, 0x52, 0x76, 0x37, 0x11, - 0x11, 0x6c, 0x40, 0x33, 0x21, 0x48, 0x1c, 0x70, 0xda, 0x76, 0xc5, 0x36, 0x19, 0xbb, 0x07, 0x77, - 0xcf, 0x44, 0xc3, 0x09, 0xe5, 0xca, 0x01, 0x44, 0x4e, 0x5c, 0xb8, 0x10, 0x71, 0xe6, 0xc0, 0x89, - 0x23, 0x12, 0x22, 0xc7, 0x08, 0x84, 0x84, 0x38, 0x44, 0x90, 0x20, 0x71, 0xe1, 0x8f, 0x40, 0xee, - 0x6e, 0x7b, 0xed, 0x1d, 0x7b, 0x98, 0xa0, 0x9c, 0xc6, 0x5d, 0x5d, 0xd5, 0xf5, 0xab, 0xaa, 0x5f, - 0x57, 0xd7, 0xa0, 0x63, 0x7e, 0xf8, 0x1e, 0xd8, 0xcc, 0xef, 0x41, 0xa3, 0x03, 0xae, 0xdb, 0x6f, - 0xf4, 0x36, 0x1b, 0x01, 0x75, 0xa9, 0xd1, 0x89, 0x08, 0x23, 0xaa, 0x9a, 0x6e, 0x1b, 0x7c, 0xdb, - 0xe8, 0x6d, 0x6a, 0x75, 0x9b, 0xd0, 0x80, 0xd0, 0x86, 0x85, 0x29, 0x34, 0x7a, 0x9b, 0x16, 0x30, - 0xbc, 0xd9, 0xb0, 0x89, 0x1f, 0x0a, 0x1b, 0x6d, 0xc9, 0x25, 0x2e, 0xe1, 0x9f, 0x8d, 0xf8, 0x4b, - 0x4a, 0x8f, 0xba, 0x84, 0xb8, 0x6d, 0x68, 0xe0, 0x8e, 0xdf, 0xc0, 0x61, 0x48, 0x18, 0x66, 0x3e, - 0x09, 0xa5, 0x1f, 0xad, 0x5e, 0x00, 0x83, 0xf5, 0x3b, 0x90, 0xec, 0xaf, 0x14, 0xec, 0x77, 0x70, - 0x84, 0x83, 0x44, 0x61, 0x59, 0x1e, 0xcf, 0x57, 0x56, 0xf7, 0x4e, 0x03, 0x87, 0x7d, 0xb9, 0x75, - 0x44, 0xe2, 0x0d, 0xa8, 0x2b, 0xa3, 0x4b, 0x6c, 0xc4, 0x86, 0x29, 0xb0, 0x8a, 0x85, 0xd8, 0xd2, - 0x3f, 0x40, 0xff, 0xd9, 0xa3, 0x6e, 0x0b, 0xd8, 0x1b, 0x91, 0xed, 0x01, 0x65, 0x11, 0x66, 0x24, - 0xba, 0xe2, 0x38, 0x11, 0x50, 0x0a, 0x54, 0x3d, 0x8c, 0xa6, 0x28, 0x84, 0x0e, 0x44, 0x35, 0xe5, - 0xb8, 0xb2, 0x31, 0xdb, 0x94, 0x2b, 0x55, 0x47, 0x73, 0x24, 0x63, 0x50, 0x1b, 0xe7, 0xbb, 0x39, - 0x99, 0xba, 0x82, 0xaa, 0xc0, 0x3c, 0x13, 0x8b, 0xc3, 0x6a, 0x13, 0x5c, 0x05, 0x01, 0xf3, 0xe4, - 0xf1, 0xfa, 0x49, 0xb4, 0x36, 0xc4, 0x77, 0x13, 0x68, 0x87, 0x84, 0x14, 0xf4, 0xcf, 0x15, 0xf4, - 0xaf, 0x3d, 0xea, 0xde, 0xc2, 0x6d, 0x0a, 0x6c, 0x87, 0x84, 0x77, 0xfc, 0x28, 0x50, 0x97, 0xd0, - 0x64, 0x48, 0x42, 0x1b, 0x38, 0xae, 0x4a, 0x53, 0x2c, 0x5e, 0x08, 0x2c, 0xf5, 0x28, 0x9a, 0xa5, - 0xbe, 0x1b, 0x62, 0xd6, 0x8d, 0xa0, 0x56, 0xe1, 0xdb, 0xfb, 0x82, 0xcb, 0x87, 0xee, 0xff, 0xf1, - 0xd5, 0x99, 0xdc, 0x89, 0xba, 0x86, 0x6a, 0x07, 0xf1, 0xa5, 0xe0, 0xbf, 0x57, 0xd0, 0x1c, 0x0f, - 0x32, 0x74, 0x6e, 0x92, 0xab, 0xcc, 0x2b, 0xcd, 0xe8, 0x32, 0x9a, 0x89, 0x61, 0x39, 0x40, 0x99, - 0x84, 0x3d, 0x0d, 0xcc, 0xdb, 0x05, 0xca, 0xd4, 0x8b, 0x68, 0x0a, 0x07, 0xa4, 0x1b, 0x32, 0x0e, - 0xb6, 0xba, 0xb5, 0x6c, 0xc8, 0x12, 0xc6, 0xc4, 0x34, 0x24, 0x31, 0x8d, 0x1d, 0xe2, 0x87, 0xdb, - 0x95, 0x47, 0x4f, 0x56, 0xc6, 0x9a, 0x52, 0x5d, 0x7d, 0x05, 0x21, 0x2b, 0xf2, 0x1d, 0x17, 0xcc, - 0x3b, 0x20, 0x42, 0x19, 0xc1, 0x78, 0x56, 0x98, 0x5c, 0x03, 0xb8, 0x5c, 0x8d, 0x63, 0x95, 0x00, - 0xf5, 0xc3, 0x68, 0x29, 0x1b, 0x48, 0x1a, 0xe1, 0xbb, 0x68, 0x71, 0x8f, 0xba, 0x4d, 0x78, 0xbf, - 0x0b, 0x94, 0x6d, 0x63, 0x66, 0x7b, 0x03, 0x65, 0x50, 0x0a, 0xca, 0xb0, 0x84, 0x26, 0x1d, 0x08, - 0x49, 0x20, 0x83, 0x15, 0x8b, 0xa2, 0xec, 0x2e, 0xa3, 0x23, 0x07, 0xce, 0x4f, 0x5d, 0x7f, 0xab, - 0x70, 0xdf, 0x32, 0xe7, 0xc2, 0x77, 0x31, 0x31, 0x4e, 0xa2, 0x05, 0x46, 0xee, 0x42, 0x68, 0xda, - 0x24, 0x64, 0x11, 0xb6, 0x93, 0x1c, 0xcf, 0x73, 0xe9, 0x8e, 0x14, 0xaa, 0xc7, 0x50, 0x4c, 0x04, - 0x33, 0xae, 0x36, 0x44, 0x92, 0x1a, 0xb3, 0xc0, 0xbc, 0x16, 0x17, 0x0c, 0xc4, 0x55, 0x29, 0x88, - 0x2b, 0xc7, 0x9e, 0xc9, 0x11, 0xd8, 0x23, 0xe2, 0xcb, 0xc6, 0x90, 0xc6, 0xf7, 0xdb, 0x38, 0x8f, - 0x6f, 0x17, 0x3a, 0x84, 0xfa, 0x6c, 0xa7, 0x8d, 0xfd, 0x80, 0xd3, 0xb7, 0x07, 0x21, 0x33, 0xb3, - 0x51, 0x22, 0x2e, 0xba, 0xc1, 0x43, 0x5d, 0x45, 0x73, 0x56, 0x9b, 0xd8, 0x77, 0x4d, 0x0f, 0x7c, - 0xd7, 0x13, 0x81, 0x56, 0x9a, 0x55, 0x2e, 0x7b, 0x95, 0x8b, 0x0a, 0xb2, 0x31, 0x51, 0x94, 0x8d, - 0x6b, 0x29, 0xef, 0x78, 0xa0, 0xdb, 0x46, 0xcc, 0x8f, 0x5f, 0x9e, 0xac, 0x9c, 0x72, 0x7d, 0xe6, - 0x75, 0x2d, 0xc3, 0x26, 0x81, 0x6c, 0x26, 0xf2, 0xe7, 0x1c, 0x75, 0xee, 0xca, 0x6e, 0x76, 0x3d, - 0x64, 0x29, 0x0d, 0xd7, 0xd1, 0x22, 0x30, 0x0f, 0x22, 0xe8, 0x06, 0xa6, 0xe4, 0xbe, 0x48, 0xcc, - 0x42, 0x22, 0x6e, 0x89, 0x3b, 0xb0, 0x8e, 0x16, 0x65, 0xa7, 0x8a, 0xc0, 0x06, 0xbf, 0x07, 0x51, - 0x6d, 0x4a, 0x28, 0x0a, 0x71, 0x53, 0x4a, 0x07, 0x0a, 0x31, 0x5d, 0x50, 0x08, 0x15, 0x55, 0x1c, - 0xcc, 0x70, 0x6d, 0x86, 0xef, 0xf1, 0xef, 0xf2, 0xf4, 0x67, 0x53, 0x9c, 0xa6, 0xff, 0x27, 0xd1, - 0x78, 0xde, 0xf6, 0x99, 0xe7, 0x44, 0xf8, 0xde, 0x8b, 0xcb, 0xff, 0x0a, 0xaa, 0x5a, 0x71, 0xa1, - 0xe5, 0x19, 0x13, 0xe2, 0x0c, 0x2e, 0xba, 0x51, 0x42, 0xd7, 0x4a, 0x51, 0x81, 0x0e, 0xa6, 0x61, - 0x72, 0x30, 0x0d, 0xe5, 0xfd, 0x2a, 0x17, 0x56, 0x1a, 0xf3, 0xc3, 0x71, 0xf4, 0xef, 0x3d, 0xea, - 0x5e, 0x6d, 0xee, 0x6c, 0x9d, 0xdf, 0x85, 0x4e, 0x9b, 0xf4, 0xc1, 0x79, 0x71, 0x81, 0xaf, 0xa2, - 0x39, 0x59, 0x60, 0x71, 0xf7, 0x05, 0xed, 0xaa, 0x42, 0xb6, 0x1b, 0x8b, 0x46, 0x0d, 0x5d, 0x45, - 0x95, 0x10, 0x07, 0xc9, 0x0d, 0xe3, 0xdf, 0xbc, 0xb5, 0xf6, 0x03, 0x8b, 0xb4, 0x25, 0x6b, 0xe4, - 0x4a, 0xd5, 0xd0, 0x8c, 0x03, 0xb6, 0x1f, 0xe0, 0x36, 0xe5, 0x4c, 0xa9, 0x34, 0xd3, 0xf5, 0x40, - 0x0a, 0x67, 0x46, 0x4b, 0xe1, 0x0a, 0x3a, 0x56, 0x98, 0xa5, 0x34, 0x8f, 0xb7, 0x91, 0x1a, 0xdf, - 0x6a, 0x1c, 0xda, 0xd0, 0xde, 0x6f, 0xfe, 0x71, 0x70, 0x11, 0x0e, 0x29, 0xb6, 0xe3, 0x99, 0xc0, - 0xf4, 0x1d, 0x99, 0xc6, 0xf9, 0x8c, 0xf4, 0xba, 0x93, 0x79, 0x23, 0xc6, 0xb3, 0x6f, 0x44, 0xbe, - 0x1f, 0x1f, 0x45, 0xda, 0xa0, 0x87, 0xd4, 0xff, 0xa7, 0x0a, 0x47, 0xd8, 0xea, 0x5a, 0x81, 0xcf, - 0xb6, 0xb1, 0xd3, 0x4a, 0x5a, 0xd0, 0xd5, 0x9e, 0xef, 0x40, 0x5c, 0x2e, 0x03, 0x4d, 0xd3, 0xae, - 0x15, 0x0f, 0x1b, 0x1c, 0x44, 0x75, 0x6b, 0xc9, 0x10, 0xa3, 0x85, 0x91, 0x8c, 0x16, 0xc6, 0x95, - 0xb0, 0xdf, 0x4c, 0x94, 0xf2, 0x8d, 0x6d, 0xfc, 0x40, 0x63, 0xcb, 0x40, 0x9e, 0x28, 0x87, 0xbc, - 0x8e, 0x4e, 0x0e, 0xc5, 0x94, 0xa2, 0xff, 0x53, 0xb0, 0x50, 0x3c, 0xa9, 0x6f, 0x75, 0x1c, 0xcc, - 0x9e, 0x87, 0x85, 0x3d, 0x6e, 0x26, 0x35, 0x24, 0x0b, 0x85, 0xac, 0x98, 0xa8, 0x13, 0x83, 0x44, - 0x7d, 0x19, 0x4d, 0x07, 0x10, 0x58, 0x10, 0xd1, 0x5a, 0xe5, 0xf8, 0xc4, 0x46, 0x75, 0x6b, 0xcd, - 0x18, 0x1c, 0x10, 0x8d, 0x6d, 0xfe, 0x52, 0xde, 0xc2, 0x6d, 0xdf, 0x89, 0x59, 0xd1, 0x4c, 0x6c, - 0xd4, 0x16, 0x9a, 0x8f, 0xe0, 0x1e, 0x8e, 0x1c, 0x53, 0x36, 0xd0, 0xc9, 0x7f, 0xd4, 0x40, 0xe7, - 0xc4, 0x21, 0x57, 0x44, 0x1b, 0x5d, 0x45, 0x72, 0x6d, 0xf2, 0xab, 0x20, 0x49, 0x5e, 0x15, 0xb2, - 0x9b, 0xb1, 0x68, 0x94, 0xbe, 0x58, 0xce, 0xe6, 0xc1, 0x6c, 0xa7, 0xf5, 0x78, 0x20, 0x1e, 0x5a, - 0xb1, 0xf7, 0x26, 0x1f, 0x47, 0xd5, 0xff, 0xa3, 0x59, 0xdc, 0x65, 0x1e, 0x89, 0x7c, 0xd6, 0x17, - 0x2f, 0xfc, 0x76, 0xed, 0x87, 0xaf, 0xcf, 0x2d, 0xc9, 0xf1, 0x42, 0x4e, 0x53, 0x2d, 0x16, 0xf9, - 0xa1, 0xdb, 0xdc, 0x57, 0x55, 0x5f, 0x42, 0x53, 0x62, 0xa0, 0xe5, 0xa5, 0xa9, 0x6e, 0x69, 0x45, - 0x99, 0x15, 0x3e, 0x92, 0x71, 0x46, 0xe8, 0x5f, 0x5e, 0x88, 0x91, 0xef, 0x9f, 0x24, 0x5b, 0x77, - 0x16, 0x54, 0x02, 0x78, 0xeb, 0xcb, 0x05, 0x34, 0xb1, 0x47, 0x5d, 0xf5, 0x63, 0x05, 0xcd, 0xe7, - 0x07, 0xc7, 0x13, 0x45, 0xee, 0x0e, 0x8e, 0x6f, 0xda, 0xd9, 0x51, 0xb4, 0xd2, 0xf4, 0x9c, 0xb9, - 0xff, 0xe3, 0xef, 0x0f, 0xc6, 0x4f, 0xe8, 0x7a, 0xa3, 0x60, 0x7a, 0x97, 0x6c, 0xb4, 0xa5, 0xff, - 0x0f, 0x15, 0x34, 0xbb, 0xdf, 0x10, 0x8e, 0x97, 0xf8, 0x49, 0x35, 0xb4, 0x8d, 0xbf, 0xd3, 0x48, - 0x51, 0xac, 0x73, 0x14, 0xab, 0xfa, 0x4a, 0x11, 0x8a, 0xf8, 0x06, 0x9a, 0x8c, 0x98, 0xc0, 0x3c, - 0xf5, 0x23, 0x05, 0xcd, 0xe5, 0xe6, 0xb5, 0xb5, 0x12, 0x1f, 0x59, 0x25, 0xed, 0xbf, 0x23, 0x28, - 0xa5, 0x58, 0x4e, 0x73, 0x2c, 0x6b, 0xfa, 0x6a, 0x11, 0x96, 0x48, 0x58, 0x98, 0xfc, 0xc1, 0xe3, - 0x68, 0x72, 0x13, 0x5c, 0x19, 0x9a, 0xac, 0x52, 0x29, 0x9a, 0xc2, 0x39, 0x6a, 0x28, 0x1a, 0x59, - 0x98, 0x0c, 0x9a, 0xdc, 0xbc, 0x55, 0x86, 0x26, 0xab, 0x54, 0x8a, 0xa6, 0x70, 0xac, 0x18, 0x8a, - 0xc6, 0x11, 0x16, 0xa6, 0xcd, 0x9d, 0xc7, 0xf4, 0xcd, 0x8f, 0x1f, 0x65, 0xf4, 0xcd, 0x69, 0x95, - 0xd2, 0xb7, 0xf8, 0xcd, 0x1f, 0x4a, 0xdf, 0x7b, 0xd2, 0x44, 0x22, 0xfa, 0x42, 0x41, 0x87, 0xb2, - 0x8d, 0x42, 0xa0, 0x3a, 0x3d, 0xf4, 0xba, 0x64, 0x5b, 0x8a, 0xb6, 0x39, 0xb2, 0x6a, 0x8a, 0xef, - 0x3c, 0xc7, 0x77, 0x46, 0xdf, 0x18, 0x72, 0xbd, 0xba, 0xc2, 0x50, 0xa2, 0x7c, 0xa8, 0x20, 0xb5, - 0x60, 0x84, 0x29, 0x83, 0x39, 0xa8, 0x5a, 0x0a, 0x73, 0xc8, 0x93, 0x3f, 0x14, 0x26, 0x44, 0xf6, - 0xd6, 0x79, 0xd3, 0x91, 0x86, 0x12, 0xe6, 0x37, 0x0a, 0xaa, 0x95, 0xfe, 0xf5, 0x6e, 0x94, 0x5e, - 0xfc, 0x62, 0x03, 0xed, 0xe2, 0x73, 0x1a, 0xa4, 0xc0, 0xff, 0xc7, 0x81, 0x1b, 0xfa, 0xd9, 0xe2, - 0xc6, 0xc1, 0xcc, 0xec, 0x63, 0x91, 0xfc, 0x71, 0x56, 0x3f, 0x53, 0xd0, 0xe2, 0xc1, 0xf9, 0xe6, - 0x54, 0xd9, 0xad, 0xcc, 0xeb, 0x69, 0xc6, 0x68, 0x7a, 0x29, 0x42, 0x83, 0x23, 0xdc, 0xd0, 0x4f, - 0x15, 0x5e, 0x60, 0x6e, 0x64, 0x66, 0x3b, 0xdc, 0x77, 0x0a, 0xd2, 0x86, 0x8c, 0x3e, 0x65, 0xc5, - 0x2d, 0x37, 0xd1, 0x2e, 0x3d, 0xb7, 0x49, 0x0a, 0xfe, 0x12, 0x07, 0x7f, 0x41, 0xdf, 0x2c, 0x4c, - 0x2f, 0xb7, 0x37, 0x2d, 0xec, 0x98, 0xe9, 0x30, 0x65, 0x42, 0x02, 0xf4, 0x36, 0x9a, 0xcb, 0xbd, - 0xb9, 0x65, 0xcd, 0x28, 0xab, 0x54, 0xda, 0x8c, 0x8a, 0x1e, 0xca, 0x6d, 0x78, 0xf4, 0xb4, 0xae, - 0x3c, 0x7e, 0x5a, 0x57, 0x7e, 0x7d, 0x5a, 0x57, 0x3e, 0x79, 0x56, 0x1f, 0x7b, 0xfc, 0xac, 0x3e, - 0xf6, 0xf3, 0xb3, 0xfa, 0xd8, 0x3b, 0xaf, 0x65, 0x86, 0x94, 0xeb, 0xc9, 0x81, 0xaf, 0x63, 0x8b, - 0xee, 0x87, 0x71, 0xce, 0x26, 0x11, 0x64, 0x97, 0x1e, 0xf6, 0xc3, 0x46, 0x40, 0x9c, 0x6e, 0x1b, - 0xa8, 0x8c, 0x91, 0x4f, 0x33, 0xd6, 0x14, 0x9f, 0x29, 0x2f, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, - 0x55, 0x57, 0xa5, 0xac, 0x86, 0x13, 0x00, 0x00, + // 1776 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6c, 0xdb, 0xc8, + 0x15, 0x36, 0x2d, 0xf9, 0x6f, 0x64, 0xc7, 0x09, 0xeb, 0x24, 0x32, 0x13, 0xcb, 0x36, 0x9d, 0xc4, + 0x8e, 0x93, 0x90, 0x96, 0xd3, 0x26, 0x8d, 0x81, 0x16, 0x88, 0x6c, 0x17, 0x0d, 0x5a, 0xa7, 0x85, + 0x9c, 0xa6, 0x40, 0x2f, 0xec, 0x88, 0x9c, 0x90, 0xac, 0x45, 0x8e, 0xca, 0x19, 0x29, 0xf5, 0xa1, + 0x40, 0x9a, 0x63, 0x7a, 0x68, 0x81, 0x1e, 0x8a, 0x1e, 0x7a, 0xda, 0xbd, 0x06, 0xc8, 0x61, 0x2f, + 0x9b, 0xc3, 0x9e, 0x76, 0x81, 0x1c, 0x83, 0xdd, 0xcb, 0x62, 0xb1, 0x08, 0x16, 0xc9, 0x02, 0x01, + 0xf6, 0xb4, 0xf7, 0xbd, 0x2c, 0x38, 0x33, 0xa4, 0x48, 0x89, 0x94, 0x65, 0xc0, 0x17, 0x43, 0xf3, + 0xe6, 0xbd, 0x99, 0xef, 0xfd, 0xce, 0x47, 0x83, 0x05, 0xd7, 0xff, 0x0b, 0x32, 0xa9, 0xdb, 0x41, + 0x7a, 0x0b, 0xd9, 0xf6, 0xa1, 0xde, 0xa9, 0xea, 0x1e, 0xb1, 0x89, 0xd6, 0x0a, 0x30, 0xc5, 0xb2, + 0x1c, 0x6f, 0x6b, 0x6c, 0x5b, 0xeb, 0x54, 0x95, 0x8a, 0x89, 0x89, 0x87, 0x89, 0xde, 0x80, 0x04, + 0xe9, 0x9d, 0x6a, 0x03, 0x51, 0x58, 0xd5, 0x4d, 0xec, 0xfa, 0xdc, 0x46, 0x99, 0xb3, 0xb1, 0x8d, + 0xd9, 0x4f, 0x3d, 0xfc, 0x25, 0xa4, 0x17, 0x6d, 0x8c, 0xed, 0x26, 0xd2, 0x61, 0xcb, 0xd5, 0xa1, + 0xef, 0x63, 0x0a, 0xa9, 0x8b, 0x7d, 0x71, 0x8f, 0x52, 0xc9, 0x80, 0x41, 0x0f, 0x5b, 0x28, 0xda, + 0x5f, 0xcc, 0xd8, 0x6f, 0xc1, 0x00, 0x7a, 0x91, 0xc2, 0xbc, 0x38, 0x9e, 0xad, 0x1a, 0xed, 0x47, + 0x3a, 0xf4, 0x0f, 0xc5, 0xd6, 0x79, 0x81, 0xd7, 0x23, 0xb6, 0xf0, 0x2e, 0xb2, 0xe1, 0x1b, 0x06, + 0xc7, 0xca, 0x17, 0x62, 0xeb, 0x0c, 0xf4, 0x5c, 0x1f, 0xeb, 0xec, 0x2f, 0x17, 0xa9, 0xcf, 0x25, + 0x70, 0x61, 0x8f, 0xd8, 0xfb, 0x88, 0xfe, 0x2e, 0x30, 0x1d, 0x44, 0x68, 0x00, 0x29, 0x0e, 0xee, + 0x5a, 0x56, 0x80, 0x08, 0x41, 0x44, 0x3e, 0x07, 0xc6, 0x09, 0xf2, 0x2d, 0x14, 0x94, 0xa5, 0x25, + 0x69, 0x6d, 0xaa, 0x2e, 0x56, 0xb2, 0x0a, 0xa6, 0x71, 0xc2, 0xa0, 0x3c, 0xca, 0x76, 0x53, 0x32, + 0x79, 0x11, 0x94, 0x10, 0x75, 0x0c, 0xc8, 0x0f, 0x2b, 0x17, 0x98, 0x0a, 0x40, 0xd4, 0x11, 0xc7, + 0x6f, 0x55, 0x9f, 0xbe, 0x7f, 0xb1, 0x2e, 0x4e, 0x7c, 0xf6, 0xfe, 0xc5, 0xfa, 0x32, 0x8f, 0xc2, + 0x00, 0x3c, 0xea, 0x65, 0xb0, 0x32, 0x60, 0xbb, 0x8e, 0x48, 0x0b, 0xfb, 0x04, 0xa9, 0x1f, 0x4b, + 0xe0, 0xf4, 0x1e, 0xb1, 0x1f, 0xc2, 0x26, 0x41, 0x74, 0x1b, 0xfb, 0x8f, 0xdc, 0xc0, 0x93, 0xe7, + 0xc0, 0x98, 0x8f, 0x7d, 0x13, 0x31, 0x57, 0x8a, 0x75, 0xbe, 0x38, 0x11, 0x4f, 0xe4, 0x8b, 0x60, + 0x8a, 0xb8, 0xb6, 0x0f, 0x69, 0x3b, 0x40, 0xe5, 0x22, 0xdb, 0xee, 0x0a, 0xb6, 0xae, 0x87, 0x7e, + 0xa6, 0x4e, 0x0c, 0xbd, 0x3d, 0x17, 0x7b, 0x9b, 0x82, 0xa9, 0x2a, 0xa0, 0xdc, 0x2b, 0x8b, 0xfd, + 0x7a, 0x23, 0x81, 0x69, 0xe6, 0xbf, 0x6f, 0x3d, 0xc0, 0xbb, 0xd4, 0xc9, 0xcd, 0xcf, 0x3c, 0x98, + 0x0c, 0x11, 0x5b, 0x88, 0x50, 0xe1, 0xd1, 0x04, 0xa2, 0xce, 0x0e, 0x22, 0x54, 0xbe, 0x0d, 0xc6, + 0xa1, 0x87, 0xdb, 0x3e, 0x65, 0x7e, 0x94, 0x36, 0xe7, 0x35, 0x51, 0x24, 0x61, 0xe9, 0x6b, 0xa2, + 0xf4, 0xb5, 0x6d, 0xec, 0xfa, 0xb5, 0xe2, 0xab, 0x37, 0x8b, 0x23, 0x75, 0xa1, 0x2e, 0xff, 0x12, + 0x80, 0x46, 0xe0, 0x5a, 0x36, 0x32, 0x1e, 0x21, 0xee, 0xe5, 0x10, 0xc6, 0x53, 0xdc, 0xe4, 0x57, + 0x08, 0x6d, 0xa9, 0x3d, 0xe9, 0x96, 0x13, 0xe9, 0x16, 0xfe, 0xa8, 0xe7, 0xc0, 0x5c, 0x72, 0x1d, + 0x3b, 0xfe, 0x37, 0x30, 0xbb, 0x47, 0xec, 0x3a, 0xfa, 0x6b, 0x1b, 0x11, 0x5a, 0x83, 0xd4, 0x74, + 0xfa, 0x12, 0x27, 0x65, 0x24, 0x6e, 0x0e, 0x8c, 0x59, 0xc8, 0xc7, 0x9e, 0x88, 0x01, 0x5f, 0x6c, + 0x5d, 0xcb, 0xcc, 0xc7, 0xd9, 0x18, 0x4e, 0xf2, 0x1a, 0x75, 0x1e, 0x9c, 0xef, 0x11, 0xc5, 0xa0, + 0xbe, 0x96, 0x18, 0x2a, 0x91, 0x24, 0x8e, 0x2a, 0xbb, 0xc8, 0x2e, 0x83, 0x53, 0x14, 0x1f, 0x20, + 0xdf, 0x30, 0xb1, 0x4f, 0x03, 0x68, 0x46, 0x49, 0x99, 0x61, 0xd2, 0x6d, 0x21, 0x94, 0x17, 0x40, + 0x58, 0x54, 0x46, 0x58, 0x39, 0x28, 0x10, 0x65, 0x36, 0x85, 0xa8, 0xb3, 0xcf, 0x04, 0x7d, 0x1e, + 0x17, 0x33, 0x3c, 0x4e, 0x55, 0xe2, 0x58, 0x6f, 0x25, 0x1e, 0xe5, 0x79, 0xd2, 0x15, 0xe1, 0x79, + 0x52, 0x14, 0x7b, 0xfe, 0xdd, 0x28, 0xf3, 0x7c, 0x07, 0xb5, 0x30, 0x71, 0xe9, 0x76, 0x13, 0xba, + 0x1e, 0x6b, 0x92, 0x0e, 0xf2, 0xa9, 0x91, 0xf4, 0x1f, 0x30, 0xd1, 0x7d, 0x16, 0x84, 0x65, 0x30, + 0xdd, 0x68, 0x62, 0xf3, 0xc0, 0x70, 0x90, 0x6b, 0x3b, 0x3c, 0x04, 0xc5, 0x7a, 0x89, 0xc9, 0x7e, + 0xcd, 0x44, 0x19, 0x71, 0x2a, 0x64, 0xc5, 0xe9, 0x67, 0x71, 0x09, 0xb3, 0x10, 0xd4, 0x16, 0xc2, + 0x52, 0xfb, 0xea, 0xcd, 0xe2, 0x59, 0x5e, 0x8c, 0xc4, 0x3a, 0xd0, 0x5c, 0xac, 0x7b, 0x90, 0x3a, + 0xda, 0x3d, 0x9f, 0xc6, 0x05, 0xbc, 0x0a, 0x66, 0x11, 0x75, 0x50, 0x80, 0xda, 0x9e, 0x21, 0xba, + 0x86, 0x47, 0xe8, 0x54, 0x24, 0xde, 0xe7, 0xdd, 0xb3, 0x0a, 0x66, 0xc5, 0x14, 0x0d, 0x90, 0x89, + 0xdc, 0x0e, 0x0a, 0xca, 0xe3, 0x5c, 0x91, 0x8b, 0xeb, 0x42, 0xda, 0x97, 0x91, 0x89, 0x8c, 0x8c, + 0xc8, 0xa0, 0x68, 0x41, 0x0a, 0xcb, 0x93, 0x6c, 0x8f, 0xfd, 0x3e, 0x32, 0x0f, 0xc9, 0xc0, 0x8a, + 0x3c, 0x24, 0x45, 0x71, 0x1e, 0xbe, 0xe7, 0x73, 0xee, 0x8f, 0x2e, 0x75, 0xac, 0x00, 0x3e, 0x3e, + 0xb9, 0x44, 0x2c, 0x82, 0x52, 0x23, 0xcc, 0xb8, 0x38, 0xa3, 0xc0, 0xcf, 0x60, 0xa2, 0xfb, 0x39, + 0x15, 0x5d, 0xcc, 0xca, 0x54, 0x6f, 0x80, 0xc6, 0xfa, 0x03, 0x74, 0xe4, 0x78, 0x4c, 0x79, 0x27, + 0xc6, 0x63, 0x4a, 0x16, 0x87, 0xe3, 0xd3, 0x51, 0x70, 0x76, 0x8f, 0xd8, 0xbb, 0xf5, 0xed, 0xcd, + 0x8d, 0x1d, 0xd4, 0x6a, 0xe2, 0x43, 0x64, 0x9d, 0x5c, 0x4c, 0x96, 0xc1, 0xb4, 0xa8, 0x0a, 0x3e, + 0x53, 0x78, 0x69, 0x96, 0xb8, 0x6c, 0x27, 0x14, 0x0d, 0x1b, 0x15, 0x19, 0x14, 0x7d, 0xe8, 0x45, + 0xfd, 0xc9, 0x7e, 0xb3, 0x49, 0x7e, 0xe8, 0x35, 0x70, 0x53, 0x94, 0x9a, 0x58, 0xc9, 0x0a, 0x98, + 0xb4, 0x90, 0xe9, 0x7a, 0xb0, 0x49, 0x58, 0x79, 0x15, 0xeb, 0xf1, 0xba, 0x2f, 0xba, 0x93, 0x19, + 0xd1, 0xad, 0x66, 0x46, 0xf7, 0x42, 0x1c, 0xdd, 0xfe, 0x60, 0xa9, 0x8b, 0x60, 0x21, 0x73, 0x23, + 0x8e, 0xf3, 0xdf, 0x81, 0x1c, 0x4e, 0x06, 0xe8, 0x9b, 0xa8, 0xd9, 0x7d, 0x8b, 0x42, 0xe7, 0x03, + 0xe8, 0x13, 0x68, 0x86, 0x24, 0xc8, 0x70, 0x2d, 0x11, 0xe6, 0x99, 0x84, 0xf4, 0x9e, 0x95, 0x78, + 0xb2, 0x46, 0x93, 0x4f, 0xd6, 0xd6, 0x5a, 0xcf, 0xf3, 0x50, 0xee, 0x4e, 0xa5, 0xf4, 0x45, 0xea, + 0x45, 0xa0, 0xf4, 0x4b, 0x63, 0x70, 0x2f, 0x25, 0x06, 0x7f, 0xbf, 0xdd, 0xf0, 0x5c, 0x5a, 0x83, + 0xd6, 0x7e, 0x34, 0xfd, 0x76, 0x3b, 0xae, 0x85, 0xc2, 0x5c, 0x6b, 0x60, 0x82, 0xb4, 0x1b, 0x21, + 0xf5, 0x62, 0x08, 0x4b, 0x9b, 0x73, 0x1a, 0x27, 0x5a, 0x5a, 0x44, 0xb4, 0xb4, 0xbb, 0xfe, 0x61, + 0x3d, 0x52, 0x4a, 0xcf, 0xd4, 0xd1, 0x9e, 0x99, 0x9a, 0xf0, 0xa7, 0x90, 0xf2, 0xe7, 0x66, 0x8f, + 0x3f, 0x2b, 0xdd, 0xe7, 0x2e, 0x17, 0x9a, 0xba, 0x0a, 0x2e, 0x0f, 0x54, 0x88, 0xbd, 0xfc, 0x81, + 0x97, 0x3a, 0xa7, 0x09, 0x7f, 0x68, 0x59, 0x90, 0x1e, 0xa7, 0xd4, 0x3b, 0xcc, 0x4c, 0x68, 0x88, + 0x52, 0xe7, 0xb2, 0xec, 0x6e, 0x28, 0xf4, 0x77, 0xc3, 0x2f, 0xc0, 0x84, 0x87, 0xbc, 0x06, 0x0a, + 0x48, 0xb9, 0xb8, 0x54, 0x58, 0x2b, 0x6d, 0xae, 0x68, 0xfd, 0xb4, 0x5a, 0xab, 0xb1, 0xd7, 0xff, + 0x21, 0x6c, 0xba, 0x56, 0x58, 0x7a, 0xf5, 0xc8, 0x46, 0xae, 0x81, 0x99, 0x00, 0x3d, 0x86, 0x81, + 0x65, 0x88, 0x49, 0x3e, 0x36, 0xcc, 0x24, 0x9f, 0xe6, 0x36, 0x77, 0xf9, 0x3c, 0x5f, 0x06, 0x62, + 0x6d, 0xb0, 0xf6, 0x12, 0x8d, 0x53, 0xe2, 0xb2, 0x07, 0xa1, 0x68, 0x98, 0x01, 0x7d, 0x64, 0x87, + 0xf4, 0xc7, 0x58, 0x74, 0x48, 0xff, 0x46, 0x9c, 0x9e, 0xe7, 0x9c, 0x1a, 0xf0, 0xbd, 0xdf, 0x33, + 0x4e, 0x2f, 0xdf, 0x02, 0x53, 0xb0, 0x4d, 0x1d, 0x1c, 0xb8, 0xf4, 0x90, 0xb3, 0x95, 0x5a, 0xf9, + 0xf3, 0x8f, 0x6e, 0xcc, 0x09, 0x06, 0x25, 0xb8, 0xe4, 0x3e, 0x0d, 0x5c, 0xdf, 0xae, 0x77, 0x55, + 0xe5, 0x9f, 0x83, 0x71, 0xfe, 0x55, 0xc0, 0x32, 0x55, 0xda, 0x54, 0xb2, 0x02, 0xcd, 0xef, 0x88, + 0x18, 0x1b, 0xd7, 0xe7, 0x2d, 0xd5, 0x3d, 0x29, 0xfd, 0xc6, 0x24, 0xb1, 0x89, 0x37, 0x26, 0x29, + 0x8a, 0x5d, 0xf9, 0x3f, 0xef, 0xa7, 0x5a, 0x13, 0x9a, 0x07, 0x4d, 0x97, 0xd0, 0x5d, 0xf1, 0x56, + 0xa6, 0x3f, 0x12, 0x38, 0x65, 0x89, 0x48, 0x28, 0xe7, 0x2b, 0x3a, 0xf8, 0x49, 0x23, 0xb2, 0x8a, + 0xc8, 0x33, 0x0a, 0xbd, 0x28, 0xac, 0x4d, 0xd5, 0xe5, 0x78, 0x2b, 0x3e, 0x28, 0x6a, 0x19, 0x66, + 0x9d, 0x6e, 0x99, 0xfc, 0xdb, 0x45, 0xcb, 0xe4, 0x2b, 0xc4, 0x8e, 0xfc, 0x57, 0x62, 0x73, 0xa3, + 0x8e, 0x3a, 0xf8, 0x00, 0x45, 0x6a, 0xb1, 0xdd, 0xc9, 0x79, 0xb1, 0xd1, 0xe3, 0xc5, 0x52, 0x82, + 0x58, 0x66, 0x5e, 0xad, 0x5e, 0x02, 0x6a, 0xfe, 0x6e, 0x84, 0x7f, 0xf3, 0x93, 0xd3, 0xa0, 0xb0, + 0x47, 0x6c, 0xf9, 0x5f, 0x12, 0x98, 0x49, 0x7f, 0xd9, 0x5c, 0xca, 0xaa, 0x88, 0xde, 0x8f, 0x08, + 0xe5, 0xfa, 0x30, 0x5a, 0x71, 0xb4, 0xd6, 0x9f, 0x7e, 0xf1, 0xed, 0x7f, 0x46, 0x2f, 0xa9, 0xaa, + 0x9e, 0xf1, 0x95, 0x2a, 0xe6, 0x87, 0x29, 0xee, 0x7f, 0x22, 0x81, 0xa9, 0xee, 0x3b, 0xb0, 0x94, + 0x73, 0x4f, 0xac, 0xa1, 0xac, 0x1d, 0xa5, 0x11, 0xa3, 0x58, 0x65, 0x28, 0x96, 0xd5, 0xc5, 0x2c, + 0x14, 0xe1, 0x6c, 0x35, 0x28, 0x36, 0x10, 0x75, 0xe4, 0x7f, 0x4a, 0x60, 0x3a, 0xf5, 0x79, 0xb0, + 0x92, 0x73, 0x47, 0x52, 0x49, 0xb9, 0x36, 0x84, 0x52, 0x8c, 0xe5, 0x2a, 0xc3, 0xb2, 0xa2, 0x2e, + 0x67, 0x61, 0x09, 0xb8, 0x85, 0xc1, 0x28, 0x12, 0x43, 0x93, 0xfa, 0x2c, 0xc8, 0x43, 0x93, 0x54, + 0xca, 0x45, 0x93, 0x49, 0xc1, 0x07, 0xa2, 0x11, 0x89, 0x49, 0xa0, 0x49, 0x51, 0xf5, 0x3c, 0x34, + 0x49, 0xa5, 0x5c, 0x34, 0x99, 0x44, 0x74, 0x20, 0x1a, 0x8b, 0x5b, 0x18, 0x26, 0xbb, 0x3c, 0x2c, + 0xdf, 0x34, 0x61, 0xcd, 0x2b, 0xdf, 0x94, 0x56, 0x6e, 0xf9, 0x66, 0x53, 0xc1, 0x81, 0xe5, 0xfb, + 0x58, 0x98, 0x08, 0x44, 0x1f, 0x48, 0xe0, 0x4c, 0x72, 0x96, 0x73, 0x54, 0x57, 0x07, 0xb6, 0x4b, + 0x72, 0xea, 0x2b, 0xd5, 0xa1, 0x55, 0x63, 0x7c, 0x1b, 0x0c, 0xdf, 0xba, 0xba, 0x36, 0xa0, 0xbd, + 0xda, 0xdc, 0x50, 0xa0, 0xfc, 0x50, 0x02, 0x72, 0x06, 0xb3, 0xcd, 0x83, 0xd9, 0xaf, 0x9a, 0x0b, + 0x73, 0x00, 0xd3, 0x1b, 0x08, 0x13, 0x05, 0xe6, 0xe6, 0x86, 0x61, 0x09, 0x43, 0x01, 0xf3, 0xa5, + 0x04, 0xca, 0xb9, 0xff, 0x4e, 0xd2, 0x73, 0x1b, 0x3f, 0xdb, 0x40, 0xb9, 0x7d, 0x4c, 0x83, 0x18, + 0xf8, 0x4f, 0x19, 0x70, 0x4d, 0xbd, 0x9e, 0x3d, 0x38, 0xa8, 0x91, 0x7c, 0xef, 0xa3, 0xb1, 0x2e, + 0xff, 0x4f, 0x02, 0xb3, 0xbd, 0xb4, 0xf6, 0x4a, 0x5e, 0x57, 0xa6, 0xf5, 0x14, 0x6d, 0x38, 0xbd, + 0x18, 0xa1, 0xc6, 0x10, 0xae, 0xa9, 0x57, 0x32, 0x1b, 0x98, 0x19, 0x19, 0xc9, 0x09, 0xf7, 0x99, + 0x04, 0x94, 0x01, 0xa4, 0x36, 0x2f, 0xb9, 0xf9, 0x26, 0xca, 0x9d, 0x63, 0x9b, 0xc4, 0xe0, 0xef, + 0x30, 0xf0, 0x37, 0xd5, 0x6a, 0x66, 0x78, 0x99, 0xbd, 0xd1, 0x80, 0x96, 0x11, 0xd3, 0x64, 0x03, + 0x45, 0x40, 0xff, 0x0c, 0xa6, 0x53, 0xb4, 0x28, 0x6f, 0x18, 0x25, 0x95, 0x72, 0x87, 0x51, 0x16, + 0x63, 0x91, 0x9f, 0x49, 0x40, 0x19, 0x40, 0x57, 0xf2, 0x22, 0x95, 0x6f, 0x92, 0x1b, 0xa9, 0xa3, + 0x59, 0x87, 0xfc, 0x0f, 0x09, 0x9c, 0xcf, 0xa3, 0x1c, 0x5a, 0xee, 0xf3, 0x93, 0xa9, 0xaf, 0xdc, + 0x3a, 0x9e, 0x7e, 0x84, 0x41, 0x19, 0x7b, 0xf2, 0xfe, 0xc5, 0xba, 0x54, 0x43, 0xaf, 0xde, 0x56, + 0xa4, 0xd7, 0x6f, 0x2b, 0xd2, 0x37, 0x6f, 0x2b, 0xd2, 0xbf, 0xdf, 0x55, 0x46, 0x5e, 0xbf, 0xab, + 0x8c, 0x7c, 0xf9, 0xae, 0x32, 0xf2, 0xa7, 0xdf, 0xd8, 0x2e, 0x75, 0xda, 0x0d, 0xcd, 0xc4, 0x9e, + 0x7e, 0x2f, 0xba, 0xe2, 0xb7, 0xb0, 0x41, 0xba, 0xe9, 0xbd, 0x61, 0xe2, 0x00, 0x25, 0x97, 0x0e, + 0x74, 0x7d, 0xdd, 0xc3, 0x56, 0xbb, 0x89, 0x88, 0xc8, 0x3d, 0xfb, 0xe7, 0x76, 0x63, 0x9c, 0x7d, + 0x45, 0xdd, 0xfc, 0x31, 0x00, 0x00, 0xff, 0xff, 0x97, 0x47, 0xe3, 0xea, 0x86, 0x17, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1541,6 +1748,11 @@ type MsgClient interface { CancelSendToEth(ctx context.Context, in *MsgCancelSendToEth, opts ...grpc.CallOption) (*MsgCancelSendToEthResponse, error) SubmitBadSignatureEvidence(ctx context.Context, in *MsgSubmitBadSignatureEvidence, opts ...grpc.CallOption) (*MsgSubmitBadSignatureEvidenceResponse, error) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + // BlacklistEthereumAddresses adds Ethereum addresses to the peggy blacklist. + BlacklistEthereumAddresses(ctx context.Context, in *MsgBlacklistEthereumAddresses, opts ...grpc.CallOption) (*MsgBlacklistEthereumAddressesResponse, error) + // RevokeEthereumBlacklist removes Ethereum addresses from the peggy + // blacklist. + RevokeEthereumBlacklist(ctx context.Context, in *MsgRevokeEthereumBlacklist, opts ...grpc.CallOption) (*MsgRevokeEthereumBlacklistResponse, error) } type msgClient struct { @@ -1659,6 +1871,24 @@ func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts return out, nil } +func (c *msgClient) BlacklistEthereumAddresses(ctx context.Context, in *MsgBlacklistEthereumAddresses, opts ...grpc.CallOption) (*MsgBlacklistEthereumAddressesResponse, error) { + out := new(MsgBlacklistEthereumAddressesResponse) + err := c.cc.Invoke(ctx, "/injective.peggy.v1.Msg/BlacklistEthereumAddresses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) RevokeEthereumBlacklist(ctx context.Context, in *MsgRevokeEthereumBlacklist, opts ...grpc.CallOption) (*MsgRevokeEthereumBlacklistResponse, error) { + out := new(MsgRevokeEthereumBlacklistResponse) + err := c.cc.Invoke(ctx, "/injective.peggy.v1.Msg/RevokeEthereumBlacklist", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { ValsetConfirm(context.Context, *MsgValsetConfirm) (*MsgValsetConfirmResponse, error) @@ -1673,6 +1903,11 @@ type MsgServer interface { CancelSendToEth(context.Context, *MsgCancelSendToEth) (*MsgCancelSendToEthResponse, error) SubmitBadSignatureEvidence(context.Context, *MsgSubmitBadSignatureEvidence) (*MsgSubmitBadSignatureEvidenceResponse, error) UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + // BlacklistEthereumAddresses adds Ethereum addresses to the peggy blacklist. + BlacklistEthereumAddresses(context.Context, *MsgBlacklistEthereumAddresses) (*MsgBlacklistEthereumAddressesResponse, error) + // RevokeEthereumBlacklist removes Ethereum addresses from the peggy + // blacklist. + RevokeEthereumBlacklist(context.Context, *MsgRevokeEthereumBlacklist) (*MsgRevokeEthereumBlacklistResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -1715,6 +1950,12 @@ func (*UnimplementedMsgServer) SubmitBadSignatureEvidence(ctx context.Context, r func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") } +func (*UnimplementedMsgServer) BlacklistEthereumAddresses(ctx context.Context, req *MsgBlacklistEthereumAddresses) (*MsgBlacklistEthereumAddressesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BlacklistEthereumAddresses not implemented") +} +func (*UnimplementedMsgServer) RevokeEthereumBlacklist(ctx context.Context, req *MsgRevokeEthereumBlacklist) (*MsgRevokeEthereumBlacklistResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevokeEthereumBlacklist not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1936,6 +2177,42 @@ func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_BlacklistEthereumAddresses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgBlacklistEthereumAddresses) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).BlacklistEthereumAddresses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.peggy.v1.Msg/BlacklistEthereumAddresses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).BlacklistEthereumAddresses(ctx, req.(*MsgBlacklistEthereumAddresses)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_RevokeEthereumBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRevokeEthereumBlacklist) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RevokeEthereumBlacklist(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.peggy.v1.Msg/RevokeEthereumBlacklist", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RevokeEthereumBlacklist(ctx, req.(*MsgRevokeEthereumBlacklist)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "injective.peggy.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -1988,6 +2265,14 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "UpdateParams", Handler: _Msg_UpdateParams_Handler, }, + { + MethodName: "BlacklistEthereumAddresses", + Handler: _Msg_BlacklistEthereumAddresses_Handler, + }, + { + MethodName: "RevokeEthereumBlacklist", + Handler: _Msg_RevokeEthereumBlacklist_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "injective/peggy/v1/msgs.proto", @@ -2915,6 +3200,130 @@ func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *MsgBlacklistEthereumAddresses) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgBlacklistEthereumAddresses) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgBlacklistEthereumAddresses) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BlacklistAddresses) > 0 { + for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.BlacklistAddresses[iNdEx]) + copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Signer) > 0 { + i -= len(m.Signer) + copy(dAtA[i:], m.Signer) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.Signer))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgBlacklistEthereumAddressesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgBlacklistEthereumAddressesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgBlacklistEthereumAddressesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgRevokeEthereumBlacklist) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeEthereumBlacklist) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeEthereumBlacklist) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BlacklistAddresses) > 0 { + for iNdEx := len(m.BlacklistAddresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.BlacklistAddresses[iNdEx]) + copy(dAtA[i:], m.BlacklistAddresses[iNdEx]) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.BlacklistAddresses[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Signer) > 0 { + i -= len(m.Signer) + copy(dAtA[i:], m.Signer) + i = encodeVarintMsgs(dAtA, i, uint64(len(m.Signer))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgRevokeEthereumBlacklistResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeEthereumBlacklistResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeEthereumBlacklistResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + func encodeVarintMsgs(dAtA []byte, offset int, v uint64) int { offset -= sovMsgs(v) base := offset @@ -3332,11 +3741,67 @@ func (m *MsgUpdateParamsResponse) Size() (n int) { return n } -func sovMsgs(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 +func (m *MsgBlacklistEthereumAddresses) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Signer) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + if len(m.BlacklistAddresses) > 0 { + for _, s := range m.BlacklistAddresses { + l = len(s) + n += 1 + l + sovMsgs(uint64(l)) + } + } + return n } -func sozMsgs(x uint64) (n int) { - return sovMsgs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) + +func (m *MsgBlacklistEthereumAddressesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgRevokeEthereumBlacklist) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Signer) + if l > 0 { + n += 1 + l + sovMsgs(uint64(l)) + } + if len(m.BlacklistAddresses) > 0 { + for _, s := range m.BlacklistAddresses { + l = len(s) + n += 1 + l + sovMsgs(uint64(l)) + } + } + return n +} + +func (m *MsgRevokeEthereumBlacklistResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func sovMsgs(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozMsgs(x uint64) (n int) { + return sovMsgs(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } func (m *MsgSetOrchestratorAddresses) Unmarshal(dAtA []byte) error { l := len(dAtA) @@ -6065,6 +6530,334 @@ func (m *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgBlacklistEthereumAddresses) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddresses: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + 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 ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + 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 ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgBlacklistEthereumAddressesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgBlacklistEthereumAddressesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgRevokeEthereumBlacklist) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklist: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Signer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + 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 ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Signer = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlacklistAddresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + 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 ErrInvalidLengthMsgs + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthMsgs + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlacklistAddresses = append(m.BlacklistAddresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MsgRevokeEthereumBlacklistResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowMsgs + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeEthereumBlacklistResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipMsgs(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthMsgs + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipMsgs(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/chain/peggy/types/params.go b/chain/peggy/types/params.go index 43e1374c..b518fc22 100644 --- a/chain/peggy/types/params.go +++ b/chain/peggy/types/params.go @@ -6,12 +6,12 @@ import ( "strings" "cosmossdk.io/errors" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) -// DefaultParamspace defines the default auth module parameter subspace +// DefaultParamspace defines the default peggy module parameter subspace const ( - // todo: implement oracle constants as params DefaultParamspace = ModuleName ) @@ -25,14 +25,15 @@ func DefaultParams() *Params { TargetBatchTimeout: 43200000, AverageBlockTime: 5000, AverageEthereumBlockTime: 15000, - SlashFractionValset: sdk.NewDec(1).Quo(sdk.NewDec(1000)), - SlashFractionBatch: sdk.NewDec(1).Quo(sdk.NewDec(1000)), - SlashFractionClaim: sdk.NewDec(1).Quo(sdk.NewDec(1000)), - SlashFractionConflictingClaim: sdk.NewDec(1).Quo(sdk.NewDec(1000)), - SlashFractionBadEthSignature: sdk.NewDec(1).Quo(sdk.NewDec(1000)), + SlashFractionValset: math.LegacyNewDec(1).Quo(math.LegacyNewDec(1000)), + SlashFractionBatch: math.LegacyNewDec(1).Quo(math.LegacyNewDec(1000)), + SlashFractionClaim: math.LegacyNewDec(1).Quo(math.LegacyNewDec(1000)), + SlashFractionConflictingClaim: math.LegacyNewDec(1).Quo(math.LegacyNewDec(1000)), + SlashFractionBadEthSignature: math.LegacyNewDec(1).Quo(math.LegacyNewDec(1000)), CosmosCoinDenom: "inj", UnbondSlashingValsetsWindow: 10000, ClaimSlashingEnabled: false, + Admins: nil, } } @@ -98,6 +99,9 @@ func (p Params) ValidateBasic() error { if err := validateClaimSlashingEnabled(p.ClaimSlashingEnabled); err != nil { return errors.Wrap(err, "claim slashing enabled") } + if err := validateAdmins(p.Admins); err != nil { + return errors.Wrap(err, "admins") + } return nil } @@ -199,7 +203,7 @@ func validateUnbondSlashingValsetsWindow(i interface{}) error { } func validateSlashFractionValset(i interface{}) error { - if _, ok := i.(sdk.Dec); !ok { + if _, ok := i.(math.LegacyDec); !ok { return fmt.Errorf("invalid parameter type: %T", i) } return nil @@ -220,21 +224,21 @@ func validateSignedClaimsWindow(i interface{}) error { } func validateSlashFractionBatch(i interface{}) error { - if _, ok := i.(sdk.Dec); !ok { + if _, ok := i.(math.LegacyDec); !ok { return fmt.Errorf("invalid parameter type: %T", i) } return nil } func validateSlashFractionClaim(i interface{}) error { - if _, ok := i.(sdk.Dec); !ok { + if _, ok := i.(math.LegacyDec); !ok { return fmt.Errorf("invalid parameter type: %T", i) } return nil } func validateSlashFractionConflictingClaim(i interface{}) error { - if _, ok := i.(sdk.Dec); !ok { + if _, ok := i.(math.LegacyDec); !ok { return fmt.Errorf("invalid parameter type: %T", i) } return nil @@ -284,7 +288,7 @@ func validateClaimSlashingEnabled(i interface{}) error { } func validateSlashFractionBadEthSignature(i interface{}) error { - if _, ok := i.(sdk.Dec); !ok { + if _, ok := i.(math.LegacyDec); !ok { return fmt.Errorf("invalid parameter type: %T", i) } return nil @@ -293,3 +297,26 @@ func validateSlashFractionBadEthSignature(i interface{}) error { func validateValsetReward(i interface{}) error { return nil } + +func validateAdmins(i interface{}) error { + v, ok := i.([]string) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + admins := make(map[string]struct{}) + + for _, admin := range v { + adminAddr, err := sdk.AccAddressFromBech32(admin) + if err != nil { + return fmt.Errorf("invalid admin address: %s", admin) + } + + if _, found := admins[adminAddr.String()]; found { + return fmt.Errorf("duplicate admin: %s", admin) + } + admins[adminAddr.String()] = struct{}{} + } + + return nil +} diff --git a/chain/peggy/types/params.pb.go b/chain/peggy/types/params.pb.go index f7932952..0d2bacca 100644 --- a/chain/peggy/types/params.pb.go +++ b/chain/peggy/types/params.pb.go @@ -4,9 +4,10 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - 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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -26,27 +27,28 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type Params struct { - PeggyId string `protobuf:"bytes,1,opt,name=peggy_id,json=peggyId,proto3" json:"peggy_id,omitempty"` - ContractSourceHash string `protobuf:"bytes,2,opt,name=contract_source_hash,json=contractSourceHash,proto3" json:"contract_source_hash,omitempty"` - BridgeEthereumAddress string `protobuf:"bytes,3,opt,name=bridge_ethereum_address,json=bridgeEthereumAddress,proto3" json:"bridge_ethereum_address,omitempty"` - BridgeChainId uint64 `protobuf:"varint,4,opt,name=bridge_chain_id,json=bridgeChainId,proto3" json:"bridge_chain_id,omitempty"` - SignedValsetsWindow uint64 `protobuf:"varint,5,opt,name=signed_valsets_window,json=signedValsetsWindow,proto3" json:"signed_valsets_window,omitempty"` - SignedBatchesWindow uint64 `protobuf:"varint,6,opt,name=signed_batches_window,json=signedBatchesWindow,proto3" json:"signed_batches_window,omitempty"` - SignedClaimsWindow uint64 `protobuf:"varint,7,opt,name=signed_claims_window,json=signedClaimsWindow,proto3" json:"signed_claims_window,omitempty"` - TargetBatchTimeout uint64 `protobuf:"varint,8,opt,name=target_batch_timeout,json=targetBatchTimeout,proto3" json:"target_batch_timeout,omitempty"` - AverageBlockTime uint64 `protobuf:"varint,9,opt,name=average_block_time,json=averageBlockTime,proto3" json:"average_block_time,omitempty"` - AverageEthereumBlockTime uint64 `protobuf:"varint,10,opt,name=average_ethereum_block_time,json=averageEthereumBlockTime,proto3" json:"average_ethereum_block_time,omitempty"` - SlashFractionValset github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,11,opt,name=slash_fraction_valset,json=slashFractionValset,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"slash_fraction_valset"` - SlashFractionBatch github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,12,opt,name=slash_fraction_batch,json=slashFractionBatch,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"slash_fraction_batch"` - SlashFractionClaim github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,13,opt,name=slash_fraction_claim,json=slashFractionClaim,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"slash_fraction_claim"` - SlashFractionConflictingClaim github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,14,opt,name=slash_fraction_conflicting_claim,json=slashFractionConflictingClaim,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"slash_fraction_conflicting_claim"` - UnbondSlashingValsetsWindow uint64 `protobuf:"varint,15,opt,name=unbond_slashing_valsets_window,json=unbondSlashingValsetsWindow,proto3" json:"unbond_slashing_valsets_window,omitempty"` - SlashFractionBadEthSignature github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,16,opt,name=slash_fraction_bad_eth_signature,json=slashFractionBadEthSignature,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"slash_fraction_bad_eth_signature"` - CosmosCoinDenom string `protobuf:"bytes,17,opt,name=cosmos_coin_denom,json=cosmosCoinDenom,proto3" json:"cosmos_coin_denom,omitempty"` - CosmosCoinErc20Contract string `protobuf:"bytes,18,opt,name=cosmos_coin_erc20_contract,json=cosmosCoinErc20Contract,proto3" json:"cosmos_coin_erc20_contract,omitempty"` - ClaimSlashingEnabled bool `protobuf:"varint,19,opt,name=claim_slashing_enabled,json=claimSlashingEnabled,proto3" json:"claim_slashing_enabled,omitempty"` - BridgeContractStartHeight uint64 `protobuf:"varint,20,opt,name=bridge_contract_start_height,json=bridgeContractStartHeight,proto3" json:"bridge_contract_start_height,omitempty"` - ValsetReward types.Coin `protobuf:"bytes,21,opt,name=valset_reward,json=valsetReward,proto3" json:"valset_reward"` + PeggyId string `protobuf:"bytes,1,opt,name=peggy_id,json=peggyId,proto3" json:"peggy_id,omitempty"` + ContractSourceHash string `protobuf:"bytes,2,opt,name=contract_source_hash,json=contractSourceHash,proto3" json:"contract_source_hash,omitempty"` + BridgeEthereumAddress string `protobuf:"bytes,3,opt,name=bridge_ethereum_address,json=bridgeEthereumAddress,proto3" json:"bridge_ethereum_address,omitempty"` + BridgeChainId uint64 `protobuf:"varint,4,opt,name=bridge_chain_id,json=bridgeChainId,proto3" json:"bridge_chain_id,omitempty"` + SignedValsetsWindow uint64 `protobuf:"varint,5,opt,name=signed_valsets_window,json=signedValsetsWindow,proto3" json:"signed_valsets_window,omitempty"` + SignedBatchesWindow uint64 `protobuf:"varint,6,opt,name=signed_batches_window,json=signedBatchesWindow,proto3" json:"signed_batches_window,omitempty"` + SignedClaimsWindow uint64 `protobuf:"varint,7,opt,name=signed_claims_window,json=signedClaimsWindow,proto3" json:"signed_claims_window,omitempty"` + TargetBatchTimeout uint64 `protobuf:"varint,8,opt,name=target_batch_timeout,json=targetBatchTimeout,proto3" json:"target_batch_timeout,omitempty"` + AverageBlockTime uint64 `protobuf:"varint,9,opt,name=average_block_time,json=averageBlockTime,proto3" json:"average_block_time,omitempty"` + AverageEthereumBlockTime uint64 `protobuf:"varint,10,opt,name=average_ethereum_block_time,json=averageEthereumBlockTime,proto3" json:"average_ethereum_block_time,omitempty"` + SlashFractionValset cosmossdk_io_math.LegacyDec `protobuf:"bytes,11,opt,name=slash_fraction_valset,json=slashFractionValset,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction_valset"` + SlashFractionBatch cosmossdk_io_math.LegacyDec `protobuf:"bytes,12,opt,name=slash_fraction_batch,json=slashFractionBatch,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction_batch"` + SlashFractionClaim cosmossdk_io_math.LegacyDec `protobuf:"bytes,13,opt,name=slash_fraction_claim,json=slashFractionClaim,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction_claim"` + SlashFractionConflictingClaim cosmossdk_io_math.LegacyDec `protobuf:"bytes,14,opt,name=slash_fraction_conflicting_claim,json=slashFractionConflictingClaim,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction_conflicting_claim"` + UnbondSlashingValsetsWindow uint64 `protobuf:"varint,15,opt,name=unbond_slashing_valsets_window,json=unbondSlashingValsetsWindow,proto3" json:"unbond_slashing_valsets_window,omitempty"` + SlashFractionBadEthSignature cosmossdk_io_math.LegacyDec `protobuf:"bytes,16,opt,name=slash_fraction_bad_eth_signature,json=slashFractionBadEthSignature,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"slash_fraction_bad_eth_signature"` + CosmosCoinDenom string `protobuf:"bytes,17,opt,name=cosmos_coin_denom,json=cosmosCoinDenom,proto3" json:"cosmos_coin_denom,omitempty"` + CosmosCoinErc20Contract string `protobuf:"bytes,18,opt,name=cosmos_coin_erc20_contract,json=cosmosCoinErc20Contract,proto3" json:"cosmos_coin_erc20_contract,omitempty"` + ClaimSlashingEnabled bool `protobuf:"varint,19,opt,name=claim_slashing_enabled,json=claimSlashingEnabled,proto3" json:"claim_slashing_enabled,omitempty"` + BridgeContractStartHeight uint64 `protobuf:"varint,20,opt,name=bridge_contract_start_height,json=bridgeContractStartHeight,proto3" json:"bridge_contract_start_height,omitempty"` + ValsetReward types.Coin `protobuf:"bytes,21,opt,name=valset_reward,json=valsetReward,proto3" json:"valset_reward"` + Admins []string `protobuf:"bytes,22,rep,name=admins,proto3" json:"admins,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -194,6 +196,13 @@ func (m *Params) GetValsetReward() types.Coin { return types.Coin{} } +func (m *Params) GetAdmins() []string { + if m != nil { + return m.Admins + } + return nil +} + func init() { proto.RegisterType((*Params)(nil), "injective.peggy.v1.Params") } @@ -201,55 +210,58 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/params.proto", fileDescriptor_f21ffdf8d29783da) } var fileDescriptor_f21ffdf8d29783da = []byte{ - // 759 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x4f, 0x4f, 0x3b, 0x45, - 0x18, 0xc7, 0xbb, 0x5a, 0xf9, 0xc1, 0x00, 0x02, 0x43, 0x2b, 0xc3, 0x1f, 0x97, 0xc6, 0x03, 0x69, - 0x8c, 0xec, 0x52, 0x34, 0x1e, 0x34, 0xc6, 0xd8, 0x52, 0x03, 0xd1, 0x83, 0x29, 0x46, 0x13, 0x2f, - 0xe3, 0xec, 0xce, 0xb0, 0x3b, 0xd2, 0xdd, 0x69, 0x76, 0xa6, 0x6d, 0xb8, 0xf9, 0x12, 0x7c, 0x59, - 0x1c, 0x39, 0x1a, 0x63, 0x88, 0x81, 0x37, 0xe1, 0xd1, 0xcc, 0x33, 0xbb, 0x6d, 0xa9, 0x9e, 0x88, - 0xa7, 0x76, 0xf7, 0xf3, 0xfd, 0x3e, 0xdf, 0xc9, 0xf3, 0x4c, 0x9f, 0xa2, 0x63, 0x99, 0xff, 0x22, - 0x62, 0x23, 0x27, 0x22, 0x1c, 0x89, 0x24, 0xb9, 0x0b, 0x27, 0x9d, 0x70, 0xc4, 0x0a, 0x96, 0xe9, - 0x60, 0x54, 0x28, 0xa3, 0x30, 0x9e, 0x09, 0x02, 0x10, 0x04, 0x93, 0xce, 0x41, 0x23, 0x51, 0x89, - 0x02, 0x1c, 0xda, 0x6f, 0x4e, 0x79, 0xe0, 0xc7, 0x4a, 0x67, 0x4a, 0x87, 0x11, 0xd3, 0x22, 0x9c, - 0x74, 0x22, 0x61, 0x58, 0x27, 0x8c, 0x95, 0xcc, 0x1d, 0xff, 0xe0, 0x6f, 0x84, 0x56, 0xbe, 0x83, - 0xd2, 0x78, 0x1f, 0xad, 0x42, 0x31, 0x2a, 0x39, 0xf1, 0x5a, 0x5e, 0x7b, 0x6d, 0xf0, 0x06, 0x9e, - 0xaf, 0x38, 0x3e, 0x43, 0x8d, 0x58, 0xe5, 0xa6, 0x60, 0xb1, 0xa1, 0x5a, 0x8d, 0x8b, 0x58, 0xd0, - 0x94, 0xe9, 0x94, 0xbc, 0x05, 0x32, 0x5c, 0xb1, 0x6b, 0x40, 0x97, 0x4c, 0xa7, 0xf8, 0x53, 0xb4, - 0x17, 0x15, 0x92, 0x27, 0x82, 0x0a, 0x93, 0x8a, 0x42, 0x8c, 0x33, 0xca, 0x38, 0x2f, 0x84, 0xd6, - 0xe4, 0x6d, 0x30, 0x35, 0x1d, 0xee, 0x97, 0xf4, 0x2b, 0x07, 0xf1, 0x09, 0xda, 0x2a, 0x7d, 0x71, - 0xca, 0x64, 0x6e, 0xcf, 0x52, 0x6f, 0x79, 0xed, 0xfa, 0x60, 0xd3, 0xbd, 0xee, 0xd9, 0xb7, 0x57, - 0x1c, 0x9f, 0xa3, 0xa6, 0x96, 0x49, 0x2e, 0x38, 0x9d, 0xb0, 0xa1, 0x16, 0x46, 0xd3, 0xa9, 0xcc, - 0xb9, 0x9a, 0x92, 0x77, 0x40, 0xbd, 0xeb, 0xe0, 0x0f, 0x8e, 0xfd, 0x08, 0x68, 0xc1, 0x13, 0x31, - 0x13, 0xa7, 0x62, 0xe6, 0x59, 0x59, 0xf4, 0x74, 0x1d, 0x2b, 0x3d, 0x67, 0xa8, 0x51, 0x7a, 0xe2, - 0x21, 0x93, 0xd9, 0xcc, 0xf2, 0x06, 0x2c, 0xd8, 0xb1, 0x1e, 0xa0, 0xb9, 0xc3, 0xb0, 0x22, 0x11, - 0xc6, 0xa5, 0x50, 0x23, 0x33, 0xa1, 0xc6, 0x86, 0xac, 0x3a, 0x87, 0x63, 0x10, 0xf2, 0xbd, 0x23, - 0xf8, 0x23, 0x84, 0xd9, 0x44, 0x14, 0x2c, 0x11, 0x34, 0x1a, 0xaa, 0xf8, 0x16, 0x2c, 0x64, 0x0d, - 0xf4, 0xdb, 0x25, 0xe9, 0x5a, 0x60, 0x0d, 0xf8, 0x0b, 0x74, 0x58, 0xa9, 0x67, 0xad, 0x5d, 0xb0, - 0x21, 0xb0, 0x91, 0x52, 0x52, 0xb5, 0x77, 0x6e, 0x8f, 0x50, 0x53, 0x0f, 0x99, 0x4e, 0xe9, 0x8d, - 0x9d, 0x98, 0x54, 0x79, 0xd9, 0x40, 0xb2, 0xde, 0xf2, 0xda, 0x1b, 0xdd, 0xe0, 0xfe, 0xf1, 0xb8, - 0xf6, 0xc7, 0xe3, 0xf1, 0x49, 0x22, 0x4d, 0x3a, 0x8e, 0x82, 0x58, 0x65, 0x61, 0x79, 0x85, 0xdc, - 0xc7, 0xa9, 0xe6, 0xb7, 0xa1, 0xb9, 0x1b, 0x09, 0x1d, 0x5c, 0x88, 0x78, 0xb0, 0x0b, 0xc5, 0xbe, - 0x2e, 0x6b, 0xb9, 0x7e, 0xe3, 0x9f, 0x51, 0x63, 0x29, 0x03, 0x5a, 0x41, 0x36, 0x5e, 0x15, 0x81, - 0x5f, 0x44, 0x40, 0xe7, 0xfe, 0x23, 0x01, 0xc6, 0x43, 0x36, 0xff, 0x87, 0x04, 0x98, 0x26, 0x9e, - 0xa2, 0xd6, 0x72, 0x82, 0xca, 0x6f, 0x86, 0x32, 0x36, 0x32, 0x4f, 0xca, 0xb4, 0x77, 0x5f, 0x95, - 0xf6, 0xfe, 0xcb, 0xb4, 0x79, 0x55, 0x17, 0xdc, 0x43, 0xfe, 0x38, 0x8f, 0x54, 0xce, 0x29, 0xe8, - 0x6c, 0xda, 0xd2, 0x15, 0xdf, 0x82, 0x11, 0x1f, 0x3a, 0xd5, 0x75, 0x29, 0x7a, 0x79, 0xd5, 0x27, - 0xff, 0x3a, 0x7d, 0xc4, 0xb8, 0xbd, 0x2f, 0xd4, 0xde, 0x58, 0x66, 0xc6, 0x85, 0x20, 0xdb, 0xaf, - 0x3a, 0xfd, 0xd1, 0xd2, 0x34, 0x78, 0xdf, 0xa4, 0xd7, 0x55, 0x4d, 0xfc, 0x21, 0xda, 0x71, 0x2e, - 0x6a, 0x77, 0x0c, 0xe5, 0x22, 0x57, 0x19, 0xd9, 0x81, 0x1f, 0xfc, 0x96, 0x03, 0x3d, 0x25, 0xf3, - 0x0b, 0xfb, 0x1a, 0x7f, 0x8e, 0x0e, 0x16, 0xb5, 0xa2, 0x88, 0xcf, 0xcf, 0x68, 0xb5, 0x4a, 0x08, - 0x06, 0xd3, 0xde, 0xdc, 0xd4, 0xb7, 0xbc, 0x57, 0x62, 0xfc, 0x09, 0x7a, 0x0f, 0x66, 0x30, 0x6f, - 0x92, 0xc8, 0x59, 0x34, 0x14, 0x9c, 0xec, 0xb6, 0xbc, 0xf6, 0xea, 0xa0, 0x01, 0xb4, 0x6a, 0x4e, - 0xdf, 0x31, 0xfc, 0x25, 0x3a, 0xaa, 0xb6, 0xcb, 0x6c, 0x9d, 0x19, 0x56, 0x18, 0x9a, 0x0a, 0x99, - 0xa4, 0x86, 0x34, 0xa0, 0xb3, 0xfb, 0xe5, 0xaa, 0xa9, 0xb6, 0x9a, 0x55, 0x5c, 0x82, 0x00, 0x5f, - 0xa0, 0x4d, 0x37, 0x0c, 0x5a, 0x88, 0x29, 0x2b, 0x38, 0x69, 0xb6, 0xbc, 0xf6, 0xfa, 0xf9, 0x7e, - 0xe0, 0xce, 0x19, 0xd8, 0x35, 0x1b, 0x94, 0x6b, 0x36, 0xb0, 0xa7, 0xee, 0xd6, 0x6d, 0x7f, 0x07, - 0x1b, 0xce, 0x35, 0x00, 0xd3, 0x67, 0xf5, 0x5f, 0xff, 0x6c, 0xd5, 0xba, 0xe2, 0xfe, 0xc9, 0xf7, - 0x1e, 0x9e, 0x7c, 0xef, 0xaf, 0x27, 0xdf, 0xfb, 0xed, 0xd9, 0xaf, 0x3d, 0x3c, 0xfb, 0xb5, 0xdf, - 0x9f, 0xfd, 0xda, 0x4f, 0xdf, 0x2c, 0xcc, 0xe2, 0xaa, 0xda, 0xf4, 0xdf, 0xb2, 0x48, 0x87, 0xb3, - 0xbd, 0x7f, 0x1a, 0xab, 0x42, 0x2c, 0x3e, 0xda, 0xbd, 0x18, 0x66, 0x8a, 0x8f, 0x87, 0x42, 0x97, - 0xff, 0x1a, 0x30, 0xb4, 0x68, 0x05, 0x16, 0xfd, 0xc7, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8a, - 0xea, 0x23, 0xd2, 0x55, 0x06, 0x00, 0x00, + // 803 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x95, 0x41, 0x6f, 0x23, 0x35, + 0x14, 0xc7, 0x33, 0x6c, 0xe9, 0xb6, 0xde, 0x96, 0x6e, 0xdd, 0xa4, 0xeb, 0xb6, 0x4b, 0x1a, 0x81, + 0x84, 0xa2, 0x15, 0xcc, 0xb4, 0x05, 0x71, 0x00, 0x21, 0x44, 0xd2, 0xa2, 0xad, 0xd8, 0x03, 0x4a, + 0x81, 0x95, 0xb8, 0x58, 0x9e, 0xb1, 0x77, 0xc6, 0x74, 0xc6, 0xae, 0xc6, 0x4e, 0xaa, 0xde, 0x38, + 0x73, 0xe2, 0xa3, 0xf0, 0x31, 0xf6, 0xb8, 0x47, 0x84, 0xd0, 0x0a, 0xb5, 0x07, 0x24, 0x3e, 0x05, + 0xf2, 0xb3, 0x27, 0x49, 0x03, 0x87, 0x6a, 0x2f, 0x55, 0xed, 0xdf, 0xff, 0xff, 0x9e, 0xf3, 0xec, + 0xfc, 0x83, 0xf6, 0xa5, 0xfa, 0x49, 0x64, 0x56, 0x4e, 0x44, 0x72, 0x21, 0xf2, 0xfc, 0x2a, 0x99, + 0x1c, 0x26, 0x17, 0xac, 0x66, 0x95, 0x89, 0x2f, 0x6a, 0x6d, 0x35, 0xc6, 0x53, 0x41, 0x0c, 0x82, + 0x78, 0x72, 0xb8, 0xdb, 0xce, 0x75, 0xae, 0x01, 0x27, 0xee, 0x3f, 0xaf, 0xdc, 0xed, 0x66, 0xda, + 0x54, 0xda, 0x24, 0x29, 0x33, 0x22, 0x99, 0x1c, 0xa6, 0xc2, 0xb2, 0xc3, 0x24, 0xd3, 0x52, 0x05, + 0xbe, 0xc9, 0x2a, 0xa9, 0x74, 0x02, 0x7f, 0xfd, 0xd6, 0x7b, 0xff, 0x20, 0xb4, 0xfc, 0x2d, 0x74, + 0xc3, 0x3b, 0x68, 0x05, 0xea, 0x53, 0xc9, 0x49, 0xd4, 0x8b, 0xfa, 0xab, 0xa3, 0xfb, 0xb0, 0x3e, + 0xe5, 0xf8, 0x00, 0xb5, 0x33, 0xad, 0x6c, 0xcd, 0x32, 0x4b, 0x8d, 0x1e, 0xd7, 0x99, 0xa0, 0x05, + 0x33, 0x05, 0x79, 0x0b, 0x64, 0xb8, 0x61, 0x67, 0x80, 0x9e, 0x32, 0x53, 0xe0, 0x4f, 0xd1, 0xa3, + 0xb4, 0x96, 0x3c, 0x17, 0x54, 0xd8, 0x42, 0xd4, 0x62, 0x5c, 0x51, 0xc6, 0x79, 0x2d, 0x8c, 0x21, + 0xf7, 0xc0, 0xd4, 0xf1, 0xf8, 0x24, 0xd0, 0xaf, 0x3c, 0xc4, 0x1f, 0xa0, 0x8d, 0xe0, 0xcb, 0x0a, + 0x26, 0x95, 0x3b, 0xcb, 0x52, 0x2f, 0xea, 0x2f, 0x8d, 0xd6, 0xfd, 0xf6, 0xd0, 0xed, 0x9e, 0x72, + 0x7c, 0x84, 0x3a, 0x46, 0xe6, 0x4a, 0x70, 0x3a, 0x61, 0xa5, 0x11, 0xd6, 0xd0, 0x4b, 0xa9, 0xb8, + 0xbe, 0x24, 0x6f, 0x83, 0x7a, 0xcb, 0xc3, 0x1f, 0x3c, 0x7b, 0x0e, 0x68, 0xce, 0x93, 0x32, 0x9b, + 0x15, 0x62, 0xea, 0x59, 0x9e, 0xf7, 0x0c, 0x3c, 0x0b, 0x9e, 0x03, 0xd4, 0x0e, 0x9e, 0xac, 0x64, + 0xb2, 0x9a, 0x5a, 0xee, 0x83, 0x05, 0x7b, 0x36, 0x04, 0x34, 0x73, 0x58, 0x56, 0xe7, 0xc2, 0xfa, + 0x2e, 0xd4, 0xca, 0x4a, 0xe8, 0xb1, 0x25, 0x2b, 0xde, 0xe1, 0x19, 0x34, 0xf9, 0xce, 0x13, 0xfc, + 0x21, 0xc2, 0x6c, 0x22, 0x6a, 0x96, 0x0b, 0x9a, 0x96, 0x3a, 0x3b, 0x07, 0x0b, 0x59, 0x05, 0xfd, + 0xc3, 0x40, 0x06, 0x0e, 0x38, 0x03, 0xfe, 0x02, 0xed, 0x35, 0xea, 0xe9, 0x68, 0xe7, 0x6c, 0x08, + 0x6c, 0x24, 0x48, 0x9a, 0xf1, 0xce, 0xec, 0xcf, 0x51, 0xc7, 0x94, 0xcc, 0x14, 0xf4, 0x85, 0xbb, + 0x31, 0xa9, 0x55, 0x18, 0x20, 0x79, 0xd0, 0x8b, 0xfa, 0x6b, 0x83, 0xf7, 0x5f, 0xbe, 0xde, 0x6f, + 0xfd, 0xf1, 0x7a, 0x7f, 0xcf, 0x3f, 0x25, 0xc3, 0xcf, 0x63, 0xa9, 0x93, 0x8a, 0xd9, 0x22, 0x7e, + 0x26, 0x72, 0x96, 0x5d, 0x1d, 0x8b, 0x6c, 0xb4, 0x05, 0x15, 0xbe, 0x0e, 0x05, 0xfc, 0x90, 0xf1, + 0xf7, 0xa8, 0xbd, 0x50, 0x18, 0x3e, 0x3f, 0x59, 0xbb, 0x7b, 0x5d, 0x7c, 0xab, 0x2e, 0xcc, 0xe8, + 0x7f, 0xca, 0xc2, 0x45, 0x90, 0xf5, 0x37, 0x2d, 0x0b, 0x97, 0x85, 0x4b, 0xd4, 0x5b, 0x2c, 0xab, + 0xd5, 0x8b, 0x52, 0x66, 0x56, 0xaa, 0x3c, 0xb4, 0x78, 0xe7, 0xee, 0x2d, 0xde, 0xbd, 0xdd, 0x62, + 0x56, 0xca, 0x77, 0x1b, 0xa2, 0xee, 0x58, 0xa5, 0x5a, 0x71, 0x0a, 0x3a, 0xd7, 0x62, 0xe1, 0xd9, + 0x6e, 0xc0, 0xb5, 0xed, 0x79, 0xd5, 0x59, 0x10, 0xdd, 0x7e, 0xbe, 0xe7, 0xff, 0x39, 0x72, 0xca, + 0xb8, 0x7b, 0x03, 0xd4, 0xbd, 0x42, 0x66, 0xc7, 0xb5, 0x20, 0x0f, 0xef, 0x7e, 0xe4, 0xc7, 0x0b, + 0xc3, 0xe6, 0x27, 0xb6, 0x38, 0x6b, 0x0a, 0xe1, 0x27, 0x68, 0xd3, 0x9b, 0xa9, 0xcb, 0x0f, 0xca, + 0x85, 0xd2, 0x15, 0xd9, 0x84, 0x6f, 0xee, 0x86, 0x07, 0x43, 0x2d, 0xd5, 0xb1, 0xdb, 0xc6, 0x9f, + 0xa3, 0xdd, 0x79, 0xad, 0xa8, 0xb3, 0xa3, 0x03, 0xda, 0x64, 0x02, 0xc1, 0x60, 0x7a, 0x34, 0x33, + 0x9d, 0x38, 0x3e, 0x0c, 0x18, 0x7f, 0x82, 0xb6, 0x61, 0xda, 0xb3, 0xc9, 0x08, 0xc5, 0xd2, 0x52, + 0x70, 0xb2, 0xd5, 0x8b, 0xfa, 0x2b, 0xa3, 0x36, 0xd0, 0x66, 0x22, 0x27, 0x9e, 0xe1, 0x2f, 0xd1, + 0xe3, 0x26, 0x26, 0xa6, 0xb9, 0x64, 0x59, 0x6d, 0x69, 0x21, 0x64, 0x5e, 0x58, 0xd2, 0x86, 0x71, + 0xee, 0x84, 0xcc, 0x68, 0xe2, 0xc9, 0x29, 0x9e, 0x82, 0x00, 0x1f, 0xa3, 0x75, 0x7f, 0x03, 0xb4, + 0x16, 0x97, 0xac, 0xe6, 0xa4, 0xd3, 0x8b, 0xfa, 0x0f, 0x8e, 0x76, 0x62, 0x7f, 0xce, 0xd8, 0x45, + 0x68, 0x1c, 0x22, 0x34, 0x76, 0xa7, 0x1e, 0x2c, 0xb9, 0xa1, 0x8e, 0xd6, 0xbc, 0x6b, 0x04, 0x26, + 0xbc, 0x8d, 0x96, 0x19, 0xaf, 0xa4, 0x32, 0x64, 0xbb, 0x77, 0xaf, 0xbf, 0x3a, 0x0a, 0xab, 0xcf, + 0x3a, 0x3f, 0xff, 0xd9, 0x6b, 0xfd, 0xf2, 0xf7, 0x6f, 0x4f, 0xd6, 0x7c, 0xa4, 0xfb, 0x84, 0x1d, + 0x88, 0x97, 0xd7, 0xdd, 0xe8, 0xd5, 0x75, 0x37, 0xfa, 0xeb, 0xba, 0x1b, 0xfd, 0x7a, 0xd3, 0x6d, + 0xbd, 0xba, 0xe9, 0xb6, 0x7e, 0xbf, 0xe9, 0xb6, 0x7e, 0xfc, 0x26, 0x97, 0xb6, 0x18, 0xa7, 0x71, + 0xa6, 0xab, 0xe4, 0xb4, 0x89, 0xfb, 0x67, 0x2c, 0x35, 0xc9, 0x34, 0xfc, 0x3f, 0xca, 0x74, 0x2d, + 0xe6, 0x97, 0x2e, 0x09, 0x93, 0x4a, 0xf3, 0x71, 0x29, 0x4c, 0xf8, 0xe9, 0xb0, 0x57, 0x17, 0xc2, + 0xa4, 0xcb, 0x10, 0xed, 0x1f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xfa, 0xa0, 0xe8, 0x5a, + 0x06, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -272,6 +284,17 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.Admins) > 0 { + for iNdEx := len(m.Admins) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Admins[iNdEx]) + copy(dAtA[i:], m.Admins[iNdEx]) + i = encodeVarintParams(dAtA, i, uint64(len(m.Admins[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + } { size, err := m.ValsetReward.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -516,6 +539,12 @@ func (m *Params) Size() (n int) { } l = m.ValsetReward.Size() n += 2 + l + sovParams(uint64(l)) + if len(m.Admins) > 0 { + for _, s := range m.Admins { + l = len(s) + n += 2 + l + sovParams(uint64(l)) + } + } return n } @@ -1103,6 +1132,38 @@ func (m *Params) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Admins", 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.Admins = append(m.Admins, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/chain/peggy/types/params_legacy.go b/chain/peggy/types/params_legacy.go index aa63c6f6..f64a9856 100644 --- a/chain/peggy/types/params_legacy.go +++ b/chain/peggy/types/params_legacy.go @@ -67,6 +67,8 @@ var ( // to a relayer when they relay a valset ParamStoreValsetRewardAmount = []byte("ValsetReward") + ParamStoreAdmins = []byte("Admins") + // Ensure that params implements the proper interface _ paramtypes.ParamSet = &Params{} ) @@ -101,5 +103,6 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { paramtypes.NewParamSetPair(ParamStoreClaimSlashingEnabled, &p.ClaimSlashingEnabled, validateClaimSlashingEnabled), paramtypes.NewParamSetPair(ParamsStoreKeyBridgeContractStartHeight, &p.BridgeContractStartHeight, validateBridgeContractStartHeight), paramtypes.NewParamSetPair(ParamStoreValsetRewardAmount, &p.ValsetReward, validateValsetReward), + paramtypes.NewParamSetPair(ParamStoreAdmins, &p.Admins, validateAdmins), } } diff --git a/chain/peggy/types/pool.pb.go b/chain/peggy/types/pool.pb.go index a7eabb67..8d108d35 100644 --- a/chain/peggy/types/pool.pb.go +++ b/chain/peggy/types/pool.pb.go @@ -4,8 +4,8 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - 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" @@ -70,8 +70,8 @@ func (m *IDSet) GetIds() []uint64 { } type BatchFees struct { - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - TotalFees github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=total_fees,json=totalFees,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_fees"` + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + TotalFees cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=total_fees,json=totalFees,proto3,customtype=cosmossdk.io/math.Int" json:"total_fees"` } func (m *BatchFees) Reset() { *m = BatchFees{} } @@ -122,24 +122,24 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/pool.proto", fileDescriptor_36397d69759ce164) } var fileDescriptor_36397d69759ce164 = []byte{ - // 271 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x90, 0xcf, 0x4a, 0xf3, 0x40, - 0x14, 0xc5, 0x33, 0x5f, 0xbf, 0x0a, 0x99, 0x95, 0x84, 0x2e, 0xa2, 0xe0, 0xb4, 0x74, 0x21, 0xdd, - 0x74, 0x86, 0xe2, 0x1b, 0x04, 0x11, 0x82, 0xba, 0x89, 0x3b, 0x37, 0x92, 0x3f, 0xd7, 0x24, 0x36, - 0xc9, 0x0d, 0x9d, 0xdb, 0x40, 0xdf, 0xc2, 0xc7, 0xea, 0xb2, 0x4b, 0x71, 0x51, 0x24, 0x79, 0x11, - 0xc9, 0xb4, 0x96, 0xae, 0xe6, 0x1c, 0x7e, 0xc3, 0x39, 0x9c, 0xcb, 0x6f, 0xf2, 0xea, 0x03, 0x62, - 0xca, 0x1b, 0x50, 0x35, 0xa4, 0xe9, 0x46, 0x35, 0x0b, 0x55, 0x23, 0x16, 0xb2, 0x5e, 0x21, 0xa1, - 0xe3, 0x9c, 0xb0, 0x34, 0x58, 0x36, 0x8b, 0xeb, 0x51, 0x8a, 0x29, 0x1a, 0xac, 0x7a, 0x75, 0xf8, - 0x39, 0xbd, 0xe2, 0x43, 0xff, 0xfe, 0x05, 0xc8, 0xb9, 0xe4, 0x83, 0x3c, 0xd1, 0x2e, 0x9b, 0x0c, - 0x66, 0xff, 0x83, 0x5e, 0x4e, 0x6b, 0x6e, 0x7b, 0x21, 0xc5, 0xd9, 0x03, 0x80, 0x76, 0x46, 0x7c, - 0x48, 0xb8, 0x84, 0xca, 0x65, 0x13, 0x36, 0xb3, 0x83, 0x83, 0x71, 0x9e, 0x39, 0x27, 0xa4, 0xb0, - 0x78, 0x7b, 0x07, 0xd0, 0xee, 0xbf, 0x1e, 0x79, 0x72, 0xbb, 0x1f, 0x5b, 0xdf, 0xfb, 0xf1, 0x6d, - 0x9a, 0x53, 0xb6, 0x8e, 0x64, 0x8c, 0xa5, 0x8a, 0x51, 0x97, 0xa8, 0x8f, 0xcf, 0x5c, 0x27, 0x4b, - 0x45, 0x9b, 0x1a, 0xb4, 0xf4, 0x2b, 0x0a, 0x6c, 0x93, 0xd0, 0x97, 0x78, 0xb0, 0x6d, 0x05, 0xdb, - 0xb5, 0x82, 0xfd, 0xb4, 0x82, 0x7d, 0x76, 0xc2, 0xda, 0x75, 0xc2, 0xfa, 0xea, 0x84, 0xf5, 0xfa, - 0x78, 0x16, 0xe6, 0xff, 0x6d, 0x7b, 0x0a, 0x23, 0xad, 0x4e, 0x4b, 0xe7, 0x31, 0xae, 0xe0, 0xdc, - 0x66, 0x61, 0x5e, 0xa9, 0x12, 0x93, 0x75, 0x01, 0xfa, 0x78, 0x25, 0xd3, 0x1a, 0x5d, 0x98, 0xe9, - 0x77, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc8, 0x08, 0x7d, 0xe1, 0x45, 0x01, 0x00, 0x00, + // 267 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x90, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0xb3, 0xd6, 0x0a, 0xd9, 0x93, 0x84, 0x0a, 0x51, 0xe8, 0xb6, 0xf4, 0xd4, 0x8b, 0xbb, + 0x14, 0xaf, 0x9e, 0x82, 0x08, 0x41, 0x4f, 0xf1, 0xe6, 0xa5, 0xe4, 0xcf, 0x98, 0xac, 0x4d, 0x32, + 0xa1, 0x3b, 0x0d, 0xf4, 0x2d, 0x7c, 0xac, 0x1e, 0x7b, 0x14, 0x0f, 0x45, 0x92, 0x17, 0x91, 0xa4, + 0x5a, 0xbc, 0x7d, 0x1f, 0xbf, 0x99, 0x81, 0xdf, 0xf0, 0xb1, 0x2e, 0xdf, 0x21, 0x26, 0x5d, 0x83, + 0xaa, 0x20, 0x4d, 0xb7, 0xaa, 0x5e, 0xa8, 0x0a, 0x31, 0x97, 0xd5, 0x1a, 0x09, 0x1d, 0xe7, 0x84, + 0x65, 0x8f, 0x65, 0xbd, 0xb8, 0x19, 0xa5, 0x98, 0x62, 0x8f, 0x55, 0x97, 0x8e, 0x93, 0xb3, 0x6b, + 0x3e, 0xf4, 0x1f, 0x5e, 0x80, 0x9c, 0x4b, 0x3e, 0xd0, 0x89, 0x71, 0xd9, 0x74, 0x30, 0x3f, 0x0f, + 0xba, 0x38, 0x5b, 0x72, 0xdb, 0x0b, 0x29, 0xce, 0x1e, 0x01, 0x8c, 0x33, 0xe2, 0x43, 0xc2, 0x15, + 0x94, 0x2e, 0x9b, 0xb2, 0xb9, 0x1d, 0x1c, 0x8b, 0x73, 0xcf, 0x39, 0x21, 0x85, 0xf9, 0xf2, 0x0d, + 0xc0, 0xb8, 0x67, 0x1d, 0xf2, 0xc6, 0xbb, 0xc3, 0xc4, 0xfa, 0x3a, 0x4c, 0xae, 0x62, 0x34, 0x05, + 0x1a, 0x93, 0xac, 0xa4, 0x46, 0x55, 0x84, 0x94, 0x49, 0xbf, 0xa4, 0xc0, 0xee, 0x17, 0xba, 0x9b, + 0x1e, 0xec, 0x1a, 0xc1, 0xf6, 0x8d, 0x60, 0xdf, 0x8d, 0x60, 0x1f, 0xad, 0xb0, 0xf6, 0xad, 0xb0, + 0x3e, 0x5b, 0x61, 0xbd, 0x3e, 0xa5, 0x9a, 0xb2, 0x4d, 0x24, 0x63, 0x2c, 0x94, 0xff, 0xa7, 0xf2, + 0x1c, 0x46, 0x46, 0x9d, 0xc4, 0x6e, 0x63, 0x5c, 0xc3, 0xff, 0x9a, 0x85, 0xba, 0x54, 0x05, 0x26, + 0x9b, 0x1c, 0xcc, 0xef, 0x53, 0x68, 0x5b, 0x81, 0x89, 0x2e, 0x7a, 0xd3, 0xbb, 0x9f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x38, 0x4c, 0x07, 0x7f, 0x34, 0x01, 0x00, 0x00, } func (m *IDSet) Marshal() (dAtA []byte, err error) { diff --git a/chain/peggy/types/types.go b/chain/peggy/types/types.go index 92c9e203..48959e4a 100644 --- a/chain/peggy/types/types.go +++ b/chain/peggy/types/types.go @@ -250,7 +250,7 @@ func (v Valsets) Swap(i, j int) { // GetFees returns the total fees contained within a given batch func (b OutgoingTxBatch) GetFees() sdkmath.Int { - sum := sdk.ZeroInt() + sum := sdkmath.ZeroInt() for _, t := range b.Transactions { sum.Add(t.Erc20Fee.Amount) } diff --git a/chain/peggy/types/types.pb.go b/chain/peggy/types/types.pb.go index 66673a3c..f164779c 100644 --- a/chain/peggy/types/types.pb.go +++ b/chain/peggy/types/types.pb.go @@ -4,8 +4,8 @@ package types import ( + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" - 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" @@ -81,10 +81,10 @@ func (m *BridgeValidator) GetEthereumAddress() string { // maintains an ETH key to sign messages, these are used to check signatures on // ETH because of the significant gas savings type Valset struct { - Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` - Members []*BridgeValidator `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` - Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` - RewardAmount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=reward_amount,json=rewardAmount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"reward_amount"` + Nonce uint64 `protobuf:"varint,1,opt,name=nonce,proto3" json:"nonce,omitempty"` + Members []*BridgeValidator `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` + Height uint64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` + RewardAmount cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=reward_amount,json=rewardAmount,proto3,customtype=cosmossdk.io/math.Int" json:"reward_amount"` // the reward token in it's Ethereum hex address representation RewardToken string `protobuf:"bytes,5,opt,name=reward_token,json=rewardToken,proto3" json:"reward_token,omitempty"` } @@ -325,38 +325,38 @@ func init() { func init() { proto.RegisterFile("injective/peggy/v1/types.proto", fileDescriptor_b641943ad411b503) } var fileDescriptor_b641943ad411b503 = []byte{ - // 494 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x4f, 0x6f, 0xd3, 0x4e, - 0x10, 0x8d, 0xfb, 0x27, 0x3f, 0x75, 0xdb, 0x1f, 0x85, 0x6d, 0x40, 0x16, 0x07, 0xa7, 0x04, 0x09, - 0x85, 0x43, 0xed, 0x34, 0xdc, 0x90, 0x38, 0x34, 0x25, 0x12, 0x15, 0x15, 0x48, 0xa6, 0xea, 0x81, - 0x8b, 0xb5, 0xb6, 0x47, 0xb6, 0x89, 0xbd, 0x1b, 0xed, 0x6e, 0x5c, 0xf5, 0x03, 0x70, 0xe7, 0x63, - 0xf5, 0xd8, 0x23, 0xe2, 0x50, 0xa1, 0xe4, 0xcc, 0x77, 0x40, 0xfb, 0xc7, 0x91, 0xa1, 0x9c, 0x92, - 0xf7, 0x66, 0xe6, 0xbd, 0xd9, 0x99, 0x31, 0xf2, 0x0a, 0xfa, 0x05, 0x12, 0x59, 0xd4, 0x10, 0xcc, - 0x21, 0xcb, 0xae, 0x83, 0xfa, 0x38, 0x90, 0xd7, 0x73, 0x10, 0xfe, 0x9c, 0x33, 0xc9, 0x30, 0x5e, - 0xc7, 0x7d, 0x1d, 0xf7, 0xeb, 0xe3, 0xa7, 0xbd, 0x8c, 0x65, 0x4c, 0x87, 0x03, 0xf5, 0xcf, 0x64, - 0x0e, 0x42, 0xb4, 0x3f, 0xe1, 0x45, 0x9a, 0xc1, 0x25, 0x29, 0x8b, 0x94, 0x48, 0xc6, 0x71, 0x0f, - 0x6d, 0xcf, 0xd9, 0x15, 0x70, 0xd7, 0x39, 0x74, 0x86, 0x5b, 0xa1, 0x01, 0xf8, 0x25, 0x7a, 0x08, - 0x32, 0x07, 0x0e, 0x8b, 0x2a, 0x22, 0x69, 0xca, 0x41, 0x08, 0x77, 0xe3, 0xd0, 0x19, 0xee, 0x84, - 0xfb, 0x0d, 0x7f, 0x62, 0xe8, 0xc1, 0x2f, 0x07, 0x75, 0x2f, 0x49, 0x29, 0x40, 0x2a, 0x2d, 0xca, - 0x68, 0x02, 0x8d, 0x96, 0x06, 0xf8, 0x0d, 0xfa, 0xaf, 0x82, 0x2a, 0x06, 0xae, 0x24, 0x36, 0x87, - 0xbb, 0xe3, 0xe7, 0xfe, 0xfd, 0x86, 0xfd, 0xbf, 0xfa, 0x0a, 0x9b, 0x1a, 0xfc, 0x04, 0x75, 0x73, - 0x28, 0xb2, 0x5c, 0xba, 0x9b, 0x5a, 0xd5, 0x22, 0xfc, 0x09, 0xfd, 0xcf, 0xe1, 0x8a, 0xf0, 0x34, - 0x22, 0x15, 0x5b, 0x50, 0xe9, 0x6e, 0xa9, 0xfe, 0x26, 0xfe, 0xcd, 0x5d, 0xbf, 0xf3, 0xe3, 0xae, - 0xff, 0x22, 0x2b, 0x64, 0xbe, 0x88, 0xfd, 0x84, 0x55, 0x41, 0xc2, 0x44, 0xc5, 0x84, 0xfd, 0x39, - 0x12, 0xe9, 0xcc, 0x8e, 0xef, 0x8c, 0xca, 0x70, 0xcf, 0x88, 0x9c, 0x68, 0x0d, 0xfc, 0x0c, 0x59, - 0x1c, 0x49, 0x36, 0x03, 0xea, 0x6e, 0xeb, 0x37, 0xef, 0x1a, 0xee, 0x42, 0x51, 0x83, 0xaf, 0x0e, - 0xea, 0x9f, 0x13, 0x21, 0x3f, 0xc6, 0x02, 0x78, 0x0d, 0xe9, 0xd4, 0xce, 0x63, 0x52, 0xb2, 0x64, - 0xf6, 0xce, 0xf4, 0xe6, 0xa3, 0x03, 0x63, 0x16, 0xc5, 0x8a, 0x8d, 0xec, 0x03, 0xcc, 0x58, 0x1e, - 0x99, 0x50, 0x3b, 0x7f, 0x8c, 0x1e, 0xaf, 0xc7, 0xfd, 0x47, 0xc5, 0x86, 0xae, 0x38, 0x80, 0xfb, - 0x1e, 0x83, 0x1a, 0x3d, 0x50, 0x6d, 0x9c, 0x96, 0xa4, 0xa8, 0xa6, 0x35, 0x50, 0x89, 0x47, 0xa8, - 0xb7, 0x56, 0x01, 0xc5, 0x44, 0xed, 0x6d, 0xe0, 0x26, 0xa6, 0x93, 0x3f, 0xe8, 0xd5, 0xb4, 0x7d, - 0x4d, 0xc5, 0xbf, 0x7d, 0x75, 0x89, 0xf5, 0x7d, 0x8d, 0xf6, 0xa6, 0xe1, 0xe9, 0x78, 0x74, 0xc1, - 0xde, 0x02, 0x65, 0x95, 0x5a, 0x3a, 0xf0, 0x64, 0x3c, 0xd2, 0x36, 0x3b, 0xa1, 0x01, 0x8a, 0x4d, - 0x55, 0xd8, 0x5e, 0x8d, 0x01, 0x13, 0xb8, 0x59, 0x7a, 0xce, 0xed, 0xd2, 0x73, 0x7e, 0x2e, 0x3d, - 0xe7, 0xdb, 0xca, 0xeb, 0xdc, 0xae, 0xbc, 0xce, 0xf7, 0x95, 0xd7, 0xf9, 0xfc, 0xbe, 0xb5, 0xae, - 0xb3, 0xe6, 0x3a, 0xce, 0x49, 0x2c, 0x82, 0xf5, 0xad, 0x1c, 0x25, 0x8c, 0x43, 0x1b, 0xe6, 0xa4, - 0xa0, 0x41, 0xc5, 0xd2, 0x45, 0x09, 0xc2, 0x7e, 0x19, 0x7a, 0xaf, 0x71, 0x57, 0x5f, 0xfb, 0xab, - 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x6d, 0x63, 0x90, 0x39, 0x03, 0x00, 0x00, + // 490 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0xcf, 0x6f, 0xd3, 0x30, + 0x14, 0x6e, 0xf6, 0xa3, 0x68, 0xde, 0x60, 0xe0, 0x75, 0x28, 0x42, 0x22, 0x1d, 0xe5, 0x52, 0x0e, + 0x24, 0x5d, 0xb9, 0x21, 0x71, 0x58, 0x46, 0x25, 0x26, 0x26, 0x90, 0xa2, 0x69, 0x07, 0x2e, 0x91, + 0x93, 0x3c, 0x25, 0xa1, 0xb1, 0x5d, 0xd9, 0x6e, 0xa6, 0xfd, 0x01, 0xdc, 0xf9, 0xb3, 0x76, 0xdc, + 0x11, 0x21, 0x34, 0xa1, 0xf6, 0x1f, 0x41, 0xb6, 0x93, 0xaa, 0x30, 0x6e, 0xf9, 0xbe, 0xe7, 0xef, + 0x7d, 0x5f, 0x9e, 0x9f, 0x91, 0x57, 0xb2, 0xaf, 0x90, 0xaa, 0xb2, 0x86, 0x60, 0x06, 0x79, 0x7e, + 0x1d, 0xd4, 0xc7, 0x81, 0xba, 0x9e, 0x81, 0xf4, 0x67, 0x82, 0x2b, 0x8e, 0xf1, 0xaa, 0xee, 0x9b, + 0xba, 0x5f, 0x1f, 0x3f, 0xeb, 0xe5, 0x3c, 0xe7, 0xa6, 0x1c, 0xe8, 0x2f, 0x7b, 0x72, 0x10, 0xa1, + 0xfd, 0x50, 0x94, 0x59, 0x0e, 0x97, 0xa4, 0x2a, 0x33, 0xa2, 0xb8, 0xc0, 0x3d, 0xb4, 0x3d, 0xe3, + 0x57, 0x20, 0x5c, 0xe7, 0xc8, 0x19, 0x6e, 0x45, 0x16, 0xe0, 0x57, 0xe8, 0x31, 0xa8, 0x02, 0x04, + 0xcc, 0x69, 0x4c, 0xb2, 0x4c, 0x80, 0x94, 0xee, 0xc6, 0x91, 0x33, 0xdc, 0x89, 0xf6, 0x5b, 0xfe, + 0xc4, 0xd2, 0x83, 0x5f, 0x0e, 0xea, 0x5e, 0x92, 0x4a, 0x82, 0xd2, 0xbd, 0x18, 0x67, 0x29, 0xb4, + 0xbd, 0x0c, 0xc0, 0xef, 0xd0, 0x03, 0x0a, 0x34, 0x01, 0xa1, 0x5b, 0x6c, 0x0e, 0x77, 0xc7, 0x2f, + 0xfd, 0xfb, 0x81, 0xfd, 0x7f, 0x72, 0x45, 0xad, 0x06, 0x3f, 0x45, 0xdd, 0x02, 0xca, 0xbc, 0x50, + 0xee, 0xa6, 0xe9, 0xda, 0x20, 0x1c, 0xa2, 0x87, 0x02, 0xae, 0x88, 0xc8, 0x62, 0x42, 0xf9, 0x9c, + 0x29, 0x77, 0x4b, 0xe7, 0x0b, 0x9f, 0xdf, 0xdc, 0xf5, 0x3b, 0x3f, 0xef, 0xfa, 0x87, 0x29, 0x97, + 0x94, 0x4b, 0x99, 0x4d, 0xfd, 0x92, 0x07, 0x94, 0xa8, 0xc2, 0x3f, 0x63, 0x2a, 0xda, 0xb3, 0x9a, + 0x13, 0x23, 0xc1, 0x2f, 0x50, 0x83, 0x63, 0xc5, 0xa7, 0xc0, 0xdc, 0x6d, 0xf3, 0x8b, 0xbb, 0x96, + 0xbb, 0xd0, 0xd4, 0xe0, 0x9b, 0x83, 0xfa, 0xe7, 0x44, 0xaa, 0xcf, 0x89, 0x04, 0x51, 0x43, 0x36, + 0x69, 0x7e, 0x3f, 0xac, 0x78, 0x3a, 0xfd, 0x60, 0xa3, 0xf8, 0xe8, 0xc0, 0xba, 0xc5, 0x89, 0x66, + 0xe3, 0x26, 0xaf, 0x9d, 0xc2, 0x13, 0x5b, 0x5a, 0x3f, 0x3f, 0x46, 0x87, 0xab, 0xe9, 0xfe, 0xa5, + 0xd8, 0x30, 0x8a, 0x03, 0xb8, 0xef, 0x31, 0xa8, 0xd1, 0x23, 0x1d, 0xe3, 0xb4, 0x22, 0x25, 0x9d, + 0xd4, 0xc0, 0x14, 0x1e, 0xa1, 0xde, 0xaa, 0x0b, 0x68, 0x26, 0x5e, 0x1f, 0x3e, 0x6e, 0x6b, 0xe6, + 0xf0, 0x27, 0x73, 0x13, 0xeb, 0xbe, 0x56, 0xf1, 0x7f, 0x5f, 0x23, 0x69, 0x7c, 0xdf, 0xa2, 0xbd, + 0x49, 0x74, 0x3a, 0x1e, 0x5d, 0xf0, 0xf7, 0xc0, 0x38, 0xd5, 0x77, 0x0c, 0x22, 0x1d, 0x8f, 0x8c, + 0xcd, 0x4e, 0x64, 0x81, 0x66, 0x33, 0x5d, 0x6e, 0x96, 0xc4, 0x82, 0x10, 0x6e, 0x16, 0x9e, 0x73, + 0xbb, 0xf0, 0x9c, 0xdf, 0x0b, 0xcf, 0xf9, 0xbe, 0xf4, 0x3a, 0xb7, 0x4b, 0xaf, 0xf3, 0x63, 0xe9, + 0x75, 0xbe, 0x7c, 0xcc, 0x4b, 0x55, 0xcc, 0x13, 0x3f, 0xe5, 0x34, 0x38, 0x6b, 0x97, 0xe1, 0x9c, + 0x24, 0x32, 0x58, 0xad, 0xc6, 0xeb, 0x94, 0x0b, 0x58, 0x87, 0x05, 0x29, 0x59, 0x40, 0x79, 0x36, + 0xaf, 0x40, 0x36, 0x0f, 0xc1, 0xbc, 0x82, 0xa4, 0x6b, 0x96, 0xfb, 0xcd, 0x9f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xb5, 0x74, 0x5d, 0x7b, 0x28, 0x03, 0x00, 0x00, } func (m *BridgeValidator) Marshal() (dAtA []byte, err error) { diff --git a/chain/permissions/types/codec.go b/chain/permissions/types/codec.go new file mode 100644 index 00000000..a5cc7fea --- /dev/null +++ b/chain/permissions/types/codec.go @@ -0,0 +1,49 @@ +package types + +import ( + "github.com/cosmos/cosmos-sdk/codec" + cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" + // this line is used by starport scaffolding # 1 + "github.com/cosmos/cosmos-sdk/types/msgservice" +) + +const ModuleName = "permissions" + +func RegisterCodec(cdc *codec.LegacyAmino) { + cdc.RegisterConcrete(&MsgUpdateParams{}, "permissions/MsgUpdateParams", nil) + cdc.RegisterConcrete(&MsgCreateNamespace{}, "permissions/MsgCreateNamespace", nil) + cdc.RegisterConcrete(&MsgDeleteNamespace{}, "permissions/MsgDeleteNamespace", nil) + cdc.RegisterConcrete(&MsgUpdateNamespace{}, "permissions/MsgUpdateNamespace", nil) + cdc.RegisterConcrete(&MsgUpdateNamespaceRoles{}, "permissions/MsgUpdateNamespaceRoles", nil) + cdc.RegisterConcrete(&MsgRevokeNamespaceRoles{}, "permissions/MsgRevokeNamespaceRoles", nil) + cdc.RegisterConcrete(&MsgClaimVoucher{}, "permissions/MsgClaimVoucher", nil) +} + +func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { + registry.RegisterImplementations((*sdk.Msg)(nil), + &MsgUpdateParams{}, + &MsgCreateNamespace{}, + &MsgDeleteNamespace{}, + &MsgUpdateNamespace{}, + &MsgUpdateNamespaceRoles{}, + &MsgRevokeNamespaceRoles{}, + &MsgClaimVoucher{}, + ) + + msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) +} + +var ( + ModuleCdc = codec.NewLegacyAmino() +) + +func init() { + RegisterCodec(ModuleCdc) + // Register all Amino interfaces and concrete types on the authz Amino codec so that this can later be + // used to properly serialize MsgGrant and MsgExec instances + sdk.RegisterLegacyAminoCodec(ModuleCdc) + RegisterCodec(authzcdc.Amino) + ModuleCdc.Seal() +} diff --git a/chain/permissions/types/errors.go b/chain/permissions/types/errors.go new file mode 100644 index 00000000..f104edaf --- /dev/null +++ b/chain/permissions/types/errors.go @@ -0,0 +1,24 @@ +package types + +// DONTCOVER + +import ( + "cosmossdk.io/errors" +) + +// x/tokenfactory module sentinel errors +var ( + ErrDenomNamespaceExists = errors.Register(ModuleName, 2, "attempting to create a namespace for denom that already exists") + ErrUnauthorized = errors.Register(ModuleName, 3, "unauthorized account") + ErrInvalidGenesis = errors.Register(ModuleName, 4, "invalid genesis") + ErrInvalidNamespace = errors.Register(ModuleName, 5, "invalid namespace") + ErrInvalidPermission = errors.Register(ModuleName, 6, "invalid permissions") + ErrUnknownRole = errors.Register(ModuleName, 7, "unknown role") + ErrUnknownWasmHook = errors.Register(ModuleName, 8, "unknown contract address") + ErrRestrictedAction = errors.Register(ModuleName, 9, "restricted action") + ErrInvalidRole = errors.Register(ModuleName, 10, "invalid role") + ErrUnknownDenom = errors.Register(ModuleName, 11, "namespace for denom is not existing") + ErrWasmHookError = errors.Register(ModuleName, 12, "wasm hook query error") + ErrVoucherNotFound = errors.Register(ModuleName, 13, "voucher was not found") + ErrInvalidWasmHook = errors.Register(ModuleName, 14, "invalid wasm hook") +) diff --git a/chain/permissions/types/events.pb.go b/chain/permissions/types/events.pb.go new file mode 100644 index 00000000..d5c783c5 --- /dev/null +++ b/chain/permissions/types/events.pb.go @@ -0,0 +1,379 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/events.proto + +package types + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/x/bank/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 + +type EventSetVoucher struct { + Addr string `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"` + Voucher types.Coin `protobuf:"bytes,2,opt,name=voucher,proto3" 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_705c3e21b20426fa, []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 "" +} + +func (m *EventSetVoucher) GetVoucher() types.Coin { + if m != nil { + return m.Voucher + } + return types.Coin{} +} + +func init() { + proto.RegisterType((*EventSetVoucher)(nil), "injective.permissions.v1beta1.EventSetVoucher") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/events.proto", fileDescriptor_705c3e21b20426fa) +} + +var fileDescriptor_705c3e21b20426fa = []byte{ + // 272 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0xb1, 0x4a, 0xc4, 0x40, + 0x10, 0x86, 0xb3, 0x72, 0x28, 0xc6, 0x42, 0x08, 0x16, 0xe7, 0x81, 0xeb, 0x61, 0x75, 0x08, 0xee, + 0x72, 0x5a, 0xd9, 0x9e, 0x58, 0x08, 0x36, 0x9e, 0x60, 0x61, 0x65, 0xb2, 0x19, 0x92, 0xf5, 0xcc, + 0x4e, 0xd8, 0xd9, 0x04, 0x7c, 0x0b, 0x1f, 0xeb, 0xca, 0x2b, 0xad, 0x44, 0x92, 0x17, 0x91, 0x24, + 0x26, 0x9c, 0xd8, 0xcd, 0xf0, 0x7d, 0x3b, 0x3b, 0xf3, 0xfb, 0xe7, 0xda, 0xbc, 0x82, 0x72, 0xba, + 0x04, 0x99, 0x83, 0xcd, 0x34, 0x91, 0x46, 0x43, 0xb2, 0x9c, 0x47, 0xe0, 0xc2, 0xb9, 0x84, 0x12, + 0x8c, 0x23, 0x91, 0x5b, 0x74, 0x18, 0x9c, 0x0c, 0xae, 0xd8, 0x72, 0xc5, 0xaf, 0x3b, 0x39, 0x4a, + 0x30, 0xc1, 0xd6, 0x94, 0x4d, 0xd5, 0x3d, 0x9a, 0x70, 0x85, 0x94, 0x21, 0xc9, 0x28, 0x24, 0x18, + 0xc6, 0x2a, 0xd4, 0xe6, 0x1f, 0x37, 0xab, 0x81, 0x37, 0x4d, 0xc7, 0xcf, 0x5e, 0xfc, 0xc3, 0xdb, + 0x66, 0x89, 0x47, 0x70, 0x4f, 0x58, 0xa8, 0x14, 0x6c, 0x10, 0xf8, 0xa3, 0x30, 0x8e, 0xed, 0x98, + 0x4d, 0xd9, 0x6c, 0x7f, 0xd9, 0xd6, 0xc1, 0xb5, 0xbf, 0x57, 0x76, 0x78, 0xbc, 0x33, 0x65, 0xb3, + 0x83, 0xcb, 0x63, 0xd1, 0x0d, 0x16, 0xcd, 0xc7, 0xfd, 0x8e, 0xe2, 0x06, 0xb5, 0x59, 0x8c, 0xd6, + 0x5f, 0xa7, 0xde, 0xb2, 0xf7, 0x17, 0xab, 0x75, 0xc5, 0xd9, 0xa6, 0xe2, 0xec, 0xbb, 0xe2, 0xec, + 0xa3, 0xe6, 0xde, 0xa6, 0xe6, 0xde, 0x67, 0xcd, 0xbd, 0xe7, 0x87, 0x44, 0xbb, 0xb4, 0x88, 0x84, + 0xc2, 0x4c, 0xde, 0xf5, 0xb7, 0xdf, 0x87, 0x11, 0xc9, 0x21, 0x89, 0x0b, 0x85, 0x16, 0xb6, 0xdb, + 0x34, 0xd4, 0x46, 0x66, 0x18, 0x17, 0x6f, 0x40, 0x7f, 0x22, 0x75, 0xef, 0x39, 0x50, 0xb4, 0xdb, + 0x5e, 0x75, 0xf5, 0x13, 0x00, 0x00, 0xff, 0xff, 0x74, 0x79, 0xe1, 0x33, 0x78, 0x01, 0x00, 0x00, +} + +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, err := m.Voucher.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + 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 + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + 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 + 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 +} +func sozEvents(x uint64) (n int) { + return sovEvents(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 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 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowEvents + } + 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, ErrIntOverflowEvents + } + 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, ErrIntOverflowEvents + } + 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, ErrInvalidLengthEvents + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEvents + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEvents + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEvents = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEvents = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEvents = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/expected_keepers.go b/chain/permissions/types/expected_keepers.go new file mode 100644 index 00000000..3fdbb230 --- /dev/null +++ b/chain/permissions/types/expected_keepers.go @@ -0,0 +1,26 @@ +package types + +import ( + "context" + + sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + + tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" +) + +type BankKeeper interface { + AppendSendRestriction(restriction banktypes.SendRestrictionFn) + PrependSendRestriction(restriction banktypes.SendRestrictionFn) + ClearSendRestriction() + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error +} + +type TokenFactoryKeeper interface { + GetAuthorityMetadata(ctx sdk.Context, denom string) (tftypes.DenomAuthorityMetadata, error) +} + +type WasmKeeper interface { + HasContractInfo(ctx context.Context, contractAddress sdk.AccAddress) bool + QuerySmart(ctx context.Context, contractAddr sdk.AccAddress, req []byte) ([]byte, error) +} diff --git a/chain/permissions/types/genesis.go b/chain/permissions/types/genesis.go new file mode 100644 index 00000000..4eff5bb7 --- /dev/null +++ b/chain/permissions/types/genesis.go @@ -0,0 +1,38 @@ +package types + +import ( + "cosmossdk.io/errors" +) + +// this line is used by starport scaffolding # genesis/types/import + +// DefaultIndex is the default capability global index +const DefaultIndex uint64 = 1 + +// DefaultGenesis returns the default Capability genesis state +func DefaultGenesis() *GenesisState { + return &GenesisState{ + Params: DefaultParams(), + Namespaces: []Namespace{}, + } +} + +// Validate performs basic genesis state validation returning an error upon any +// failure. +func (gs GenesisState) Validate() error { + err := gs.Params.Validate() + if err != nil { + return err + } + + seenDenoms := map[string]struct{}{} + + for _, ns := range gs.GetNamespaces() { + if _, ok := seenDenoms[ns.GetDenom()]; ok { + return errors.Wrapf(ErrInvalidGenesis, "duplicate denom: %s", ns.GetDenom()) + } + seenDenoms[ns.GetDenom()] = struct{}{} + } + + return nil +} diff --git a/chain/permissions/types/genesis.pb.go b/chain/permissions/types/genesis.pb.go new file mode 100644 index 00000000..f4b7b7d6 --- /dev/null +++ b/chain/permissions/types/genesis.pb.go @@ -0,0 +1,390 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/genesis.proto + +package types + +import ( + fmt "fmt" + _ "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 + +// GenesisState defines the permissions module's genesis state. +type GenesisState struct { + // params defines the parameters of the module. + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + Namespaces []Namespace `protobuf:"bytes,2,rep,name=namespaces,proto3" json:"namespaces"` +} + +func (m *GenesisState) Reset() { *m = GenesisState{} } +func (m *GenesisState) String() string { return proto.CompactTextString(m) } +func (*GenesisState) ProtoMessage() {} +func (*GenesisState) Descriptor() ([]byte, []int) { + return fileDescriptor_5ff1982ce1793022, []int{0} +} +func (m *GenesisState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisState.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GenesisState) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisState.Merge(m, src) +} +func (m *GenesisState) XXX_Size() int { + return m.Size() +} +func (m *GenesisState) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisState.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisState proto.InternalMessageInfo + +func (m *GenesisState) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +func (m *GenesisState) GetNamespaces() []Namespace { + if m != nil { + return m.Namespaces + } + return nil +} + +func init() { + proto.RegisterType((*GenesisState)(nil), "injective.permissions.v1beta1.GenesisState") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/genesis.proto", fileDescriptor_5ff1982ce1793022) +} + +var fileDescriptor_5ff1982ce1793022 = []byte{ + // 270 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0xce, 0xcc, 0xcb, 0x4a, + 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0x48, 0x2d, 0xca, 0xcd, 0x2c, 0x2e, 0xce, 0xcc, 0xcf, + 0x2b, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, + 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x85, 0x2b, 0xd6, 0x43, 0x52, 0xac, 0x07, + 0x55, 0x2c, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa9, 0x0f, 0x62, 0x41, 0x34, 0x49, 0x69, + 0xe1, 0xb7, 0xa1, 0x20, 0xb1, 0x28, 0x31, 0x17, 0x6a, 0x81, 0x94, 0x3e, 0x01, 0xb5, 0x48, 0x96, + 0x82, 0x35, 0x28, 0x2d, 0x66, 0xe4, 0xe2, 0x71, 0x87, 0xb8, 0x31, 0xb8, 0x24, 0xb1, 0x24, 0x55, + 0xc8, 0x99, 0x8b, 0x0d, 0x62, 0xa2, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, 0x91, 0xaa, 0x1e, 0x5e, + 0x37, 0xeb, 0x05, 0x80, 0x15, 0x3b, 0xb1, 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x04, 0xd5, 0x2a, 0xe4, + 0xc7, 0xc5, 0x95, 0x97, 0x98, 0x9b, 0x5a, 0x5c, 0x90, 0x98, 0x9c, 0x5a, 0x2c, 0xc1, 0xa4, 0xc0, + 0xac, 0xc1, 0x6d, 0xa4, 0x41, 0xc0, 0x20, 0x3f, 0x98, 0x06, 0xa8, 0x59, 0x48, 0x26, 0x38, 0x65, + 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, + 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x54, 0x60, 0x7a, 0x66, 0x49, 0x46, + 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0xbe, 0x27, 0xcc, 0x7c, 0x9f, 0xc4, 0xa4, 0x62, 0x44, 0x48, + 0xe8, 0x26, 0xe7, 0x17, 0xa5, 0x22, 0x73, 0x33, 0x12, 0x33, 0xf3, 0xf4, 0x73, 0xf3, 0x53, 0x4a, + 0x73, 0x52, 0x8b, 0x51, 0x82, 0xa9, 0xa4, 0xb2, 0x20, 0xb5, 0x38, 0x89, 0x0d, 0x1c, 0x32, 0xc6, + 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x0c, 0xe9, 0xc0, 0xda, 0x01, 0x00, 0x00, +} + +func (m *GenesisState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GenesisState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Namespaces[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int { + offset -= sovGenesis(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *GenesisState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovGenesis(uint64(l)) + if len(m.Namespaces) > 0 { + for _, e := range m.Namespaces { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + return n +} + +func sovGenesis(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenesis(x uint64) (n int) { + return sovGenesis(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *GenesisState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", 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 + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", 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.Namespaces = append(m.Namespaces, Namespace{}) + if err := m.Namespaces[len(m.Namespaces)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenesis(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, ErrIntOverflowGenesis + } + 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, ErrIntOverflowGenesis + } + 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, ErrIntOverflowGenesis + } + 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, ErrInvalidLengthGenesis + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenesis + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenesis + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenesis = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenesis = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenesis = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/msgs.go b/chain/permissions/types/msgs.go new file mode 100644 index 00000000..e9b762b1 --- /dev/null +++ b/chain/permissions/types/msgs.go @@ -0,0 +1,227 @@ +package types + +import ( + "fmt" + + "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + + tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" +) + +// constants +const ( + // RouterKey is the message route for slashing + routerKey = ModuleName + + TypeMsgUpdateParams = "update_params" + TypeMsgCreateNamespace = "create_namespace" + TypeMsgDeleteNamespace = "delete_namespace" + TypeUpdateNamespace = "update_namespace" + TypeMsgUpdateNamespaceRoles = "update_namespace_roles" + TypeMsgRevokeNamespaceRoles = "revoke_namespace_roles" + TypeMsgClaimVoucher = "claim_voucher" +) + +var ( + _ sdk.Msg = &MsgUpdateParams{} + _ sdk.Msg = &MsgCreateNamespace{} + _ sdk.Msg = &MsgDeleteNamespace{} + _ sdk.Msg = &MsgUpdateNamespace{} + _ sdk.Msg = &MsgUpdateNamespaceRoles{} + _ sdk.Msg = &MsgRevokeNamespaceRoles{} + _ sdk.Msg = &MsgClaimVoucher{} +) + +func (m MsgUpdateParams) Route() string { return routerKey } + +func (m MsgUpdateParams) Type() string { return TypeMsgUpdateParams } + +func (m MsgUpdateParams) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(m.Authority); err != nil { + return err + } + + if err := m.Params.Validate(); err != nil { + return err + } + return nil +} + +func (m *MsgUpdateParams) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Authority) + return []sdk.AccAddress{addr} +} + +func (m MsgCreateNamespace) Route() string { return routerKey } + +func (m MsgCreateNamespace) Type() string { return TypeMsgCreateNamespace } + +func (msg MsgCreateNamespace) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return err + } + + if err := msg.Namespace.Validate(); err != nil { + return err + } + return nil +} + +func (m *MsgCreateNamespace) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgCreateNamespace) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} + +func (m MsgDeleteNamespace) Route() string { return routerKey } + +func (m MsgDeleteNamespace) Type() string { return TypeMsgDeleteNamespace } + +func (m MsgDeleteNamespace) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { + return err + } + + if _, _, err := tftypes.DeconstructDenom(m.NamespaceDenom); err != nil { + return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") + } + return nil +} + +func (m *MsgDeleteNamespace) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgDeleteNamespace) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} + +func (m MsgUpdateNamespace) Route() string { return routerKey } + +func (m MsgUpdateNamespace) Type() string { return TypeUpdateNamespace } + +func (m MsgUpdateNamespace) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(m.Sender); err != nil { + return err + } + + if m.WasmHook != nil { + if _, err := sdk.AccAddressFromBech32(m.WasmHook.NewValue); err != nil { + return ErrInvalidWasmHook + } + } + return nil +} + +func (m *MsgUpdateNamespace) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgUpdateNamespace) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} + +func (m MsgUpdateNamespaceRoles) Route() string { return routerKey } + +func (m MsgUpdateNamespaceRoles) Type() string { return TypeMsgUpdateNamespaceRoles } + +func (msg MsgUpdateNamespaceRoles) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return err + } + if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { + return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") + } + + for _, role := range msg.AddressRoles { + if _, err := sdk.AccAddressFromBech32(role.Address); err != nil { + return errors.Wrapf(err, "invalid address %s", role.Address) + } + } + + return nil +} + +func (m *MsgUpdateNamespaceRoles) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgUpdateNamespaceRoles) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} + +func (m MsgRevokeNamespaceRoles) Route() string { return routerKey } + +func (m MsgRevokeNamespaceRoles) Type() string { return TypeMsgRevokeNamespaceRoles } + +func (msg MsgRevokeNamespaceRoles) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return err + } + + if _, _, err := tftypes.DeconstructDenom(msg.NamespaceDenom); err != nil { + return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") + } + + // address_roles + foundAddresses := make(map[string]struct{}, len(msg.AddressRolesToRevoke)) + for _, addrRoles := range msg.AddressRolesToRevoke { + if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { + return errors.Wrapf(err, "invalid address %s", addrRoles.Address) + } + if _, ok := foundAddresses[addrRoles.Address]; ok { + return errors.Wrapf(ErrInvalidRole, "address %s - revoking roles multiple times?", addrRoles.Address) + } + for _, role := range addrRoles.Roles { + if role == EVERYONE { + return errors.Wrapf(ErrInvalidRole, "role %s can not be set / revoked", EVERYONE) + } + } + foundAddresses[addrRoles.Address] = struct{}{} + } + return nil +} + +func (m *MsgRevokeNamespaceRoles) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgRevokeNamespaceRoles) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} + +func (m MsgClaimVoucher) Route() string { return routerKey } + +func (m MsgClaimVoucher) Type() string { return TypeMsgClaimVoucher } + +func (msg MsgClaimVoucher) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.Sender); err != nil { + return err + } + + if msg.Denom == "" { + return fmt.Errorf("invalid denom") + } + return nil +} + +func (m *MsgClaimVoucher) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshal(m)) +} + +func (m MsgClaimVoucher) GetSigners() []sdk.AccAddress { + addr, _ := sdk.AccAddressFromBech32(m.Sender) + return []sdk.AccAddress{addr} +} diff --git a/chain/permissions/types/params.go b/chain/permissions/types/params.go new file mode 100644 index 00000000..c8ff643e --- /dev/null +++ b/chain/permissions/types/params.go @@ -0,0 +1,33 @@ +package types + +import ( + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// ParamTable +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +func NewParams(wasmHookQueryMaxGas uint64) Params { + return Params{ + WasmHookQueryMaxGas: wasmHookQueryMaxGas, + } +} + +// default module parameters. +func DefaultParams() Params { + return Params{ + WasmHookQueryMaxGas: 200_000, + } +} + +// validate params. +func (p Params) Validate() error { + return nil +} + +// Implements params.ParamSet. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{} +} diff --git a/chain/permissions/types/params.pb.go b/chain/permissions/types/params.pb.go new file mode 100644 index 00000000..291c992a --- /dev/null +++ b/chain/permissions/types/params.pb.go @@ -0,0 +1,337 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/params.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" + _ "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 + +// Params defines the parameters for the permissions module. +type Params struct { + WasmHookQueryMaxGas uint64 `protobuf:"varint,1,opt,name=wasm_hook_query_max_gas,json=wasmHookQueryMaxGas,proto3" json:"wasm_hook_query_max_gas,omitempty"` +} + +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} +} +func (m *Params) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Params.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Params) XXX_Merge(src proto.Message) { + xxx_messageInfo_Params.Merge(m, src) +} +func (m *Params) XXX_Size() int { + return m.Size() +} +func (m *Params) XXX_DiscardUnknown() { + xxx_messageInfo_Params.DiscardUnknown(m) +} + +var xxx_messageInfo_Params proto.InternalMessageInfo + +func (m *Params) GetWasmHookQueryMaxGas() uint64 { + if m != nil { + return m.WasmHookQueryMaxGas + } + return 0 +} + +func init() { + proto.RegisterType((*Params)(nil), "injective.permissions.v1beta1.Params") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/params.proto", fileDescriptor_4a7ea0496163621f) +} + +var fileDescriptor_4a7ea0496163621f = []byte{ + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0x31, 0x4e, 0xc3, 0x30, + 0x14, 0x86, 0x6b, 0x09, 0x75, 0xc8, 0x46, 0x40, 0x02, 0x8a, 0x30, 0x88, 0x09, 0x55, 0x22, 0x56, + 0x05, 0x13, 0x23, 0x0b, 0x20, 0x81, 0x44, 0x19, 0x61, 0x88, 0x5e, 0x82, 0x95, 0x98, 0xe0, 0xbc, + 0x90, 0xe7, 0x94, 0xf6, 0x0a, 0x4c, 0x1c, 0x81, 0x23, 0x70, 0x0c, 0xc6, 0x8e, 0x8c, 0x28, 0x19, + 0xe0, 0x18, 0x28, 0x71, 0x88, 0xc2, 0x62, 0xf9, 0xf7, 0xf7, 0xdb, 0x7e, 0xff, 0xef, 0x8c, 0x55, + 0xfa, 0x20, 0x43, 0xa3, 0x66, 0x52, 0x64, 0x32, 0xd7, 0x8a, 0x48, 0x61, 0x4a, 0x62, 0x36, 0x09, + 0xa4, 0x81, 0x89, 0xc8, 0x20, 0x07, 0x4d, 0x5e, 0x96, 0xa3, 0x41, 0x77, 0xa7, 0xf3, 0x7a, 0x3d, + 0xaf, 0xd7, 0x7a, 0x47, 0xeb, 0x11, 0x46, 0xd8, 0x38, 0x45, 0xbd, 0xb3, 0x97, 0x46, 0x5b, 0x21, + 0x92, 0x46, 0xf2, 0x2d, 0xb0, 0xa2, 0x45, 0xdc, 0x2a, 0x11, 0x00, 0xc9, 0xee, 0xc7, 0x10, 0x55, + 0xda, 0xf2, 0x55, 0xd0, 0x2a, 0x45, 0xd1, 0xac, 0xf6, 0x68, 0xff, 0xce, 0x19, 0x5e, 0x37, 0x23, + 0xb9, 0xc7, 0xce, 0xc6, 0x33, 0x90, 0xf6, 0x63, 0xc4, 0xc4, 0x7f, 0x2a, 0x64, 0xbe, 0xf0, 0x35, + 0xcc, 0xfd, 0x08, 0x68, 0x93, 0xed, 0xb1, 0x83, 0x95, 0x9b, 0xb5, 0x1a, 0x9f, 0x23, 0x26, 0xd3, + 0x1a, 0x5e, 0xc1, 0xfc, 0x0c, 0xe8, 0x64, 0xfb, 0xe7, 0x6d, 0x97, 0xbd, 0x7c, 0xbf, 0x8f, 0xdd, + 0x7e, 0x5a, 0xfb, 0xe4, 0x69, 0xf2, 0x51, 0x72, 0xb6, 0x2c, 0x39, 0xfb, 0x2a, 0x39, 0x7b, 0xad, + 0xf8, 0x60, 0x59, 0xf1, 0xc1, 0x67, 0xc5, 0x07, 0xb7, 0xd3, 0x48, 0x99, 0xb8, 0x08, 0xbc, 0x10, + 0xb5, 0xb8, 0xf8, 0x2b, 0xe1, 0x12, 0x02, 0x12, 0x5d, 0x25, 0x87, 0x21, 0xe6, 0xb2, 0x2f, 0x63, + 0x50, 0xa9, 0xd0, 0x78, 0x5f, 0x3c, 0x4a, 0xfa, 0xd7, 0xad, 0x59, 0x64, 0x92, 0x82, 0x61, 0x13, + 0xe8, 0xe8, 0x37, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x42, 0x3f, 0x45, 0x81, 0x01, 0x00, 0x00, +} + +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WasmHookQueryMaxGas != that1.WasmHookQueryMaxGas { + return false + } + return true +} +func (m *Params) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Params) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.WasmHookQueryMaxGas != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.WasmHookQueryMaxGas)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintParams(dAtA []byte, offset int, v uint64) int { + offset -= sovParams(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.WasmHookQueryMaxGas != 0 { + n += 1 + sovParams(uint64(m.WasmHookQueryMaxGas)) + } + return n +} + +func sovParams(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozParams(x uint64) (n int) { + return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Params) Unmarshal(dAtA []byte) 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: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field WasmHookQueryMaxGas", wireType) + } + m.WasmHookQueryMaxGas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.WasmHookQueryMaxGas |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 skipParams(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, ErrIntOverflowParams + } + 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, ErrIntOverflowParams + } + 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, ErrIntOverflowParams + } + 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, ErrInvalidLengthParams + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupParams + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthParams + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthParams = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowParams = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupParams = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/permissions.pb.go b/chain/permissions/types/permissions.pb.go new file mode 100644 index 00000000..8dac3cbb --- /dev/null +++ b/chain/permissions/types/permissions.pb.go @@ -0,0 +1,1748 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/permissions.proto + +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" + 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 + +// each Action enum value should be a power of two +type Action int32 + +const ( + Action_UNSPECIFIED Action = 0 + Action_MINT Action = 1 + Action_RECEIVE Action = 2 + Action_BURN Action = 4 +) + +var Action_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "MINT", + 2: "RECEIVE", + 4: "BURN", +} + +var Action_value = map[string]int32{ + "UNSPECIFIED": 0, + "MINT": 1, + "RECEIVE": 2, + "BURN": 4, +} + +func (x Action) String() string { + return proto.EnumName(Action_name, int32(x)) +} + +func (Action) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{0} +} + +// Namespace defines a permissions namespace +type Namespace struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + WasmHook string `protobuf:"bytes,2,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` + MintsPaused bool `protobuf:"varint,3,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` + SendsPaused bool `protobuf:"varint,4,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` + BurnsPaused bool `protobuf:"varint,5,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` + RolePermissions []*Role `protobuf:"bytes,6,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + AddressRoles []*AddressRoles `protobuf:"bytes,7,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` +} + +func (m *Namespace) Reset() { *m = Namespace{} } +func (m *Namespace) String() string { return proto.CompactTextString(m) } +func (*Namespace) ProtoMessage() {} +func (*Namespace) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{0} +} +func (m *Namespace) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Namespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Namespace.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Namespace) XXX_Merge(src proto.Message) { + xxx_messageInfo_Namespace.Merge(m, src) +} +func (m *Namespace) XXX_Size() int { + return m.Size() +} +func (m *Namespace) XXX_DiscardUnknown() { + xxx_messageInfo_Namespace.DiscardUnknown(m) +} + +var xxx_messageInfo_Namespace proto.InternalMessageInfo + +func (m *Namespace) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *Namespace) GetWasmHook() string { + if m != nil { + return m.WasmHook + } + return "" +} + +func (m *Namespace) GetMintsPaused() bool { + if m != nil { + return m.MintsPaused + } + return false +} + +func (m *Namespace) GetSendsPaused() bool { + if m != nil { + return m.SendsPaused + } + return false +} + +func (m *Namespace) GetBurnsPaused() bool { + if m != nil { + return m.BurnsPaused + } + return false +} + +func (m *Namespace) GetRolePermissions() []*Role { + if m != nil { + return m.RolePermissions + } + return nil +} + +func (m *Namespace) GetAddressRoles() []*AddressRoles { + if m != nil { + return m.AddressRoles + } + return nil +} + +type AddressRoles struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"` +} + +func (m *AddressRoles) Reset() { *m = AddressRoles{} } +func (m *AddressRoles) String() string { return proto.CompactTextString(m) } +func (*AddressRoles) ProtoMessage() {} +func (*AddressRoles) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{1} +} +func (m *AddressRoles) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressRoles.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *AddressRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressRoles.Merge(m, src) +} +func (m *AddressRoles) XXX_Size() int { + return m.Size() +} +func (m *AddressRoles) XXX_DiscardUnknown() { + xxx_messageInfo_AddressRoles.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressRoles proto.InternalMessageInfo + +func (m *AddressRoles) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func (m *AddressRoles) GetRoles() []string { + if m != nil { + return m.Roles + } + return nil +} + +// Role is only used for storage +type Role struct { + Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` + Permissions uint32 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"` +} + +func (m *Role) Reset() { *m = Role{} } +func (m *Role) String() string { return proto.CompactTextString(m) } +func (*Role) ProtoMessage() {} +func (*Role) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{2} +} +func (m *Role) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Role) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Role.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Role) XXX_Merge(src proto.Message) { + xxx_messageInfo_Role.Merge(m, src) +} +func (m *Role) XXX_Size() int { + return m.Size() +} +func (m *Role) XXX_DiscardUnknown() { + xxx_messageInfo_Role.DiscardUnknown(m) +} + +var xxx_messageInfo_Role proto.InternalMessageInfo + +func (m *Role) GetRole() string { + if m != nil { + return m.Role + } + return "" +} + +func (m *Role) GetPermissions() uint32 { + if m != nil { + return m.Permissions + } + return 0 +} + +// used in storage +type RoleIDs struct { + RoleIds []uint32 `protobuf:"varint,1,rep,packed,name=role_ids,json=roleIds,proto3" json:"role_ids,omitempty"` +} + +func (m *RoleIDs) Reset() { *m = RoleIDs{} } +func (m *RoleIDs) String() string { return proto.CompactTextString(m) } +func (*RoleIDs) ProtoMessage() {} +func (*RoleIDs) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{3} +} +func (m *RoleIDs) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RoleIDs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RoleIDs.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RoleIDs) XXX_Merge(src proto.Message) { + xxx_messageInfo_RoleIDs.Merge(m, src) +} +func (m *RoleIDs) XXX_Size() int { + return m.Size() +} +func (m *RoleIDs) XXX_DiscardUnknown() { + xxx_messageInfo_RoleIDs.DiscardUnknown(m) +} + +var xxx_messageInfo_RoleIDs proto.InternalMessageInfo + +func (m *RoleIDs) GetRoleIds() []uint32 { + if m != nil { + return m.RoleIds + } + return nil +} + +type Voucher struct { + Coins github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=coins,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"coins"` +} + +func (m *Voucher) Reset() { *m = Voucher{} } +func (m *Voucher) String() string { return proto.CompactTextString(m) } +func (*Voucher) ProtoMessage() {} +func (*Voucher) Descriptor() ([]byte, []int) { + return fileDescriptor_6d25f3ecf3806c6c, []int{4} +} +func (m *Voucher) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Voucher) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Voucher.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Voucher) XXX_Merge(src proto.Message) { + xxx_messageInfo_Voucher.Merge(m, src) +} +func (m *Voucher) XXX_Size() int { + return m.Size() +} +func (m *Voucher) XXX_DiscardUnknown() { + xxx_messageInfo_Voucher.DiscardUnknown(m) +} + +var xxx_messageInfo_Voucher proto.InternalMessageInfo + +func (m *Voucher) GetCoins() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Coins + } + return nil +} + +type AddressVoucher struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Voucher *Voucher `protobuf:"bytes,2,opt,name=voucher,proto3" 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{5} +} +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 (m *AddressVoucher) GetVoucher() *Voucher { + if m != nil { + return m.Voucher + } + return nil +} + +func init() { + proto.RegisterEnum("injective.permissions.v1beta1.Action", Action_name, Action_value) + proto.RegisterType((*Namespace)(nil), "injective.permissions.v1beta1.Namespace") + proto.RegisterType((*AddressRoles)(nil), "injective.permissions.v1beta1.AddressRoles") + proto.RegisterType((*Role)(nil), "injective.permissions.v1beta1.Role") + proto.RegisterType((*RoleIDs)(nil), "injective.permissions.v1beta1.RoleIDs") + proto.RegisterType((*Voucher)(nil), "injective.permissions.v1beta1.Voucher") + proto.RegisterType((*AddressVoucher)(nil), "injective.permissions.v1beta1.AddressVoucher") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/permissions.proto", fileDescriptor_6d25f3ecf3806c6c) +} + +var fileDescriptor_6d25f3ecf3806c6c = []byte{ + // 567 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x53, 0x4d, 0x8f, 0xd2, 0x4e, + 0x18, 0xa7, 0xbc, 0x15, 0xa6, 0xf0, 0x5f, 0x32, 0xd9, 0x43, 0x77, 0xff, 0xb1, 0x8b, 0xd5, 0x18, + 0xa2, 0xd9, 0xd6, 0xc5, 0x9b, 0x31, 0xc6, 0x85, 0xc5, 0xd8, 0x44, 0x09, 0x56, 0x77, 0x0f, 0x5e, + 0x48, 0x5f, 0x26, 0x30, 0x42, 0x3b, 0xa4, 0x4f, 0xc1, 0xf8, 0x2d, 0xfc, 0x1c, 0x7e, 0x92, 0xf5, + 0xb6, 0x47, 0x4f, 0x6a, 0xe0, 0x8b, 0x98, 0x99, 0x29, 0x50, 0x0f, 0xba, 0x27, 0xfa, 0xfc, 0x5e, + 0x9e, 0xe1, 0xf9, 0xcd, 0x33, 0xc8, 0xa6, 0xf1, 0x47, 0x12, 0xa4, 0x74, 0x45, 0xec, 0x05, 0x49, + 0x22, 0x0a, 0x40, 0x59, 0x0c, 0xf6, 0xea, 0xcc, 0x27, 0xa9, 0x77, 0x96, 0xc7, 0xac, 0x45, 0xc2, + 0x52, 0x86, 0xef, 0xec, 0x0c, 0x56, 0x9e, 0xcc, 0x0c, 0xc7, 0x87, 0x13, 0x36, 0x61, 0x42, 0x69, + 0xf3, 0x2f, 0x69, 0x3a, 0x36, 0x02, 0x06, 0x11, 0x03, 0xdb, 0xf7, 0x80, 0xec, 0x7a, 0x07, 0x8c, + 0xc6, 0x92, 0x37, 0xbf, 0x15, 0x51, 0x7d, 0xe8, 0x45, 0x04, 0x16, 0x5e, 0x40, 0xf0, 0x21, 0xaa, + 0x84, 0x24, 0x66, 0x91, 0xae, 0xb4, 0x95, 0x4e, 0xdd, 0x95, 0x05, 0xfe, 0x1f, 0xd5, 0x3f, 0x79, + 0x10, 0x8d, 0xa7, 0x8c, 0xcd, 0xf4, 0xa2, 0x60, 0x6a, 0x1c, 0x78, 0xc5, 0xd8, 0x0c, 0xdf, 0x45, + 0x8d, 0x88, 0xc6, 0x29, 0x8c, 0x17, 0xde, 0x12, 0x48, 0xa8, 0x97, 0xda, 0x4a, 0xa7, 0xe6, 0x6a, + 0x02, 0x1b, 0x09, 0x88, 0x4b, 0x80, 0xc4, 0xe1, 0x4e, 0x52, 0x96, 0x12, 0x81, 0xed, 0x25, 0xfe, + 0x32, 0x89, 0x77, 0x92, 0x8a, 0x94, 0x08, 0x2c, 0x93, 0x0c, 0x51, 0x2b, 0x61, 0x73, 0x32, 0xce, + 0xcd, 0xae, 0x57, 0xdb, 0xa5, 0x8e, 0xd6, 0xbd, 0x67, 0xfd, 0x33, 0x19, 0xcb, 0x65, 0x73, 0xe2, + 0x1e, 0x70, 0xf3, 0x68, 0xcf, 0xe2, 0x11, 0x6a, 0x7a, 0x61, 0x98, 0x10, 0x80, 0x31, 0xa7, 0x40, + 0x57, 0x45, 0xb3, 0x47, 0xb7, 0x34, 0x3b, 0x97, 0x1e, 0xde, 0x13, 0xdc, 0x86, 0x97, 0xab, 0xcc, + 0xe7, 0xa8, 0x91, 0x67, 0xb1, 0x8e, 0xd4, 0x8c, 0xcf, 0xf2, 0xdc, 0x96, 0x3c, 0x67, 0x79, 0x66, + 0xb1, 0x5d, 0xe2, 0x39, 0x8b, 0xc2, 0x7c, 0x86, 0xca, 0xdc, 0x88, 0x31, 0x2a, 0x73, 0x20, 0x33, + 0x89, 0x6f, 0xdc, 0x46, 0x5a, 0x7e, 0x70, 0x7e, 0x0b, 0x4d, 0x37, 0x0f, 0x99, 0xf7, 0x91, 0xca, + 0xdd, 0xce, 0x05, 0xe0, 0x23, 0x54, 0x13, 0x51, 0xd1, 0x90, 0x9f, 0x5c, 0xea, 0x34, 0x5d, 0x95, + 0xd7, 0x4e, 0x08, 0xe6, 0x1c, 0xa9, 0x57, 0x6c, 0x19, 0x4c, 0x49, 0x82, 0x3d, 0x54, 0xe1, 0x8b, + 0x20, 0x25, 0x5a, 0xf7, 0xc8, 0x92, 0xab, 0x62, 0xf1, 0x55, 0xd9, 0x8d, 0xdb, 0x67, 0x34, 0xee, + 0x3d, 0xbe, 0xfe, 0x71, 0x52, 0xf8, 0xfa, 0xf3, 0xa4, 0x33, 0xa1, 0xe9, 0x74, 0xe9, 0x5b, 0x01, + 0x8b, 0xec, 0x6c, 0xaf, 0xe4, 0xcf, 0x29, 0x84, 0x33, 0x3b, 0xfd, 0xbc, 0x20, 0x20, 0x0c, 0xe0, + 0xca, 0xce, 0xe6, 0x1c, 0xfd, 0x97, 0x25, 0xb2, 0x3d, 0xf4, 0xef, 0x99, 0xbc, 0x40, 0xea, 0x4a, + 0x8a, 0xc4, 0x74, 0x5a, 0xf7, 0xc1, 0x2d, 0x37, 0x91, 0xb5, 0x74, 0xb7, 0xb6, 0x87, 0x4f, 0x51, + 0xf5, 0x3c, 0x48, 0x29, 0x8b, 0xf1, 0x01, 0xd2, 0x2e, 0x87, 0xef, 0x46, 0x83, 0xbe, 0xf3, 0xd2, + 0x19, 0x5c, 0xb4, 0x0a, 0xb8, 0x86, 0xca, 0x6f, 0x9c, 0xe1, 0xfb, 0x96, 0x82, 0x35, 0xa4, 0xba, + 0x83, 0xfe, 0xc0, 0xb9, 0x1a, 0xb4, 0x8a, 0x1c, 0xee, 0x5d, 0xba, 0xc3, 0x56, 0xb9, 0x37, 0xbb, + 0x5e, 0x1b, 0xca, 0xcd, 0xda, 0x50, 0x7e, 0xad, 0x0d, 0xe5, 0xcb, 0xc6, 0x28, 0xdc, 0x6c, 0x8c, + 0xc2, 0xf7, 0x8d, 0x51, 0xf8, 0xf0, 0x36, 0x37, 0xb4, 0xb3, 0xfd, 0x43, 0xaf, 0x3d, 0x1f, 0xf6, + 0x0f, 0xf8, 0x34, 0x60, 0x09, 0xc9, 0x97, 0x53, 0x8f, 0xc6, 0x76, 0xc4, 0xc2, 0xe5, 0x9c, 0xc0, + 0x1f, 0xaf, 0x5b, 0x64, 0xe4, 0x57, 0xc5, 0xdb, 0x7b, 0xf2, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xf3, + 0xf2, 0xce, 0xa8, 0x03, 0x04, 0x00, 0x00, +} + +func (m *Namespace) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Namespace) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Namespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressRoles) > 0 { + for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.BurnsPaused { + i-- + if m.BurnsPaused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.SendsPaused { + i-- + if m.SendsPaused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.MintsPaused { + i-- + if m.MintsPaused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.WasmHook) > 0 { + i -= len(m.WasmHook) + copy(dAtA[i:], m.WasmHook) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.WasmHook))) + i-- + dAtA[i] = 0x12 + } + if len(m.Denom) > 0 { + i -= len(m.Denom) + copy(dAtA[i:], m.Denom) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Denom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AddressRoles) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AddressRoles) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Roles[iNdEx]))) + 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 (m *Role) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Role) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Role) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Permissions != 0 { + i = encodeVarintPermissions(dAtA, i, uint64(m.Permissions)) + i-- + dAtA[i] = 0x10 + } + if len(m.Role) > 0 { + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintPermissions(dAtA, i, uint64(len(m.Role))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RoleIDs) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleIDs) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RoleIDs) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.RoleIds) > 0 { + dAtA2 := make([]byte, len(m.RoleIds)*10) + var j1 int + for _, num := range m.RoleIds { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintPermissions(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Voucher) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Voucher) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Voucher) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Coins) > 0 { + for iNdEx := len(m.Coins) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Coins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermissions(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + 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 + if m.Voucher != nil { + { + size, err := m.Voucher.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + 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 + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Namespace) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Denom) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + l = len(m.WasmHook) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.MintsPaused { + n += 2 + } + if m.SendsPaused { + n += 2 + } + if m.BurnsPaused { + n += 2 + } + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } + } + if len(m.AddressRoles) > 0 { + for _, e := range m.AddressRoles { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *AddressRoles) 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)) + } + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovPermissions(uint64(l)) + } + } + return n +} + +func (m *Role) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Role) + if l > 0 { + n += 1 + l + sovPermissions(uint64(l)) + } + if m.Permissions != 0 { + n += 1 + sovPermissions(uint64(m.Permissions)) + } + return n +} + +func (m *RoleIDs) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.RoleIds) > 0 { + l = 0 + for _, e := range m.RoleIds { + l += sovPermissions(uint64(e)) + } + n += 1 + sovPermissions(uint64(l)) + l + } + return n +} + +func (m *Voucher) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Coins) > 0 { + for _, e := range m.Coins { + l = e.Size() + n += 1 + l + sovPermissions(uint64(l)) + } + } + 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)) + } + if m.Voucher != nil { + 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 +} +func sozPermissions(x uint64) (n int) { + return sovPermissions(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Namespace) Unmarshal(dAtA []byte) 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: Namespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Namespace: 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 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.Denom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", 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.WasmHook = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MintsPaused = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SendsPaused = bool(v != 0) + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BurnsPaused = bool(v != 0) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", 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 + } + m.RolePermissions = append(m.RolePermissions, &Role{}) + if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", 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 + } + m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) + if err := m.AddressRoles[len(m.AddressRoles)-1].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 (m *AddressRoles) Unmarshal(dAtA []byte) 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: AddressRoles: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressRoles: 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 Roles", 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.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + 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 (m *Role) Unmarshal(dAtA []byte) 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: Role: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", 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.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) + } + m.Permissions = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Permissions |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + 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 (m *RoleIDs) Unmarshal(dAtA []byte) 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: RoleIDs: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleIDs: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType == 0 { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RoleIds = append(m.RoleIds, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthPermissions + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthPermissions + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.RoleIds) == 0 { + m.RoleIds = make([]uint32, 0, elementCount) + } + for iNdEx < postIndex { + var v uint32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermissions + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RoleIds = append(m.RoleIds, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field RoleIds", wireType) + } + 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 (m *Voucher) Unmarshal(dAtA []byte) 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: Voucher: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Voucher: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Coins", 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 + } + m.Coins = append(m.Coins, types.Coin{}) + if err := m.Coins[len(m.Coins)-1].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 (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 m.Voucher == nil { + m.Voucher = &Voucher{} + } + 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 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowPermissions + } + 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, ErrIntOverflowPermissions + } + 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, ErrIntOverflowPermissions + } + 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, ErrInvalidLengthPermissions + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupPermissions + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthPermissions + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthPermissions = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPermissions = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupPermissions = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/query.pb.go b/chain/permissions/types/query.pb.go new file mode 100644 index 00000000..78206717 --- /dev/null +++ b/chain/permissions/types/query.pb.go @@ -0,0 +1,2620 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/query.proto + +package types + +import ( + context "context" + fmt "fmt" + 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/query" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// QueryParamsRequest is the request type for the Query/Params RPC method. +type QueryParamsRequest struct { +} + +func (m *QueryParamsRequest) Reset() { *m = QueryParamsRequest{} } +func (m *QueryParamsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryParamsRequest) ProtoMessage() {} +func (*QueryParamsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{0} +} +func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryParamsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryParamsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryParamsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryParamsRequest.Merge(m, src) +} +func (m *QueryParamsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryParamsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryParamsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryParamsRequest proto.InternalMessageInfo + +// QueryParamsResponse is the response type for the Query/Params RPC method. +type QueryParamsResponse struct { + // params defines the parameters of the module. + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` +} + +func (m *QueryParamsResponse) Reset() { *m = QueryParamsResponse{} } +func (m *QueryParamsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryParamsResponse) ProtoMessage() {} +func (*QueryParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{1} +} +func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryParamsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryParamsResponse.Merge(m, src) +} +func (m *QueryParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryParamsResponse proto.InternalMessageInfo + +func (m *QueryParamsResponse) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// QueryAllNamespacesRequest is the request type for the Query/AllNamespaces RPC +// method. +type QueryAllNamespacesRequest struct { +} + +func (m *QueryAllNamespacesRequest) Reset() { *m = QueryAllNamespacesRequest{} } +func (m *QueryAllNamespacesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAllNamespacesRequest) ProtoMessage() {} +func (*QueryAllNamespacesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{2} +} +func (m *QueryAllNamespacesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllNamespacesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllNamespacesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllNamespacesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllNamespacesRequest.Merge(m, src) +} +func (m *QueryAllNamespacesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAllNamespacesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllNamespacesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllNamespacesRequest proto.InternalMessageInfo + +// QueryAllNamespacesResponse is the response type for the Query/AllNamespaces +// RPC method. +type QueryAllNamespacesResponse struct { + Namespaces []*Namespace `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` +} + +func (m *QueryAllNamespacesResponse) Reset() { *m = QueryAllNamespacesResponse{} } +func (m *QueryAllNamespacesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAllNamespacesResponse) ProtoMessage() {} +func (*QueryAllNamespacesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{3} +} +func (m *QueryAllNamespacesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAllNamespacesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAllNamespacesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAllNamespacesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllNamespacesResponse.Merge(m, src) +} +func (m *QueryAllNamespacesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAllNamespacesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllNamespacesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAllNamespacesResponse proto.InternalMessageInfo + +func (m *QueryAllNamespacesResponse) GetNamespaces() []*Namespace { + if m != nil { + return m.Namespaces + } + return nil +} + +// QueryNamespaceByDenomRequest is the request type for the +// Query/NamespaceByDenom RPC method. +type QueryNamespaceByDenomRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + IncludeRoles bool `protobuf:"varint,2,opt,name=include_roles,json=includeRoles,proto3" json:"include_roles,omitempty"` +} + +func (m *QueryNamespaceByDenomRequest) Reset() { *m = QueryNamespaceByDenomRequest{} } +func (m *QueryNamespaceByDenomRequest) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceByDenomRequest) ProtoMessage() {} +func (*QueryNamespaceByDenomRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{4} +} +func (m *QueryNamespaceByDenomRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespaceByDenomRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespaceByDenomRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespaceByDenomRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceByDenomRequest.Merge(m, src) +} +func (m *QueryNamespaceByDenomRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespaceByDenomRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceByDenomRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespaceByDenomRequest proto.InternalMessageInfo + +func (m *QueryNamespaceByDenomRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *QueryNamespaceByDenomRequest) GetIncludeRoles() bool { + if m != nil { + return m.IncludeRoles + } + return false +} + +// QueryNamespaceByDenomResponse is the response type for the +// Query/NamespaceByDenom RPC method. +type QueryNamespaceByDenomResponse struct { + Namespace *Namespace `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` +} + +func (m *QueryNamespaceByDenomResponse) Reset() { *m = QueryNamespaceByDenomResponse{} } +func (m *QueryNamespaceByDenomResponse) String() string { return proto.CompactTextString(m) } +func (*QueryNamespaceByDenomResponse) ProtoMessage() {} +func (*QueryNamespaceByDenomResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{5} +} +func (m *QueryNamespaceByDenomResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryNamespaceByDenomResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryNamespaceByDenomResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryNamespaceByDenomResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryNamespaceByDenomResponse.Merge(m, src) +} +func (m *QueryNamespaceByDenomResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryNamespaceByDenomResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryNamespaceByDenomResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryNamespaceByDenomResponse proto.InternalMessageInfo + +func (m *QueryNamespaceByDenomResponse) GetNamespace() *Namespace { + if m != nil { + return m.Namespace + } + return nil +} + +// QueryAddressesByRoleRequest is the request type for the Query/AddressesByRole +// RPC method. +type QueryAddressesByRoleRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` +} + +func (m *QueryAddressesByRoleRequest) Reset() { *m = QueryAddressesByRoleRequest{} } +func (m *QueryAddressesByRoleRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAddressesByRoleRequest) ProtoMessage() {} +func (*QueryAddressesByRoleRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{6} +} +func (m *QueryAddressesByRoleRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAddressesByRoleRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAddressesByRoleRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAddressesByRoleRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAddressesByRoleRequest.Merge(m, src) +} +func (m *QueryAddressesByRoleRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAddressesByRoleRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAddressesByRoleRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAddressesByRoleRequest proto.InternalMessageInfo + +func (m *QueryAddressesByRoleRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *QueryAddressesByRoleRequest) GetRole() string { + if m != nil { + return m.Role + } + return "" +} + +// QueryAddressesByRoleResponse is the response type for the +// Query/AddressesByRole RPC method. +type QueryAddressesByRoleResponse struct { + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (m *QueryAddressesByRoleResponse) Reset() { *m = QueryAddressesByRoleResponse{} } +func (m *QueryAddressesByRoleResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAddressesByRoleResponse) ProtoMessage() {} +func (*QueryAddressesByRoleResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{7} +} +func (m *QueryAddressesByRoleResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAddressesByRoleResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAddressesByRoleResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAddressesByRoleResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAddressesByRoleResponse.Merge(m, src) +} +func (m *QueryAddressesByRoleResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAddressesByRoleResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAddressesByRoleResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAddressesByRoleResponse proto.InternalMessageInfo + +func (m *QueryAddressesByRoleResponse) GetAddresses() []string { + if m != nil { + return m.Addresses + } + return nil +} + +type QueryAddressRolesRequest struct { + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *QueryAddressRolesRequest) Reset() { *m = QueryAddressRolesRequest{} } +func (m *QueryAddressRolesRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAddressRolesRequest) ProtoMessage() {} +func (*QueryAddressRolesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{8} +} +func (m *QueryAddressRolesRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAddressRolesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAddressRolesRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAddressRolesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAddressRolesRequest.Merge(m, src) +} +func (m *QueryAddressRolesRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryAddressRolesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAddressRolesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAddressRolesRequest proto.InternalMessageInfo + +func (m *QueryAddressRolesRequest) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +func (m *QueryAddressRolesRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type QueryAddressRolesResponse struct { + Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"` +} + +func (m *QueryAddressRolesResponse) Reset() { *m = QueryAddressRolesResponse{} } +func (m *QueryAddressRolesResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAddressRolesResponse) ProtoMessage() {} +func (*QueryAddressRolesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{9} +} +func (m *QueryAddressRolesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryAddressRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryAddressRolesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryAddressRolesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAddressRolesResponse.Merge(m, src) +} +func (m *QueryAddressRolesResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryAddressRolesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAddressRolesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryAddressRolesResponse proto.InternalMessageInfo + +func (m *QueryAddressRolesResponse) GetRoles() []string { + if m != nil { + return m.Roles + } + return nil +} + +type QueryVouchersForAddressRequest struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *QueryVouchersForAddressRequest) Reset() { *m = QueryVouchersForAddressRequest{} } +func (m *QueryVouchersForAddressRequest) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersForAddressRequest) ProtoMessage() {} +func (*QueryVouchersForAddressRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{10} +} +func (m *QueryVouchersForAddressRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersForAddressRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersForAddressRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersForAddressRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersForAddressRequest.Merge(m, src) +} +func (m *QueryVouchersForAddressRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersForAddressRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersForAddressRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersForAddressRequest proto.InternalMessageInfo + +func (m *QueryVouchersForAddressRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +type QueryVouchersForAddressResponse struct { + Vouchers github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=vouchers,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"vouchers,omitempty"` +} + +func (m *QueryVouchersForAddressResponse) Reset() { *m = QueryVouchersForAddressResponse{} } +func (m *QueryVouchersForAddressResponse) String() string { return proto.CompactTextString(m) } +func (*QueryVouchersForAddressResponse) ProtoMessage() {} +func (*QueryVouchersForAddressResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_e0ae50f1018498b3, []int{11} +} +func (m *QueryVouchersForAddressResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryVouchersForAddressResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryVouchersForAddressResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *QueryVouchersForAddressResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryVouchersForAddressResponse.Merge(m, src) +} +func (m *QueryVouchersForAddressResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryVouchersForAddressResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryVouchersForAddressResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryVouchersForAddressResponse proto.InternalMessageInfo + +func (m *QueryVouchersForAddressResponse) GetVouchers() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Vouchers + } + return nil +} + +func init() { + proto.RegisterType((*QueryParamsRequest)(nil), "injective.permissions.v1beta1.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "injective.permissions.v1beta1.QueryParamsResponse") + proto.RegisterType((*QueryAllNamespacesRequest)(nil), "injective.permissions.v1beta1.QueryAllNamespacesRequest") + proto.RegisterType((*QueryAllNamespacesResponse)(nil), "injective.permissions.v1beta1.QueryAllNamespacesResponse") + proto.RegisterType((*QueryNamespaceByDenomRequest)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomRequest") + proto.RegisterType((*QueryNamespaceByDenomResponse)(nil), "injective.permissions.v1beta1.QueryNamespaceByDenomResponse") + proto.RegisterType((*QueryAddressesByRoleRequest)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleRequest") + proto.RegisterType((*QueryAddressesByRoleResponse)(nil), "injective.permissions.v1beta1.QueryAddressesByRoleResponse") + proto.RegisterType((*QueryAddressRolesRequest)(nil), "injective.permissions.v1beta1.QueryAddressRolesRequest") + proto.RegisterType((*QueryAddressRolesResponse)(nil), "injective.permissions.v1beta1.QueryAddressRolesResponse") + proto.RegisterType((*QueryVouchersForAddressRequest)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressRequest") + proto.RegisterType((*QueryVouchersForAddressResponse)(nil), "injective.permissions.v1beta1.QueryVouchersForAddressResponse") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/query.proto", fileDescriptor_e0ae50f1018498b3) +} + +var fileDescriptor_e0ae50f1018498b3 = []byte{ + // 816 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0x4d, 0x4f, 0xdb, 0x4a, + 0x14, 0xcd, 0xf0, 0x80, 0x47, 0x06, 0xd0, 0x7b, 0x9a, 0x66, 0x11, 0x0c, 0x38, 0xc8, 0x15, 0x6a, + 0xfa, 0x11, 0xbb, 0x09, 0x42, 0xe5, 0xab, 0x95, 0x1a, 0x2a, 0xfa, 0xa1, 0xaa, 0x2a, 0x5e, 0x54, + 0x2a, 0x9b, 0xc8, 0x71, 0x06, 0xe3, 0x62, 0x7b, 0x8c, 0xc7, 0x41, 0xca, 0xa2, 0x9b, 0xee, 0xba, + 0xab, 0xd4, 0x7d, 0xd5, 0x75, 0xff, 0x02, 0xdb, 0x2e, 0x58, 0x22, 0x75, 0xd3, 0x15, 0xad, 0xa0, + 0xab, 0xfe, 0x8a, 0xca, 0xe3, 0xb1, 0xe3, 0x10, 0x12, 0x87, 0x74, 0x45, 0x66, 0xee, 0x3d, 0xf7, + 0x9e, 0x73, 0x3d, 0xf7, 0x08, 0x78, 0xd3, 0x74, 0xde, 0x60, 0xdd, 0x37, 0x0f, 0xb1, 0xe2, 0x62, + 0xcf, 0x36, 0x29, 0x35, 0x89, 0x43, 0x95, 0xc3, 0x72, 0x1d, 0xfb, 0x5a, 0x59, 0x39, 0x68, 0x62, + 0xaf, 0x25, 0xbb, 0x1e, 0xf1, 0x09, 0x9a, 0x8f, 0x53, 0xe5, 0x44, 0xaa, 0xcc, 0x53, 0x85, 0x9c, + 0x41, 0x0c, 0xc2, 0x32, 0x95, 0xe0, 0x57, 0x08, 0x12, 0xe6, 0x0c, 0x42, 0x0c, 0x0b, 0x2b, 0x9a, + 0x6b, 0x2a, 0x9a, 0xe3, 0x10, 0x5f, 0xf3, 0x19, 0x2a, 0x8c, 0x8a, 0x3a, 0xa1, 0x36, 0xa1, 0x4a, + 0x5d, 0xa3, 0x38, 0xee, 0xa9, 0x13, 0xd3, 0xe1, 0xf1, 0x5b, 0xc9, 0x38, 0xe3, 0x12, 0x67, 0xb9, + 0x9a, 0x61, 0x3a, 0xac, 0x58, 0x94, 0xdb, 0x5f, 0x89, 0xab, 0x79, 0x9a, 0x1d, 0xf5, 0xbd, 0xdd, + 0x3f, 0xd7, 0xc0, 0x0e, 0xa6, 0x66, 0x94, 0xac, 0xa4, 0x14, 0x4e, 0xcc, 0x82, 0x01, 0xa4, 0x1c, + 0x44, 0xdb, 0x01, 0xd7, 0x97, 0xac, 0xa5, 0x8a, 0x0f, 0x9a, 0x98, 0xfa, 0xd2, 0x0e, 0xbc, 0xd6, + 0x71, 0x4b, 0x5d, 0xe2, 0x50, 0x8c, 0x36, 0xe1, 0x78, 0x48, 0x2d, 0x0f, 0x16, 0x40, 0x71, 0xb2, + 0xb2, 0x28, 0xf7, 0x1d, 0xb3, 0x1c, 0xc2, 0xab, 0xa3, 0xc7, 0xa7, 0x85, 0x8c, 0xca, 0xa1, 0xd2, + 0x2c, 0x9c, 0x61, 0xb5, 0x1f, 0x5a, 0xd6, 0x0b, 0xcd, 0xc6, 0xd4, 0xd5, 0x74, 0x1c, 0x37, 0xde, + 0x85, 0xc2, 0x65, 0x41, 0xde, 0xff, 0x09, 0x84, 0x4e, 0x7c, 0x9b, 0x07, 0x0b, 0xff, 0x14, 0x27, + 0x2b, 0xc5, 0x14, 0x0e, 0x71, 0x19, 0x35, 0x81, 0x95, 0x5e, 0xc3, 0x39, 0xd6, 0x27, 0x8e, 0x56, + 0x5b, 0x8f, 0xb0, 0x43, 0x6c, 0xce, 0x03, 0xe5, 0xe0, 0x58, 0x23, 0x38, 0x33, 0xa1, 0x59, 0x35, + 0x3c, 0xa0, 0xeb, 0x70, 0xda, 0x74, 0x74, 0xab, 0xd9, 0xc0, 0x35, 0x8f, 0x58, 0x98, 0xe6, 0x47, + 0x16, 0x40, 0x71, 0x42, 0x9d, 0xe2, 0x97, 0x6a, 0x70, 0x27, 0x19, 0x70, 0xbe, 0x47, 0x69, 0xae, + 0x62, 0x0b, 0x66, 0x63, 0x26, 0x7c, 0x90, 0x83, 0x8b, 0x68, 0x43, 0xa5, 0xc7, 0x70, 0x36, 0x9c, + 0x55, 0xa3, 0xe1, 0x61, 0x4a, 0x31, 0xad, 0xb6, 0x02, 0x06, 0xfd, 0x25, 0x20, 0x38, 0x1a, 0x50, + 0x67, 0xcc, 0xb3, 0x2a, 0xfb, 0x2d, 0x6d, 0xf0, 0x61, 0x74, 0x15, 0xe2, 0x84, 0xe7, 0x60, 0x56, + 0x8b, 0x42, 0x6c, 0xea, 0x59, 0xb5, 0x7d, 0x21, 0x3d, 0x83, 0xf9, 0x24, 0x9a, 0x0d, 0xa1, 0x3f, + 0x87, 0x3c, 0xfc, 0x97, 0xc3, 0x39, 0x8d, 0xe8, 0x28, 0x95, 0xa3, 0xb7, 0xd1, 0x51, 0x8b, 0xd3, + 0xc8, 0xc1, 0xb1, 0x70, 0xea, 0x21, 0x85, 0xf0, 0x20, 0xad, 0x41, 0x91, 0x41, 0x5e, 0x91, 0xa6, + 0xbe, 0x87, 0x3d, 0xba, 0x45, 0xbc, 0x08, 0xcd, 0x49, 0x24, 0xda, 0x81, 0xce, 0x76, 0x9f, 0x01, + 0x2c, 0xf4, 0x04, 0xf3, 0xae, 0x6f, 0xe1, 0xc4, 0x21, 0x8f, 0xf2, 0x17, 0x37, 0x23, 0x87, 0x9b, + 0x2e, 0x07, 0x9b, 0x1e, 0x7f, 0xa2, 0x4d, 0x62, 0x3a, 0xd5, 0xad, 0xe0, 0xa5, 0xff, 0x3e, 0x2d, + 0xa0, 0x08, 0x72, 0x87, 0xd8, 0xa6, 0x8f, 0x6d, 0xd7, 0x6f, 0x7d, 0xf9, 0x51, 0x28, 0x1a, 0xa6, + 0xbf, 0xd7, 0xac, 0xcb, 0x3a, 0xb1, 0x15, 0x6e, 0x16, 0xe1, 0x9f, 0x12, 0x6d, 0xec, 0x2b, 0x7e, + 0xcb, 0xc5, 0x94, 0x95, 0xa1, 0x6a, 0xdc, 0xb2, 0xf2, 0x3e, 0x0b, 0xc7, 0x18, 0x45, 0xf4, 0x09, + 0xc0, 0xf1, 0x70, 0xa1, 0x50, 0x39, 0xe5, 0xb9, 0x74, 0x6f, 0xb4, 0x50, 0xb9, 0x0a, 0x24, 0x94, + 0x2e, 0x95, 0xde, 0x7d, 0xfb, 0xf5, 0x71, 0xe4, 0x06, 0x5a, 0x54, 0x06, 0xb1, 0x2b, 0x74, 0x04, + 0xe0, 0x74, 0xc7, 0xde, 0xa2, 0x95, 0x41, 0x9a, 0x5e, 0xe6, 0x03, 0xc2, 0xea, 0x10, 0x48, 0xce, + 0x7a, 0x99, 0xb1, 0x56, 0x50, 0x29, 0x85, 0xb5, 0x66, 0x59, 0xb5, 0xb6, 0x23, 0xa0, 0x63, 0x00, + 0xff, 0xbf, 0xb8, 0xb2, 0x68, 0x7d, 0x10, 0x1a, 0x3d, 0x3c, 0x44, 0xd8, 0x18, 0x0e, 0xcc, 0x65, + 0xac, 0x32, 0x19, 0x4b, 0xa8, 0x9c, 0x22, 0x23, 0x96, 0x50, 0xab, 0xb7, 0x6a, 0xe1, 0x7e, 0x1d, + 0x01, 0x38, 0x95, 0xdc, 0x20, 0x74, 0x6f, 0xa0, 0x69, 0x76, 0xef, 0xaf, 0xb0, 0x72, 0x75, 0x20, + 0xa7, 0xbf, 0xc2, 0xe8, 0x57, 0xd0, 0xdd, 0xb4, 0xaf, 0x10, 0xf9, 0x48, 0x40, 0x3f, 0xd8, 0x68, + 0xf4, 0x15, 0xc0, 0xff, 0x2e, 0x38, 0x11, 0x5a, 0xbb, 0x02, 0x8f, 0x0b, 0x3e, 0x28, 0xac, 0x0f, + 0x85, 0xfd, 0x6b, 0x19, 0x27, 0x00, 0xa2, 0x6e, 0x5b, 0x41, 0xf7, 0x07, 0x61, 0xd3, 0xd3, 0xcb, + 0x84, 0x07, 0xc3, 0xc2, 0xb9, 0x9e, 0x75, 0xa6, 0x67, 0x19, 0x2d, 0xa5, 0xe8, 0x89, 0xfc, 0xa7, + 0xb6, 0x4b, 0xbc, 0x1a, 0x17, 0x57, 0xdd, 0x3f, 0x3e, 0x13, 0xc1, 0xc9, 0x99, 0x08, 0x7e, 0x9e, + 0x89, 0xe0, 0xc3, 0xb9, 0x98, 0x39, 0x39, 0x17, 0x33, 0xdf, 0xcf, 0xc5, 0xcc, 0xce, 0x76, 0xc2, + 0xd9, 0x9e, 0x46, 0x85, 0x9f, 0x6b, 0x75, 0xda, 0x6e, 0x53, 0xd2, 0x89, 0x87, 0x93, 0xc7, 0x3d, + 0xcd, 0x74, 0x14, 0x9b, 0x34, 0x9a, 0x16, 0xa6, 0x1d, 0x1c, 0x98, 0x11, 0xd6, 0xc7, 0xd9, 0xff, + 0x27, 0x4b, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x50, 0xbf, 0x64, 0x1e, 0xf5, 0x09, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QueryClient interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // AllNamespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) + // NamespaceByDenom defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) + // AddressRoles defines a gRPC query method that returns address roles in the + // namespace + AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) + // AddressesByRole defines a gRPC query method that returns a namespace's + // roles associated with the provided address. + AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) + // VouchersForAddress defines a gRPC query method that returns a map of + // vouchers that are held by permissions module for this address, keyed by the + // originator address + VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) +} + +type queryClient struct { + cc grpc1.ClientConn +} + +func NewQueryClient(cc grpc1.ClientConn) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/Params", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) AllNamespaces(ctx context.Context, in *QueryAllNamespacesRequest, opts ...grpc.CallOption) (*QueryAllNamespacesResponse, error) { + out := new(QueryAllNamespacesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AllNamespaces", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) NamespaceByDenom(ctx context.Context, in *QueryNamespaceByDenomRequest, opts ...grpc.CallOption) (*QueryNamespaceByDenomResponse, error) { + out := new(QueryNamespaceByDenomResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/NamespaceByDenom", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) AddressRoles(ctx context.Context, in *QueryAddressRolesRequest, opts ...grpc.CallOption) (*QueryAddressRolesResponse, error) { + out := new(QueryAddressRolesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressRoles", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) AddressesByRole(ctx context.Context, in *QueryAddressesByRoleRequest, opts ...grpc.CallOption) (*QueryAddressesByRoleResponse, error) { + out := new(QueryAddressesByRoleResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/AddressesByRole", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) VouchersForAddress(ctx context.Context, in *QueryVouchersForAddressRequest, opts ...grpc.CallOption) (*QueryVouchersForAddressResponse, error) { + out := new(QueryVouchersForAddressResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Query/VouchersForAddress", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// QueryServer is the server API for Query service. +type QueryServer interface { + // Params defines a gRPC query method that returns the permissions module's + // parameters. + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // AllNamespaces defines a gRPC query method that returns the permissions + // module's created namespaces. + AllNamespaces(context.Context, *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) + // NamespaceByDenom defines a gRPC query method that returns the permissions + // module's namespace associated with the provided denom. + NamespaceByDenom(context.Context, *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) + // AddressRoles defines a gRPC query method that returns address roles in the + // namespace + AddressRoles(context.Context, *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) + // AddressesByRole defines a gRPC query method that returns a namespace's + // roles associated with the provided address. + AddressesByRole(context.Context, *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) + // VouchersForAddress defines a gRPC query method that returns a map of + // vouchers that are held by permissions module for this address, keyed by the + // originator address + VouchersForAddress(context.Context, *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) +} + +// UnimplementedQueryServer can be embedded to have forward compatible implementations. +type UnimplementedQueryServer struct { +} + +func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (*UnimplementedQueryServer) AllNamespaces(ctx context.Context, req *QueryAllNamespacesRequest) (*QueryAllNamespacesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AllNamespaces not implemented") +} +func (*UnimplementedQueryServer) NamespaceByDenom(ctx context.Context, req *QueryNamespaceByDenomRequest) (*QueryNamespaceByDenomResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NamespaceByDenom not implemented") +} +func (*UnimplementedQueryServer) AddressRoles(ctx context.Context, req *QueryAddressRolesRequest) (*QueryAddressRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddressRoles not implemented") +} +func (*UnimplementedQueryServer) AddressesByRole(ctx context.Context, req *QueryAddressesByRoleRequest) (*QueryAddressesByRoleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddressesByRole not implemented") +} +func (*UnimplementedQueryServer) VouchersForAddress(ctx context.Context, req *QueryVouchersForAddressRequest) (*QueryVouchersForAddressResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method VouchersForAddress not implemented") +} + +func RegisterQueryServer(s grpc1.Server, srv QueryServer) { + s.RegisterService(&_Query_serviceDesc, srv) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/Params", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_AllNamespaces_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllNamespacesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).AllNamespaces(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/AllNamespaces", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).AllNamespaces(ctx, req.(*QueryAllNamespacesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_NamespaceByDenom_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryNamespaceByDenomRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).NamespaceByDenom(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/NamespaceByDenom", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).NamespaceByDenom(ctx, req.(*QueryNamespaceByDenomRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_AddressRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAddressRolesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).AddressRoles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/AddressRoles", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).AddressRoles(ctx, req.(*QueryAddressRolesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_AddressesByRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAddressesByRoleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).AddressesByRole(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/AddressesByRole", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).AddressesByRole(ctx, req.(*QueryAddressesByRoleRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_VouchersForAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryVouchersForAddressRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).VouchersForAddress(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Query/VouchersForAddress", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).VouchersForAddress(ctx, req.(*QueryVouchersForAddressRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "injective.permissions.v1beta1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "AllNamespaces", + Handler: _Query_AllNamespaces_Handler, + }, + { + MethodName: "NamespaceByDenom", + Handler: _Query_NamespaceByDenom_Handler, + }, + { + MethodName: "AddressRoles", + Handler: _Query_AddressRoles_Handler, + }, + { + MethodName: "AddressesByRole", + Handler: _Query_AddressesByRole_Handler, + }, + { + MethodName: "VouchersForAddress", + Handler: _Query_VouchersForAddress_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "injective/permissions/v1beta1/query.proto", +} + +func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Params.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 *QueryAllNamespacesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllNamespacesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllNamespacesRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryAllNamespacesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAllNamespacesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAllNamespacesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Namespaces) > 0 { + for iNdEx := len(m.Namespaces) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Namespaces[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 *QueryNamespaceByDenomRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceByDenomRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceByDenomRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IncludeRoles { + i-- + if m.IncludeRoles { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + 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 *QueryNamespaceByDenomResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryNamespaceByDenomResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryNamespaceByDenomResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + { + size, err := m.Namespace.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 *QueryAddressesByRoleRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAddressesByRoleRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAddressesByRoleRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Role) > 0 { + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Role))) + 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 *QueryAddressesByRoleResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAddressesByRoleResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAddressesByRoleResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Addresses) > 0 { + for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Addresses[iNdEx]) + copy(dAtA[i:], m.Addresses[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Addresses[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryAddressRolesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAddressRolesRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAddressRolesRequest) 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 *QueryAddressRolesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryAddressRolesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryAddressRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersForAddressRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersForAddressRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersForAddressRequest) 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] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryVouchersForAddressResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryVouchersForAddressResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryVouchersForAddressResponse) 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 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 *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) 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 *QueryAllNamespacesRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryAllNamespacesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Namespaces) > 0 { + for _, e := range m.Namespaces { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryNamespaceByDenomRequest) 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)) + } + if m.IncludeRoles { + n += 2 + } + return n +} + +func (m *QueryNamespaceByDenomResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Namespace != nil { + l = m.Namespace.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryAddressesByRoleRequest) 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.Role) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryAddressesByRoleResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Addresses) > 0 { + for _, s := range m.Addresses { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryAddressRolesRequest) 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 *QueryAddressRolesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovQuery(uint64(l)) + } + } + return n +} + +func (m *QueryVouchersForAddressRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryVouchersForAddressResponse) 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 sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) 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: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: 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 *QueryParamsResponse) Unmarshal(dAtA []byte) 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: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", 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.Params.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 *QueryAllNamespacesRequest) Unmarshal(dAtA []byte) 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: QueryAllNamespacesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllNamespacesRequest: 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 *QueryAllNamespacesResponse) Unmarshal(dAtA []byte) 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: QueryAllNamespacesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAllNamespacesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespaces", 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.Namespaces = append(m.Namespaces, &Namespace{}) + if err := m.Namespaces[len(m.Namespaces)-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 *QueryNamespaceByDenomRequest) Unmarshal(dAtA []byte) 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: QueryNamespaceByDenomRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceByDenomRequest: 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 != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IncludeRoles", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IncludeRoles = bool(v != 0) + 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 *QueryNamespaceByDenomResponse) Unmarshal(dAtA []byte) 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: QueryNamespaceByDenomResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryNamespaceByDenomResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", 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 m.Namespace == nil { + m.Namespace = &Namespace{} + } + if err := m.Namespace.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 *QueryAddressesByRoleRequest) Unmarshal(dAtA []byte) 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: QueryAddressesByRoleRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAddressesByRoleRequest: 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 Role", 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.Role = 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 *QueryAddressesByRoleResponse) Unmarshal(dAtA []byte) 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: QueryAddressesByRoleResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAddressesByRoleResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addresses", 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.Addresses = append(m.Addresses, 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 *QueryAddressRolesRequest) Unmarshal(dAtA []byte) 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: QueryAddressRolesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAddressRolesRequest: 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 *QueryAddressRolesResponse) Unmarshal(dAtA []byte) 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: QueryAddressRolesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryAddressRolesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", 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.Roles = append(m.Roles, 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 *QueryVouchersForAddressRequest) Unmarshal(dAtA []byte) 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: QueryVouchersForAddressRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersForAddressRequest: 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 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 *QueryVouchersForAddressResponse) Unmarshal(dAtA []byte) 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: QueryVouchersForAddressResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryVouchersForAddressResponse: 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, types.Coin{}) + 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 skipQuery(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, ErrIntOverflowQuery + } + 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, ErrIntOverflowQuery + } + 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, ErrIntOverflowQuery + } + 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, ErrInvalidLengthQuery + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupQuery + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthQuery + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthQuery = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowQuery = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupQuery = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/tx.pb.go b/chain/permissions/types/tx.pb.go new file mode 100644 index 00000000..7516812d --- /dev/null +++ b/chain/permissions/types/tx.pb.go @@ -0,0 +1,3968 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/permissions/v1beta1/tx.proto + +package types + +import ( + context "context" + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" + _ "github.com/cosmos/cosmos-sdk/x/bank/types" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type MsgUpdateParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // params defines the permissions parameters to update. + // + // NOTE: All parameters must be supplied. + Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` +} + +func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } +func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParams) ProtoMessage() {} +func (*MsgUpdateParams) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{0} +} +func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParams.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParams.Merge(m, src) +} +func (m *MsgUpdateParams) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParams proto.InternalMessageInfo + +func (m *MsgUpdateParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateParams) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +type MsgUpdateParamsResponse struct { +} + +func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse{} } +func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParamsResponse) ProtoMessage() {} +func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{1} +} +func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParamsResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParamsResponse.Merge(m, src) +} +func (m *MsgUpdateParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo + +type MsgCreateNamespace struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + Namespace Namespace `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace"` +} + +func (m *MsgCreateNamespace) Reset() { *m = MsgCreateNamespace{} } +func (m *MsgCreateNamespace) String() string { return proto.CompactTextString(m) } +func (*MsgCreateNamespace) ProtoMessage() {} +func (*MsgCreateNamespace) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{2} +} +func (m *MsgCreateNamespace) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateNamespace.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateNamespace) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateNamespace.Merge(m, src) +} +func (m *MsgCreateNamespace) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateNamespace) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateNamespace.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateNamespace proto.InternalMessageInfo + +func (m *MsgCreateNamespace) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgCreateNamespace) GetNamespace() Namespace { + if m != nil { + return m.Namespace + } + return Namespace{} +} + +type MsgCreateNamespaceResponse struct { +} + +func (m *MsgCreateNamespaceResponse) Reset() { *m = MsgCreateNamespaceResponse{} } +func (m *MsgCreateNamespaceResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCreateNamespaceResponse) ProtoMessage() {} +func (*MsgCreateNamespaceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{3} +} +func (m *MsgCreateNamespaceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCreateNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCreateNamespaceResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgCreateNamespaceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCreateNamespaceResponse.Merge(m, src) +} +func (m *MsgCreateNamespaceResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCreateNamespaceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCreateNamespaceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCreateNamespaceResponse proto.InternalMessageInfo + +type MsgDeleteNamespace struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` +} + +func (m *MsgDeleteNamespace) Reset() { *m = MsgDeleteNamespace{} } +func (m *MsgDeleteNamespace) String() string { return proto.CompactTextString(m) } +func (*MsgDeleteNamespace) ProtoMessage() {} +func (*MsgDeleteNamespace) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{4} +} +func (m *MsgDeleteNamespace) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeleteNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeleteNamespace.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeleteNamespace) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeleteNamespace.Merge(m, src) +} +func (m *MsgDeleteNamespace) XXX_Size() int { + return m.Size() +} +func (m *MsgDeleteNamespace) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeleteNamespace.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeleteNamespace proto.InternalMessageInfo + +func (m *MsgDeleteNamespace) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgDeleteNamespace) GetNamespaceDenom() string { + if m != nil { + return m.NamespaceDenom + } + return "" +} + +type MsgDeleteNamespaceResponse struct { +} + +func (m *MsgDeleteNamespaceResponse) Reset() { *m = MsgDeleteNamespaceResponse{} } +func (m *MsgDeleteNamespaceResponse) String() string { return proto.CompactTextString(m) } +func (*MsgDeleteNamespaceResponse) ProtoMessage() {} +func (*MsgDeleteNamespaceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{5} +} +func (m *MsgDeleteNamespaceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgDeleteNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgDeleteNamespaceResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgDeleteNamespaceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDeleteNamespaceResponse.Merge(m, src) +} +func (m *MsgDeleteNamespaceResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgDeleteNamespaceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDeleteNamespaceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgDeleteNamespaceResponse proto.InternalMessageInfo + +type MsgUpdateNamespace struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` + WasmHook *MsgUpdateNamespace_MsgSetWasmHook `protobuf:"bytes,3,opt,name=wasm_hook,json=wasmHook,proto3" json:"wasm_hook,omitempty"` + MintsPaused *MsgUpdateNamespace_MsgSetMintsPaused `protobuf:"bytes,4,opt,name=mints_paused,json=mintsPaused,proto3" json:"mints_paused,omitempty"` + SendsPaused *MsgUpdateNamespace_MsgSetSendsPaused `protobuf:"bytes,5,opt,name=sends_paused,json=sendsPaused,proto3" json:"sends_paused,omitempty"` + BurnsPaused *MsgUpdateNamespace_MsgSetBurnsPaused `protobuf:"bytes,6,opt,name=burns_paused,json=burnsPaused,proto3" json:"burns_paused,omitempty"` +} + +func (m *MsgUpdateNamespace) Reset() { *m = MsgUpdateNamespace{} } +func (m *MsgUpdateNamespace) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace) ProtoMessage() {} +func (*MsgUpdateNamespace) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6} +} +func (m *MsgUpdateNamespace) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespace.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespace) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace.Merge(m, src) +} +func (m *MsgUpdateNamespace) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespace) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespace proto.InternalMessageInfo + +func (m *MsgUpdateNamespace) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgUpdateNamespace) GetNamespaceDenom() string { + if m != nil { + return m.NamespaceDenom + } + return "" +} + +func (m *MsgUpdateNamespace) GetWasmHook() *MsgUpdateNamespace_MsgSetWasmHook { + if m != nil { + return m.WasmHook + } + return nil +} + +func (m *MsgUpdateNamespace) GetMintsPaused() *MsgUpdateNamespace_MsgSetMintsPaused { + if m != nil { + return m.MintsPaused + } + return nil +} + +func (m *MsgUpdateNamespace) GetSendsPaused() *MsgUpdateNamespace_MsgSetSendsPaused { + if m != nil { + return m.SendsPaused + } + return nil +} + +func (m *MsgUpdateNamespace) GetBurnsPaused() *MsgUpdateNamespace_MsgSetBurnsPaused { + if m != nil { + return m.BurnsPaused + } + return nil +} + +type MsgUpdateNamespace_MsgSetWasmHook struct { + NewValue string `protobuf:"bytes,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +} + +func (m *MsgUpdateNamespace_MsgSetWasmHook) Reset() { *m = MsgUpdateNamespace_MsgSetWasmHook{} } +func (m *MsgUpdateNamespace_MsgSetWasmHook) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_MsgSetWasmHook) ProtoMessage() {} +func (*MsgUpdateNamespace_MsgSetWasmHook) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 0} +} +func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.Merge(m, src) +} +func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespace_MsgSetWasmHook) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespace_MsgSetWasmHook proto.InternalMessageInfo + +func (m *MsgUpdateNamespace_MsgSetWasmHook) GetNewValue() string { + if m != nil { + return m.NewValue + } + return "" +} + +type MsgUpdateNamespace_MsgSetMintsPaused struct { + NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +} + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetMintsPaused{} } +func (m *MsgUpdateNamespace_MsgSetMintsPaused) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_MsgSetMintsPaused) ProtoMessage() {} +func (*MsgUpdateNamespace_MsgSetMintsPaused) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 1} +} +func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.Merge(m, src) +} +func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespace_MsgSetMintsPaused) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespace_MsgSetMintsPaused proto.InternalMessageInfo + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) GetNewValue() bool { + if m != nil { + return m.NewValue + } + return false +} + +type MsgUpdateNamespace_MsgSetSendsPaused struct { + NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +} + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetSendsPaused{} } +func (m *MsgUpdateNamespace_MsgSetSendsPaused) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_MsgSetSendsPaused) ProtoMessage() {} +func (*MsgUpdateNamespace_MsgSetSendsPaused) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 2} +} +func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.Merge(m, src) +} +func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespace_MsgSetSendsPaused) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespace_MsgSetSendsPaused proto.InternalMessageInfo + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) GetNewValue() bool { + if m != nil { + return m.NewValue + } + return false +} + +type MsgUpdateNamespace_MsgSetBurnsPaused struct { + NewValue bool `protobuf:"varint,1,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"` +} + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Reset() { *m = MsgUpdateNamespace_MsgSetBurnsPaused{} } +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespace_MsgSetBurnsPaused) ProtoMessage() {} +func (*MsgUpdateNamespace_MsgSetBurnsPaused) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{6, 3} +} +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.Merge(m, src) +} +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespace_MsgSetBurnsPaused proto.InternalMessageInfo + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) GetNewValue() bool { + if m != nil { + return m.NewValue + } + return false +} + +type MsgUpdateNamespaceResponse struct { +} + +func (m *MsgUpdateNamespaceResponse) Reset() { *m = MsgUpdateNamespaceResponse{} } +func (m *MsgUpdateNamespaceResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespaceResponse) ProtoMessage() {} +func (*MsgUpdateNamespaceResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{7} +} +func (m *MsgUpdateNamespaceResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespaceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespaceResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespaceResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespaceResponse.Merge(m, src) +} +func (m *MsgUpdateNamespaceResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespaceResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespaceResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespaceResponse proto.InternalMessageInfo + +type MsgUpdateNamespaceRoles struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` + RolePermissions []*Role `protobuf:"bytes,3,rep,name=role_permissions,json=rolePermissions,proto3" json:"role_permissions,omitempty"` + AddressRoles []*AddressRoles `protobuf:"bytes,4,rep,name=address_roles,json=addressRoles,proto3" json:"address_roles,omitempty"` +} + +func (m *MsgUpdateNamespaceRoles) Reset() { *m = MsgUpdateNamespaceRoles{} } +func (m *MsgUpdateNamespaceRoles) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespaceRoles) ProtoMessage() {} +func (*MsgUpdateNamespaceRoles) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{8} +} +func (m *MsgUpdateNamespaceRoles) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespaceRoles.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespaceRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespaceRoles.Merge(m, src) +} +func (m *MsgUpdateNamespaceRoles) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespaceRoles) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespaceRoles.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespaceRoles proto.InternalMessageInfo + +func (m *MsgUpdateNamespaceRoles) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgUpdateNamespaceRoles) GetNamespaceDenom() string { + if m != nil { + return m.NamespaceDenom + } + return "" +} + +func (m *MsgUpdateNamespaceRoles) GetRolePermissions() []*Role { + if m != nil { + return m.RolePermissions + } + return nil +} + +func (m *MsgUpdateNamespaceRoles) GetAddressRoles() []*AddressRoles { + if m != nil { + return m.AddressRoles + } + return nil +} + +type MsgUpdateNamespaceRolesResponse struct { +} + +func (m *MsgUpdateNamespaceRolesResponse) Reset() { *m = MsgUpdateNamespaceRolesResponse{} } +func (m *MsgUpdateNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateNamespaceRolesResponse) ProtoMessage() {} +func (*MsgUpdateNamespaceRolesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{9} +} +func (m *MsgUpdateNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgUpdateNamespaceRolesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateNamespaceRolesResponse.Merge(m, src) +} +func (m *MsgUpdateNamespaceRolesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateNamespaceRolesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateNamespaceRolesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateNamespaceRolesResponse proto.InternalMessageInfo + +type MsgRevokeNamespaceRoles struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + NamespaceDenom string `protobuf:"bytes,2,opt,name=namespace_denom,json=namespaceDenom,proto3" json:"namespace_denom,omitempty"` + AddressRolesToRevoke []*AddressRoles `protobuf:"bytes,3,rep,name=address_roles_to_revoke,json=addressRolesToRevoke,proto3" json:"address_roles_to_revoke,omitempty"` +} + +func (m *MsgRevokeNamespaceRoles) Reset() { *m = MsgRevokeNamespaceRoles{} } +func (m *MsgRevokeNamespaceRoles) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeNamespaceRoles) ProtoMessage() {} +func (*MsgRevokeNamespaceRoles) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{10} +} +func (m *MsgRevokeNamespaceRoles) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeNamespaceRoles) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeNamespaceRoles.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeNamespaceRoles) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeNamespaceRoles.Merge(m, src) +} +func (m *MsgRevokeNamespaceRoles) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeNamespaceRoles) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeNamespaceRoles.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeNamespaceRoles proto.InternalMessageInfo + +func (m *MsgRevokeNamespaceRoles) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgRevokeNamespaceRoles) GetNamespaceDenom() string { + if m != nil { + return m.NamespaceDenom + } + return "" +} + +func (m *MsgRevokeNamespaceRoles) GetAddressRolesToRevoke() []*AddressRoles { + if m != nil { + return m.AddressRolesToRevoke + } + return nil +} + +type MsgRevokeNamespaceRolesResponse struct { +} + +func (m *MsgRevokeNamespaceRolesResponse) Reset() { *m = MsgRevokeNamespaceRolesResponse{} } +func (m *MsgRevokeNamespaceRolesResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRevokeNamespaceRolesResponse) ProtoMessage() {} +func (*MsgRevokeNamespaceRolesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_ab9bfdcab1d9b6fa, []int{11} +} +func (m *MsgRevokeNamespaceRolesResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRevokeNamespaceRolesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *MsgRevokeNamespaceRolesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRevokeNamespaceRolesResponse.Merge(m, src) +} +func (m *MsgRevokeNamespaceRolesResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRevokeNamespaceRolesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRevokeNamespaceRolesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRevokeNamespaceRolesResponse proto.InternalMessageInfo + +type MsgClaimVoucher struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty" yaml:"sender"` + 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_ab9bfdcab1d9b6fa, []int{12} +} +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 + +func (m *MsgClaimVoucher) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *MsgClaimVoucher) GetDenom() string { + if m != nil { + return m.Denom + } + return "" +} + +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_ab9bfdcab1d9b6fa, []int{13} +} +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((*MsgUpdateParams)(nil), "injective.permissions.v1beta1.MsgUpdateParams") + proto.RegisterType((*MsgUpdateParamsResponse)(nil), "injective.permissions.v1beta1.MsgUpdateParamsResponse") + proto.RegisterType((*MsgCreateNamespace)(nil), "injective.permissions.v1beta1.MsgCreateNamespace") + proto.RegisterType((*MsgCreateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgCreateNamespaceResponse") + proto.RegisterType((*MsgDeleteNamespace)(nil), "injective.permissions.v1beta1.MsgDeleteNamespace") + proto.RegisterType((*MsgDeleteNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgDeleteNamespaceResponse") + proto.RegisterType((*MsgUpdateNamespace)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace") + proto.RegisterType((*MsgUpdateNamespace_MsgSetWasmHook)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetWasmHook") + proto.RegisterType((*MsgUpdateNamespace_MsgSetMintsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetMintsPaused") + proto.RegisterType((*MsgUpdateNamespace_MsgSetSendsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetSendsPaused") + proto.RegisterType((*MsgUpdateNamespace_MsgSetBurnsPaused)(nil), "injective.permissions.v1beta1.MsgUpdateNamespace.MsgSetBurnsPaused") + proto.RegisterType((*MsgUpdateNamespaceResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceResponse") + proto.RegisterType((*MsgUpdateNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRoles") + proto.RegisterType((*MsgUpdateNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgUpdateNamespaceRolesResponse") + proto.RegisterType((*MsgRevokeNamespaceRoles)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRoles") + proto.RegisterType((*MsgRevokeNamespaceRolesResponse)(nil), "injective.permissions.v1beta1.MsgRevokeNamespaceRolesResponse") + proto.RegisterType((*MsgClaimVoucher)(nil), "injective.permissions.v1beta1.MsgClaimVoucher") + proto.RegisterType((*MsgClaimVoucherResponse)(nil), "injective.permissions.v1beta1.MsgClaimVoucherResponse") +} + +func init() { + proto.RegisterFile("injective/permissions/v1beta1/tx.proto", fileDescriptor_ab9bfdcab1d9b6fa) +} + +var fileDescriptor_ab9bfdcab1d9b6fa = []byte{ + // 961 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4d, 0x6f, 0xe3, 0x44, + 0x18, 0xae, 0xb7, 0x1f, 0x34, 0xd3, 0xee, 0x96, 0x5a, 0x91, 0x9a, 0xf5, 0x82, 0x5b, 0xb2, 0x02, + 0x42, 0x56, 0xb5, 0x49, 0x57, 0xaa, 0x44, 0x0e, 0x08, 0x92, 0x3d, 0x80, 0xb4, 0x59, 0x05, 0x17, + 0x16, 0x09, 0x09, 0x59, 0xe3, 0x64, 0x70, 0x4c, 0x62, 0x8f, 0xe5, 0x71, 0x12, 0x7a, 0x5a, 0xc4, + 0x81, 0x03, 0x07, 0xc4, 0x91, 0x2b, 0xff, 0xa0, 0x07, 0xae, 0x70, 0xe2, 0xb0, 0xc7, 0x15, 0x27, + 0x4e, 0x2b, 0xd4, 0x1e, 0x7a, 0x47, 0xfc, 0x00, 0x34, 0x9e, 0x89, 0xed, 0x4c, 0xd2, 0xd8, 0xe9, + 0x6a, 0xb9, 0xb4, 0x79, 0xbf, 0x9f, 0xe7, 0xb1, 0xde, 0x19, 0x1b, 0xbc, 0xe5, 0x78, 0x5f, 0xa3, + 0x4e, 0xe8, 0x8c, 0x90, 0xee, 0xa3, 0xc0, 0x75, 0x08, 0x71, 0xb0, 0x47, 0xf4, 0x51, 0xcd, 0x42, + 0x21, 0xac, 0xe9, 0xe1, 0x37, 0x9a, 0x1f, 0xe0, 0x10, 0xcb, 0xaf, 0xc7, 0x79, 0x5a, 0x2a, 0x4f, + 0xe3, 0x79, 0x4a, 0xd1, 0xc6, 0x36, 0x8e, 0x32, 0x75, 0xfa, 0x8b, 0x15, 0x29, 0x6a, 0x07, 0x13, + 0x17, 0x13, 0xdd, 0x82, 0x04, 0xc5, 0x2d, 0x3b, 0xd8, 0xf1, 0x66, 0xe2, 0x5e, 0x3f, 0x8e, 0x53, + 0x83, 0xc7, 0xf7, 0x78, 0xdc, 0x25, 0xb6, 0x3e, 0xaa, 0xd1, 0x7f, 0x3c, 0x70, 0x9b, 0x05, 0x4c, + 0x36, 0x91, 0x19, 0x3c, 0x54, 0x5d, 0x4c, 0xc8, 0x87, 0x01, 0x74, 0x27, 0xb9, 0x7a, 0x46, 0x6e, + 0x8a, 0x28, 0x2b, 0xd8, 0x85, 0xae, 0xe3, 0x61, 0x3d, 0xfa, 0xcb, 0x5c, 0xe5, 0xdf, 0x25, 0xb0, + 0xd3, 0x22, 0xf6, 0x67, 0x7e, 0x17, 0x86, 0xa8, 0x1d, 0x75, 0x97, 0x8f, 0x41, 0x01, 0x0e, 0xc3, + 0x1e, 0x0e, 0x9c, 0xf0, 0xb4, 0x24, 0x1d, 0x48, 0x95, 0x42, 0xa3, 0xf4, 0xe7, 0xaf, 0x87, 0x45, + 0x0e, 0xf4, 0xc3, 0x6e, 0x37, 0x40, 0x84, 0x9c, 0x84, 0x81, 0xe3, 0xd9, 0x46, 0x92, 0x2a, 0x37, + 0xc1, 0x06, 0xc3, 0x57, 0xba, 0x71, 0x20, 0x55, 0xb6, 0x8e, 0xde, 0xd4, 0x16, 0xaa, 0xae, 0xb1, + 0x71, 0x8d, 0xb5, 0xa7, 0xcf, 0xf7, 0x57, 0x0c, 0x5e, 0x5a, 0xd7, 0xbe, 0xbb, 0x3c, 0xab, 0x26, + 0x4d, 0x7f, 0xb8, 0x3c, 0xab, 0xde, 0x49, 0xb3, 0x13, 0xc0, 0x96, 0x6f, 0x83, 0x3d, 0xc1, 0x65, + 0x20, 0xe2, 0x63, 0x8f, 0xa0, 0xf2, 0x6f, 0x12, 0x90, 0x5b, 0xc4, 0x6e, 0x06, 0x08, 0x86, 0xe8, + 0x11, 0x74, 0x11, 0xf1, 0x61, 0x07, 0xc9, 0xef, 0x80, 0x0d, 0x82, 0xbc, 0x2e, 0x0a, 0x38, 0xb7, + 0xdd, 0x7f, 0x9e, 0xef, 0xdf, 0x3c, 0x85, 0xee, 0xa0, 0x5e, 0x66, 0xfe, 0xb2, 0xc1, 0x13, 0xe4, + 0x87, 0xa0, 0xe0, 0x4d, 0xea, 0x38, 0xa9, 0x4a, 0x06, 0xa9, 0x78, 0x0e, 0xe7, 0x95, 0x34, 0x60, + 0xd4, 0x78, 0x6b, 0xca, 0x4b, 0x15, 0x78, 0x09, 0x40, 0xcb, 0xaf, 0x01, 0x65, 0xd6, 0x1b, 0xb3, + 0xfb, 0x99, 0xb1, 0x7b, 0x80, 0x06, 0xe8, 0x9a, 0xec, 0xde, 0x06, 0x3b, 0x31, 0x38, 0xb3, 0x8b, + 0x3c, 0xec, 0x46, 0x1c, 0x0b, 0xc6, 0xad, 0xd8, 0xfd, 0x80, 0x7a, 0x33, 0x81, 0x0b, 0x18, 0x38, + 0x70, 0xc1, 0x1b, 0x03, 0xff, 0x77, 0x3d, 0x02, 0xce, 0x1e, 0xd9, 0x4b, 0x05, 0x2e, 0x7f, 0x09, + 0x0a, 0x63, 0x48, 0x5c, 0xb3, 0x87, 0x71, 0xbf, 0xb4, 0x1a, 0x3d, 0xbf, 0x0f, 0x32, 0x9e, 0xdf, + 0x2c, 0x32, 0xea, 0x3a, 0x41, 0xe1, 0xe7, 0x90, 0xb8, 0x1f, 0x61, 0xdc, 0x37, 0x36, 0xc7, 0xfc, + 0x97, 0xfc, 0x15, 0xd8, 0x76, 0x1d, 0x2f, 0x24, 0xa6, 0x0f, 0x87, 0x04, 0x75, 0x4b, 0x6b, 0xd1, + 0x84, 0xe6, 0x75, 0x27, 0xb4, 0x68, 0xaf, 0x76, 0xd4, 0xca, 0xd8, 0x72, 0x13, 0x83, 0xce, 0xa1, + 0xcc, 0xe3, 0x39, 0xeb, 0x2f, 0x36, 0xe7, 0x84, 0xf6, 0x9a, 0xcc, 0x21, 0x89, 0x41, 0xe7, 0x58, + 0xc3, 0xc0, 0x8b, 0xe7, 0x6c, 0xbc, 0xd8, 0x9c, 0x06, 0xed, 0x35, 0x99, 0x63, 0x25, 0x86, 0x72, + 0x08, 0x6e, 0x4d, 0x6b, 0x2a, 0xdf, 0x01, 0x05, 0x0f, 0x8d, 0xcd, 0x11, 0x1c, 0x0c, 0x11, 0x7b, + 0xfe, 0xc6, 0xa6, 0x87, 0xc6, 0x8f, 0xa9, 0xad, 0xbc, 0x0b, 0x76, 0x67, 0x04, 0x9a, 0xad, 0xd8, + 0x9c, 0x57, 0x91, 0xa2, 0x9a, 0xb3, 0x22, 0x05, 0x7a, 0x61, 0x45, 0xe6, 0x52, 0x08, 0x9a, 0xf0, + 0xa5, 0x10, 0xbc, 0xf1, 0x52, 0xfc, 0x71, 0x23, 0x75, 0x8e, 0x25, 0x61, 0x3c, 0x40, 0xe4, 0xa5, + 0x6c, 0xc6, 0x23, 0xf0, 0x6a, 0x80, 0x07, 0xc8, 0x4c, 0x81, 0x2e, 0xad, 0x1e, 0xac, 0x56, 0xb6, + 0x8e, 0xee, 0x66, 0x3c, 0x6e, 0x8a, 0xc9, 0xd8, 0xa1, 0xc5, 0xed, 0x24, 0x2a, 0xb7, 0xc1, 0x4d, + 0xc8, 0xee, 0x05, 0x93, 0x86, 0x48, 0x69, 0x2d, 0x6a, 0x76, 0x2f, 0xa3, 0x19, 0xbf, 0x4b, 0x22, + 0x9e, 0xc6, 0x36, 0x4c, 0x59, 0xf5, 0xfb, 0x82, 0xbe, 0x77, 0x17, 0xeb, 0x1b, 0x15, 0x95, 0xdf, + 0x00, 0xfb, 0x57, 0x84, 0x62, 0xa5, 0xbf, 0x67, 0x4a, 0x1b, 0x68, 0x84, 0xfb, 0xff, 0x87, 0xd2, + 0x16, 0xd8, 0x9b, 0x52, 0xc6, 0x0c, 0xb1, 0x19, 0x44, 0xc3, 0xb9, 0xe0, 0x4b, 0x69, 0x54, 0x4c, + 0x6b, 0xf4, 0x29, 0x66, 0x2c, 0x32, 0xb5, 0x9a, 0x47, 0x96, 0x6b, 0x35, 0x2f, 0x14, 0x6b, 0xf5, + 0x24, 0x7a, 0x39, 0x68, 0x0e, 0xa0, 0xe3, 0x3e, 0xc6, 0xc3, 0x4e, 0x0f, 0x05, 0xcb, 0x48, 0x54, + 0x04, 0xeb, 0x69, 0x61, 0x98, 0x51, 0xbf, 0x27, 0x60, 0x15, 0x6f, 0xf7, 0xf4, 0x34, 0x7e, 0xbb, + 0xa7, 0x5d, 0x13, 0x6c, 0x47, 0xbf, 0xbc, 0x02, 0x56, 0x5b, 0xc4, 0x96, 0x47, 0x60, 0x7b, 0xea, + 0xed, 0x45, 0xcb, 0x7b, 0x5c, 0xb1, 0x7c, 0xe5, 0x78, 0xb9, 0xfc, 0xc9, 0x7c, 0xf9, 0x09, 0xd8, + 0x11, 0xdf, 0x2c, 0x6a, 0xd9, 0xad, 0x84, 0x12, 0xe5, 0xbd, 0xa5, 0x4b, 0xd2, 0x00, 0xc4, 0xcb, + 0x3f, 0x07, 0x00, 0xa1, 0x24, 0x0f, 0x80, 0x2b, 0x2e, 0x72, 0x0a, 0x40, 0xbc, 0xc4, 0x6b, 0x4b, + 0xdf, 0x15, 0x79, 0x00, 0x5c, 0x71, 0x68, 0xca, 0x3f, 0x4a, 0xa0, 0x38, 0xf7, 0xc4, 0x3c, 0x5e, + 0xbe, 0x27, 0xad, 0x53, 0xde, 0xbf, 0x5e, 0xdd, 0x14, 0xa0, 0xb9, 0x07, 0x4b, 0x0e, 0x40, 0xf3, + 0xea, 0xf2, 0x00, 0x5a, 0xb4, 0xc0, 0x74, 0x39, 0xa6, 0xb6, 0x37, 0xc7, 0x72, 0xa4, 0xf3, 0xf3, + 0x2c, 0xc7, 0xbc, 0xe5, 0x54, 0xd6, 0xbf, 0xbd, 0x3c, 0xab, 0x4a, 0x8d, 0xfe, 0xd3, 0x73, 0x55, + 0x7a, 0x76, 0xae, 0x4a, 0x7f, 0x9f, 0xab, 0xd2, 0x4f, 0x17, 0xea, 0xca, 0xb3, 0x0b, 0x75, 0xe5, + 0xaf, 0x0b, 0x75, 0xe5, 0x8b, 0x4f, 0x6c, 0x27, 0xec, 0x0d, 0x2d, 0xad, 0x83, 0x5d, 0xfd, 0xe3, + 0xc9, 0x88, 0x87, 0xd0, 0x22, 0xc9, 0x47, 0xcd, 0x61, 0x07, 0x07, 0x28, 0x6d, 0xf6, 0xa0, 0xe3, + 0xe9, 0x2e, 0xee, 0x0e, 0x07, 0x88, 0x4c, 0x7d, 0xf1, 0x84, 0xa7, 0x3e, 0x22, 0xd6, 0x46, 0xf4, + 0x45, 0x73, 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0x97, 0x38, 0xd1, 0x14, 0x0e, 0x00, + 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// MsgClient is the client API for Msg service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type MsgClient interface { + UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) + CreateNamespace(ctx context.Context, in *MsgCreateNamespace, opts ...grpc.CallOption) (*MsgCreateNamespaceResponse, error) + DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) + UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) + UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) + RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) + ClaimVoucher(ctx context.Context, in *MsgClaimVoucher, opts ...grpc.CallOption) (*MsgClaimVoucherResponse, error) +} + +type msgClient struct { + cc grpc1.ClientConn +} + +func NewMsgClient(cc grpc1.ClientConn) MsgClient { + return &msgClient{cc} +} + +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) CreateNamespace(ctx context.Context, in *MsgCreateNamespace, opts ...grpc.CallOption) (*MsgCreateNamespaceResponse, error) { + out := new(MsgCreateNamespaceResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/CreateNamespace", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) DeleteNamespace(ctx context.Context, in *MsgDeleteNamespace, opts ...grpc.CallOption) (*MsgDeleteNamespaceResponse, error) { + out := new(MsgDeleteNamespaceResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/DeleteNamespace", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateNamespace(ctx context.Context, in *MsgUpdateNamespace, opts ...grpc.CallOption) (*MsgUpdateNamespaceResponse, error) { + out := new(MsgUpdateNamespaceResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespace", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateNamespaceRoles(ctx context.Context, in *MsgUpdateNamespaceRoles, opts ...grpc.CallOption) (*MsgUpdateNamespaceRolesResponse, error) { + out := new(MsgUpdateNamespaceRolesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) RevokeNamespaceRoles(ctx context.Context, in *MsgRevokeNamespaceRoles, opts ...grpc.CallOption) (*MsgRevokeNamespaceRolesResponse, error) { + out := new(MsgRevokeNamespaceRolesResponse) + err := c.cc.Invoke(ctx, "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", in, out, opts...) + if err != nil { + return nil, err + } + 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.permissions.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 { + UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) + CreateNamespace(context.Context, *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) + DeleteNamespace(context.Context, *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) + UpdateNamespace(context.Context, *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) + UpdateNamespaceRoles(context.Context, *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) + RevokeNamespaceRoles(context.Context, *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) + ClaimVoucher(context.Context, *MsgClaimVoucher) (*MsgClaimVoucherResponse, error) +} + +// UnimplementedMsgServer can be embedded to have forward compatible implementations. +type UnimplementedMsgServer struct { +} + +func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") +} +func (*UnimplementedMsgServer) CreateNamespace(ctx context.Context, req *MsgCreateNamespace) (*MsgCreateNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateNamespace not implemented") +} +func (*UnimplementedMsgServer) DeleteNamespace(ctx context.Context, req *MsgDeleteNamespace) (*MsgDeleteNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteNamespace not implemented") +} +func (*UnimplementedMsgServer) UpdateNamespace(ctx context.Context, req *MsgUpdateNamespace) (*MsgUpdateNamespaceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespace not implemented") +} +func (*UnimplementedMsgServer) UpdateNamespaceRoles(ctx context.Context, req *MsgUpdateNamespaceRoles) (*MsgUpdateNamespaceRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateNamespaceRoles not implemented") +} +func (*UnimplementedMsgServer) RevokeNamespaceRoles(ctx context.Context, req *MsgRevokeNamespaceRoles) (*MsgRevokeNamespaceRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevokeNamespaceRoles 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) +} + +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/UpdateParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_CreateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCreateNamespace) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CreateNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/CreateNamespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CreateNamespace(ctx, req.(*MsgCreateNamespace)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_DeleteNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgDeleteNamespace) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).DeleteNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/DeleteNamespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).DeleteNamespace(ctx, req.(*MsgDeleteNamespace)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateNamespace) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/UpdateNamespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateNamespace(ctx, req.(*MsgUpdateNamespace)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateNamespaceRoles) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateNamespaceRoles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/UpdateNamespaceRoles", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateNamespaceRoles(ctx, req.(*MsgUpdateNamespaceRoles)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_RevokeNamespaceRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRevokeNamespaceRoles) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RevokeNamespaceRoles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective.permissions.v1beta1.Msg/RevokeNamespaceRoles", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RevokeNamespaceRoles(ctx, req.(*MsgRevokeNamespaceRoles)) + } + 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.permissions.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.permissions.v1beta1.Msg", + HandlerType: (*MsgServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "UpdateParams", + Handler: _Msg_UpdateParams_Handler, + }, + { + MethodName: "CreateNamespace", + Handler: _Msg_CreateNamespace_Handler, + }, + { + MethodName: "DeleteNamespace", + Handler: _Msg_DeleteNamespace_Handler, + }, + { + MethodName: "UpdateNamespace", + Handler: _Msg_UpdateNamespace_Handler, + }, + { + MethodName: "UpdateNamespaceRoles", + Handler: _Msg_UpdateNamespaceRoles_Handler, + }, + { + MethodName: "RevokeNamespaceRoles", + Handler: _Msg_RevokeNamespaceRoles_Handler, + }, + { + MethodName: "ClaimVoucher", + Handler: _Msg_ClaimVoucher_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "injective/permissions/v1beta1/tx.proto", +} + +func (m *MsgUpdateParams) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateParamsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgCreateNamespace) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateNamespace) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Namespace.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + 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 *MsgCreateNamespaceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgCreateNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCreateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgDeleteNamespace) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeleteNamespace) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeleteNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NamespaceDenom) > 0 { + i -= len(m.NamespaceDenom) + copy(dAtA[i:], m.NamespaceDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + 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 *MsgDeleteNamespaceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgDeleteNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgDeleteNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespace) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespace) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespace) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.BurnsPaused != nil { + { + size, err := m.BurnsPaused.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.SendsPaused != nil { + { + size, err := m.SendsPaused.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.MintsPaused != nil { + { + size, err := m.MintsPaused.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.WasmHook != nil { + { + size, err := m.WasmHook.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.NamespaceDenom) > 0 { + i -= len(m.NamespaceDenom) + copy(dAtA[i:], m.NamespaceDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + 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 *MsgUpdateNamespace_MsgSetWasmHook) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespace_MsgSetWasmHook) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NewValue) > 0 { + i -= len(m.NewValue) + copy(dAtA[i:], m.NewValue) + i = encodeVarintTx(dAtA, i, uint64(len(m.NewValue))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewValue { + i-- + if m.NewValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewValue { + i-- + if m.NewValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NewValue { + i-- + if m.NewValue { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespaceResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespaceResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespaceResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgUpdateNamespaceRoles) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressRoles) > 0 { + for iNdEx := len(m.AddressRoles) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressRoles[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.RolePermissions) > 0 { + for iNdEx := len(m.RolePermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RolePermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.NamespaceDenom) > 0 { + i -= len(m.NamespaceDenom) + copy(dAtA[i:], m.NamespaceDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + 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 *MsgUpdateNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgUpdateNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgRevokeNamespaceRoles) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeNamespaceRoles) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeNamespaceRoles) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressRolesToRevoke) > 0 { + for iNdEx := len(m.AddressRolesToRevoke) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressRolesToRevoke[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.NamespaceDenom) > 0 { + i -= len(m.NamespaceDenom) + copy(dAtA[i:], m.NamespaceDenom) + i = encodeVarintTx(dAtA, i, uint64(len(m.NamespaceDenom))) + 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 *MsgRevokeNamespaceRolesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MsgRevokeNamespaceRolesResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRevokeNamespaceRolesResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + 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 + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgCreateNamespace) 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 = m.Namespace.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgCreateNamespaceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgDeleteNamespace) 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.NamespaceDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgDeleteNamespaceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgUpdateNamespace) 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.NamespaceDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if m.WasmHook != nil { + l = m.WasmHook.Size() + n += 1 + l + sovTx(uint64(l)) + } + if m.MintsPaused != nil { + l = m.MintsPaused.Size() + n += 1 + l + sovTx(uint64(l)) + } + if m.SendsPaused != nil { + l = m.SendsPaused.Size() + n += 1 + l + sovTx(uint64(l)) + } + if m.BurnsPaused != nil { + l = m.BurnsPaused.Size() + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdateNamespace_MsgSetWasmHook) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NewValue) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdateNamespace_MsgSetMintsPaused) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NewValue { + n += 2 + } + return n +} + +func (m *MsgUpdateNamespace_MsgSetSendsPaused) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NewValue { + n += 2 + } + return n +} + +func (m *MsgUpdateNamespace_MsgSetBurnsPaused) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NewValue { + n += 2 + } + return n +} + +func (m *MsgUpdateNamespaceResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgUpdateNamespaceRoles) 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.NamespaceDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.RolePermissions) > 0 { + for _, e := range m.RolePermissions { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + if len(m.AddressRoles) > 0 { + for _, e := range m.AddressRoles { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgUpdateNamespaceRolesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgRevokeNamespaceRoles) 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.NamespaceDenom) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.AddressRolesToRevoke) > 0 { + for _, e := range m.AddressRolesToRevoke { + l = e.Size() + n += 1 + l + sovTx(uint64(l)) + } + } + return n +} + +func (m *MsgRevokeNamespaceRolesResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + 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 +} +func sozTx(x uint64) (n int) { + return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *MsgUpdateParams) Unmarshal(dAtA []byte) 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: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgUpdateParamsResponse) Unmarshal(dAtA []byte) 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: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: 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 (m *MsgCreateNamespace) Unmarshal(dAtA []byte) 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: MsgCreateNamespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateNamespace: 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 Namespace", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Namespace.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgCreateNamespaceResponse) Unmarshal(dAtA []byte) 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: MsgCreateNamespaceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCreateNamespaceResponse: 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 (m *MsgDeleteNamespace) Unmarshal(dAtA []byte) 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: MsgDeleteNamespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeleteNamespace: 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 NamespaceDenom", 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.NamespaceDenom = 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 *MsgDeleteNamespaceResponse) Unmarshal(dAtA []byte) 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: MsgDeleteNamespaceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgDeleteNamespaceResponse: 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 (m *MsgUpdateNamespace) Unmarshal(dAtA []byte) 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: MsgUpdateNamespace: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateNamespace: 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 NamespaceDenom", 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.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WasmHook", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.WasmHook == nil { + m.WasmHook = &MsgUpdateNamespace_MsgSetWasmHook{} + } + if err := m.WasmHook.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MintsPaused", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MintsPaused == nil { + m.MintsPaused = &MsgUpdateNamespace_MsgSetMintsPaused{} + } + if err := m.MintsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SendsPaused", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SendsPaused == nil { + m.SendsPaused = &MsgUpdateNamespace_MsgSetSendsPaused{} + } + if err := m.SendsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BurnsPaused", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BurnsPaused == nil { + m.BurnsPaused = &MsgUpdateNamespace_MsgSetBurnsPaused{} + } + if err := m.BurnsPaused.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgUpdateNamespace_MsgSetWasmHook) Unmarshal(dAtA []byte) 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: MsgSetWasmHook: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetWasmHook: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", 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.NewValue = 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 *MsgUpdateNamespace_MsgSetMintsPaused) Unmarshal(dAtA []byte) 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: MsgSetMintsPaused: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetMintsPaused: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NewValue = bool(v != 0) + 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 *MsgUpdateNamespace_MsgSetSendsPaused) Unmarshal(dAtA []byte) 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: MsgSetSendsPaused: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetSendsPaused: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NewValue = bool(v != 0) + 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 *MsgUpdateNamespace_MsgSetBurnsPaused) Unmarshal(dAtA []byte) 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: MsgSetBurnsPaused: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgSetBurnsPaused: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NewValue", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NewValue = bool(v != 0) + 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 *MsgUpdateNamespaceResponse) Unmarshal(dAtA []byte) 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: MsgUpdateNamespaceResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateNamespaceResponse: 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 (m *MsgUpdateNamespaceRoles) Unmarshal(dAtA []byte) 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: MsgUpdateNamespaceRoles: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateNamespaceRoles: 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 NamespaceDenom", 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.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolePermissions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RolePermissions = append(m.RolePermissions, &Role{}) + if err := m.RolePermissions[len(m.RolePermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressRoles", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressRoles = append(m.AddressRoles, &AddressRoles{}) + if err := m.AddressRoles[len(m.AddressRoles)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgUpdateNamespaceRolesResponse) Unmarshal(dAtA []byte) 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: MsgUpdateNamespaceRolesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateNamespaceRolesResponse: 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 (m *MsgRevokeNamespaceRoles) Unmarshal(dAtA []byte) 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: MsgRevokeNamespaceRoles: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeNamespaceRoles: 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 NamespaceDenom", 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.NamespaceDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressRolesToRevoke", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressRolesToRevoke = append(m.AddressRolesToRevoke, &AddressRoles{}) + if err := m.AddressRolesToRevoke[len(m.AddressRolesToRevoke)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + 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 *MsgRevokeNamespaceRolesResponse) Unmarshal(dAtA []byte) 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: MsgRevokeNamespaceRolesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRevokeNamespaceRolesResponse: 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 (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 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTx + } + 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, ErrIntOverflowTx + } + 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, ErrIntOverflowTx + } + 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, ErrInvalidLengthTx + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTx + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTx + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTx = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTx = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTx = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/permissions/types/types.go b/chain/permissions/types/types.go new file mode 100644 index 00000000..12a6b08f --- /dev/null +++ b/chain/permissions/types/types.go @@ -0,0 +1,156 @@ +package types + +import ( + "encoding/json" + + "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + + tftypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" +) + +const ( + EVERYONE = "EVERYONE" + MaxPerm = uint32(Action_MINT) | uint32(Action_RECEIVE) | uint32(Action_BURN) +) + +type WasmHookMsg struct { + From sdk.AccAddress `json:"from_address"` + To sdk.AccAddress `json:"to_address"` + Action string `json:"action"` + Amounts sdk.Coins `json:"amounts"` +} + +func NewWasmHookMsg(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) WasmHookMsg { + return WasmHookMsg{ + From: fromAddr, + To: toAddr, + Action: action.String(), + Amounts: sdk.NewCoins(amount), + } +} + +func GetWasmHookMsgBytes(fromAddr, toAddr sdk.AccAddress, action Action, amount sdk.Coin) ([]byte, error) { + wasmHookMsg := struct { + SendRestriction WasmHookMsg `json:"send_restriction"` + }{NewWasmHookMsg(fromAddr, toAddr, action, amount)} + + bz, err := json.Marshal(wasmHookMsg) + if err != nil { + return nil, err + } + + return bz, nil +} + +func (n *Namespace) Validate() error { + if err := n.ValidateBasicParams(); err != nil { + return err + } + + if err := n.ValidateEveryoneRole(); err != nil { + return err + } + + if err := n.ValidateRoles(false); err != nil { + return err + } + + return nil +} + +func (n *Namespace) ValidateBasicParams() error { + if _, _, err := tftypes.DeconstructDenom(n.Denom); err != nil { + return errors.Wrap(err, "permissions namespace can only be applied to tokenfactory denoms") + } + + // existing wasm hook contract + if n.WasmHook != "" { + if _, err := sdk.AccAddressFromBech32(n.WasmHook); err != nil { + return ErrInvalidWasmHook + } + } + + return nil +} + +func (n *Namespace) ValidateRoles(isForUpdate bool) error { + // role_permissions + foundRoles := make(map[string]struct{}, len(n.RolePermissions)) + for _, rolePerm := range n.RolePermissions { + if _, ok := foundRoles[rolePerm.Role]; ok { + return errors.Wrapf(ErrInvalidPermission, "permissions for the role %s set multiple times?", rolePerm.Role) + } + if rolePerm.Permissions > MaxPerm { + return errors.Wrapf(ErrInvalidPermission, "permissions %d for the role %s is bigger than maximum expected %d", rolePerm.Permissions, rolePerm.Role, MaxPerm) + } + foundRoles[rolePerm.Role] = struct{}{} + } + + // address_roles + foundAddresses := make(map[string]struct{}, len(n.AddressRoles)) + for _, addrRoles := range n.AddressRoles { + if _, err := sdk.AccAddressFromBech32(addrRoles.Address); err != nil { + return errors.Wrapf(err, "invalid address %s", addrRoles.Address) + } + if _, ok := foundAddresses[addrRoles.Address]; ok { + return errors.Wrapf(ErrInvalidRole, "address %s is assigned new roles multiple times?", addrRoles.Address) + } + for _, role := range addrRoles.Roles { + _, found := foundRoles[role] + if !isForUpdate && !found { + return errors.Wrapf(ErrUnknownRole, "role %s has no defined permissions", role) + } + if role == EVERYONE { + return errors.Wrapf(ErrInvalidRole, "role %s should not be explicitly attached to address, you need to remove address from the list completely instead", EVERYONE) + } + } + foundAddresses[addrRoles.Address] = struct{}{} + } + + return nil +} + +func (n *Namespace) ValidateEveryoneRole() error { + // role_permissions + for _, rolePerm := range n.RolePermissions { + if rolePerm.Role == EVERYONE { + return nil + } + } + + return errors.Wrapf(ErrInvalidPermission, "permissions for role %s should be explicitly set", EVERYONE) +} + +func (n *Namespace) CheckActionValidity(action Action) error { + // check that action is not paused + switch action { + case Action_MINT: + if n.MintsPaused { + return errors.Wrap(ErrRestrictedAction, "mints paused") + } + case Action_RECEIVE: + if n.SendsPaused { + return errors.Wrap(ErrRestrictedAction, "sends paused") + } + case Action_BURN: + if n.BurnsPaused { + return errors.Wrap(ErrRestrictedAction, "burns paused") + } + } + return nil +} + +func (a Action) DeriveActor(fromAddr, toAddr sdk.AccAddress) sdk.AccAddress { + switch a { + case Action_MINT, Action_RECEIVE: + return toAddr + case Action_BURN: + return fromAddr + } + return fromAddr +} + +func NewEmptyVoucher(denom string) sdk.Coin { + return sdk.NewInt64Coin(denom, 0) +} diff --git a/chain/stream/types/query.pb.go b/chain/stream/types/query.pb.go index 1e7e3f0c..be31fd77 100644 --- a/chain/stream/types/query.pb.go +++ b/chain/stream/types/query.pb.go @@ -5,6 +5,7 @@ package types import ( context "context" + cosmossdk_io_math "cosmossdk.io/math" fmt "fmt" types "github.com/InjectiveLabs/sdk-go/chain/exchange/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" @@ -827,13 +828,13 @@ func (m *DerivativeOrder) GetIsMarket() bool { } type Position struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - IsLong bool `protobuf:"varint,3,opt,name=isLong,proto3" json:"isLong,omitempty"` - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - EntryPrice github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=entry_price,json=entryPrice,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"entry_price"` - Margin github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=margin,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"margin"` - CumulativeFundingEntry github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"cumulative_funding_entry"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + IsLong bool `protobuf:"varint,3,opt,name=isLong,proto3" json:"isLong,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + EntryPrice cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=entry_price,json=entryPrice,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"entry_price"` + Margin cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=margin,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"margin"` + CumulativeFundingEntry cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=cumulative_funding_entry,json=cumulativeFundingEntry,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"cumulative_funding_entry"` } func (m *Position) Reset() { *m = Position{} } @@ -891,9 +892,9 @@ func (m *Position) GetIsLong() bool { } type OraclePrice struct { - Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Symbol string `protobuf:"bytes,1,opt,name=symbol,proto3" json:"symbol,omitempty"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` } func (m *OraclePrice) Reset() { *m = OraclePrice{} } @@ -944,18 +945,18 @@ func (m *OraclePrice) GetType() string { } type SpotTrade struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - IsBuy bool `protobuf:"varint,2,opt,name=is_buy,json=isBuy,proto3" json:"is_buy,omitempty"` - ExecutionType string `protobuf:"bytes,3,opt,name=executionType,proto3" json:"executionType,omitempty"` - Quantity github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"quantity"` - Price github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,5,opt,name=price,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"price"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + IsBuy bool `protobuf:"varint,2,opt,name=is_buy,json=isBuy,proto3" json:"is_buy,omitempty"` + ExecutionType string `protobuf:"bytes,3,opt,name=executionType,proto3" json:"executionType,omitempty"` + Quantity cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=quantity,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"quantity"` + Price cosmossdk_io_math.LegacyDec `protobuf:"bytes,5,opt,name=price,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"price"` // bytes32 subaccount ID that executed the trade - SubaccountId string `protobuf:"bytes,6,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` - OrderHash []byte `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` - Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` - TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` + SubaccountId string `protobuf:"bytes,6,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` + OrderHash []byte `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` + Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` + TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` } func (m *SpotTrade) Reset() { *m = SpotTrade{} } @@ -1048,17 +1049,17 @@ func (m *SpotTrade) GetTradeId() string { } type DerivativeTrade struct { - MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - IsBuy bool `protobuf:"varint,2,opt,name=is_buy,json=isBuy,proto3" json:"is_buy,omitempty"` - ExecutionType string `protobuf:"bytes,3,opt,name=executionType,proto3" json:"executionType,omitempty"` - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - PositionDelta *types.PositionDelta `protobuf:"bytes,5,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` - Payout github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,6,opt,name=payout,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"payout"` - Fee github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"fee"` - OrderHash string `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` - Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` - TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + IsBuy bool `protobuf:"varint,2,opt,name=is_buy,json=isBuy,proto3" json:"is_buy,omitempty"` + ExecutionType string `protobuf:"bytes,3,opt,name=executionType,proto3" json:"executionType,omitempty"` + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + PositionDelta *types.PositionDelta `protobuf:"bytes,5,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` + Payout cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=payout,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"payout"` + Fee cosmossdk_io_math.LegacyDec `protobuf:"bytes,7,opt,name=fee,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"fee"` + OrderHash string `protobuf:"bytes,8,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + FeeRecipientAddress string `protobuf:"bytes,9,opt,name=fee_recipient_address,json=feeRecipientAddress,proto3" json:"fee_recipient_address,omitempty"` + Cid string `protobuf:"bytes,10,opt,name=cid,proto3" json:"cid,omitempty"` + TradeId string `protobuf:"bytes,11,opt,name=trade_id,json=tradeId,proto3" json:"trade_id,omitempty"` } func (m *DerivativeTrade) Reset() { *m = DerivativeTrade{} } @@ -1520,109 +1521,110 @@ func init() { } var fileDescriptor_e23b7dcfb2fbc9c7 = []byte{ - // 1630 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x73, 0xdb, 0x46, - 0x12, 0x16, 0x44, 0x89, 0x22, 0x9a, 0x94, 0x44, 0x8d, 0x65, 0x15, 0xac, 0xdd, 0x95, 0x6c, 0xc8, - 0x0f, 0xc9, 0x0f, 0x52, 0xd6, 0x5e, 0x76, 0x4f, 0x6b, 0x53, 0x5a, 0x95, 0xe5, 0x92, 0xcb, 0x2e, - 0x48, 0xde, 0xad, 0x72, 0xad, 0x17, 0x85, 0xc7, 0x90, 0xc4, 0x92, 0x04, 0x28, 0x0c, 0xa0, 0x32, - 0x4f, 0x7b, 0xcd, 0x29, 0xe5, 0x6b, 0x8e, 0xb9, 0xe6, 0x90, 0x4b, 0xfe, 0x41, 0x4e, 0x3e, 0xa5, - 0x7c, 0x4c, 0xe5, 0xe0, 0xa4, 0xec, 0xfc, 0x82, 0xfc, 0x82, 0xd4, 0x3c, 0x00, 0x02, 0x20, 0x45, - 0x52, 0x8a, 0x5d, 0x3e, 0x11, 0x18, 0x74, 0x7f, 0xdf, 0x74, 0xcf, 0xf4, 0x37, 0xcd, 0x81, 0xeb, - 0x8e, 0xfb, 0x3f, 0x6c, 0x05, 0xce, 0x29, 0xae, 0x92, 0xc0, 0xc7, 0x46, 0xa7, 0x7a, 0x7a, 0xdf, - 0xc4, 0x81, 0x71, 0xbf, 0x7a, 0x12, 0x62, 0xbf, 0x57, 0xe9, 0xfa, 0x5e, 0xe0, 0x21, 0x25, 0xb6, - 0xaa, 0x70, 0xab, 0x8a, 0xb0, 0x5a, 0x5d, 0xb3, 0x3c, 0xd2, 0xf1, 0x48, 0xd5, 0x34, 0x08, 0x8e, - 0x5d, 0x2d, 0xcf, 0x71, 0xb9, 0xe7, 0xea, 0x72, 0xc3, 0x6b, 0x78, 0xec, 0xb1, 0x4a, 0x9f, 0xc4, - 0xe8, 0xad, 0x3e, 0x2b, 0x7e, 0x65, 0x35, 0x0d, 0xb7, 0xd1, 0x77, 0xc6, 0xa7, 0xd8, 0x0d, 0x88, - 0x30, 0xdc, 0x1a, 0x65, 0x28, 0x06, 0xb8, 0xa9, 0xfa, 0x65, 0x01, 0xe6, 0x8f, 0xd8, 0xe4, 0x34, - 0x7c, 0x12, 0x62, 0x12, 0x20, 0x1b, 0x96, 0x4d, 0xc3, 0x6d, 0xe9, 0xa6, 0xd1, 0x36, 0x5c, 0x0b, - 0x13, 0xbd, 0xee, 0xb4, 0x03, 0xec, 0x2b, 0xd2, 0x55, 0x69, 0xb3, 0xb8, 0x73, 0xb7, 0x72, 0x56, - 0x50, 0x95, 0x9a, 0xe1, 0xb6, 0x6a, 0xc2, 0x69, 0x9f, 0xf9, 0xd4, 0x66, 0xde, 0xbc, 0x5b, 0x97, - 0x34, 0x64, 0x0e, 0x7c, 0x41, 0xa7, 0xb0, 0x4a, 0x42, 0xd3, 0xb0, 0x2c, 0x2f, 0x74, 0x03, 0xdd, - 0xc6, 0x5d, 0x8f, 0x38, 0x41, 0xcc, 0x35, 0xcd, 0xb8, 0x76, 0xce, 0xe6, 0x3a, 0x8a, 0x7d, 0xf7, - 0x84, 0x6b, 0x8a, 0x51, 0x21, 0x67, 0x7c, 0x47, 0x2f, 0x00, 0x91, 0xae, 0x17, 0xe8, 0x81, 0x6f, - 0xd8, 0xfd, 0xd8, 0x72, 0x8c, 0xef, 0xe6, 0xd9, 0x7c, 0xc7, 0xcc, 0x3c, 0xc5, 0x51, 0xa6, 0x38, - 0xc9, 0x71, 0x54, 0x07, 0xc5, 0xc6, 0xbe, 0x73, 0x6a, 0x50, 0x84, 0x0c, 0xc3, 0xcc, 0x05, 0x18, - 0x56, 0xfa, 0x68, 0x29, 0x9e, 0x28, 0x06, 0xcf, 0xb7, 0xb1, 0x1f, 0x33, 0xcc, 0x8e, 0x63, 0x78, - 0xca, 0xcc, 0x07, 0x63, 0x48, 0x8e, 0x67, 0x62, 0x48, 0x33, 0xe4, 0x2f, 0xc0, 0x90, 0x88, 0x21, - 0xc5, 0x83, 0x61, 0xa5, 0x1f, 0x83, 0xe9, 0x79, 0xad, 0x98, 0x65, 0x8e, 0xb1, 0x6c, 0x8d, 0x61, - 0xa1, 0x2e, 0x29, 0xa2, 0xe5, 0x38, 0x14, 0x86, 0x26, 0x68, 0x4e, 0xe0, 0xcf, 0xd9, 0x70, 0x52, - 0x64, 0x85, 0x8b, 0x91, 0xad, 0x66, 0xa2, 0x4a, 0x52, 0xbe, 0x80, 0x32, 0xdb, 0x71, 0x8e, 0xe7, - 0xc6, 0x34, 0xf2, 0x38, 0x9a, 0x67, 0x91, 0x47, 0x8a, 0x66, 0xb1, 0x9b, 0x1e, 0x46, 0x06, 0x5c, - 0xf2, 0x7c, 0xc3, 0x6a, 0x63, 0xbd, 0xeb, 0x3b, 0x16, 0x8e, 0xe0, 0x81, 0xc1, 0xdf, 0x19, 0x15, - 0x05, 0x75, 0x7a, 0x46, 0x7d, 0x52, 0x04, 0x4b, 0x5e, 0xf6, 0x83, 0xfa, 0xf5, 0x1c, 0x2c, 0x44, - 0x82, 0x40, 0xba, 0x9e, 0x4b, 0x30, 0xba, 0x06, 0x25, 0xb3, 0xed, 0x59, 0x2d, 0xbd, 0x89, 0x9d, - 0x46, 0x33, 0x60, 0x4a, 0x30, 0xa3, 0x15, 0xd9, 0xd8, 0x23, 0x36, 0x84, 0xfe, 0x02, 0xc0, 0x4d, - 0x02, 0xa7, 0x83, 0x59, 0xf9, 0xe6, 0x34, 0x99, 0x8d, 0x1c, 0x3b, 0x1d, 0x8c, 0x1e, 0xc3, 0x7c, - 0x4a, 0x53, 0x94, 0xdc, 0xd5, 0xdc, 0x66, 0x71, 0xe7, 0xc6, 0x44, 0x62, 0xa2, 0x95, 0x92, 0xfa, - 0x81, 0x5e, 0xc2, 0xa5, 0x21, 0xca, 0xa1, 0xcc, 0x30, 0xc4, 0xbb, 0xe7, 0x91, 0x0c, 0x0d, 0x0d, - 0xca, 0x04, 0xda, 0x83, 0x62, 0x42, 0x20, 0x94, 0x59, 0x06, 0xbb, 0x31, 0x02, 0x36, 0x52, 0x01, - 0x0d, 0xfa, 0x82, 0x80, 0xfe, 0x05, 0x4b, 0x03, 0x52, 0xa0, 0xe4, 0x19, 0xd6, 0x88, 0x5d, 0xb0, - 0x97, 0xae, 0x77, 0xad, 0x9c, 0x15, 0x00, 0xf4, 0x58, 0xcc, 0x8e, 0x17, 0xa6, 0x32, 0x37, 0x0e, - 0xf1, 0x28, 0x2a, 0x8a, 0xe7, 0x5d, 0xdb, 0x08, 0xc4, 0x1c, 0x79, 0x21, 0xa2, 0xff, 0xa4, 0xe6, - 0x28, 0x10, 0x0b, 0x0c, 0xb1, 0x3a, 0xc9, 0x1c, 0x93, 0xb8, 0xe5, 0x6c, 0x99, 0x23, 0x3d, 0x5b, - 0xe0, 0x7a, 0xc8, 0x4c, 0x89, 0x22, 0x8f, 0x9b, 0x74, 0x5c, 0x52, 0x02, 0x3c, 0x5d, 0xda, 0x7c, - 0x90, 0xa0, 0xd6, 0xf0, 0xd2, 0x8e, 0x69, 0xe0, 0xbc, 0x34, 0xc3, 0x8a, 0x3a, 0x22, 0x7b, 0x00, - 0x72, 0x5c, 0x8b, 0x4a, 0x91, 0x21, 0xab, 0xe3, 0xab, 0x59, 0xeb, 0x3b, 0xd1, 0x12, 0x48, 0x96, - 0x2e, 0x51, 0x4a, 0xe3, 0x4a, 0x20, 0x51, 0xb4, 0x5a, 0x29, 0x51, 0xa8, 0x44, 0xad, 0xc3, 0x62, - 0x66, 0x86, 0xa8, 0x0c, 0x39, 0x82, 0x4f, 0x44, 0x69, 0xd2, 0x47, 0xf4, 0x10, 0xe4, 0x38, 0x29, - 0xe2, 0x40, 0xdd, 0x98, 0x20, 0x19, 0x5a, 0xdf, 0x4b, 0xfd, 0x56, 0x02, 0x39, 0xfe, 0x80, 0xfe, - 0x04, 0x72, 0xc7, 0xf0, 0x5b, 0x38, 0xd0, 0x1d, 0x9b, 0x11, 0xc9, 0x5a, 0x81, 0x0f, 0x1c, 0xd8, - 0xe8, 0x01, 0x80, 0x19, 0xf6, 0xf4, 0x36, 0x3e, 0xc5, 0x6d, 0xa2, 0x4c, 0xb3, 0xd8, 0xae, 0x25, - 0xe8, 0xe2, 0xb6, 0x23, 0x22, 0x3c, 0xa4, 0x96, 0x9a, 0x6c, 0x86, 0x3d, 0xf6, 0x44, 0x50, 0x0d, - 0x8a, 0x04, 0xb7, 0xdb, 0x11, 0x44, 0x6e, 0x52, 0x08, 0xa0, 0x5e, 0x1c, 0x43, 0x7d, 0x2d, 0x41, - 0x31, 0xa1, 0x1c, 0x48, 0x81, 0x39, 0x51, 0xdf, 0x62, 0xc2, 0xd1, 0x2b, 0x6a, 0x40, 0x21, 0x16, - 0x23, 0x3e, 0xdb, 0x2b, 0x15, 0xde, 0x94, 0x55, 0x68, 0x53, 0x16, 0x73, 0xec, 0x7a, 0x8e, 0x5b, - 0xdb, 0x7e, 0xf3, 0x6e, 0x7d, 0xea, 0x9b, 0x9f, 0xd7, 0x37, 0x1b, 0x4e, 0xd0, 0x0c, 0xcd, 0x8a, - 0xe5, 0x75, 0xaa, 0xa2, 0x83, 0xe3, 0x3f, 0xf7, 0x88, 0xdd, 0xaa, 0x06, 0xbd, 0x2e, 0x26, 0xcc, - 0x81, 0x68, 0x31, 0xb8, 0xfa, 0x85, 0x04, 0x68, 0x50, 0x7a, 0xd0, 0x06, 0xcc, 0x27, 0x54, 0x2c, - 0x4e, 0x68, 0xa9, 0x3f, 0x78, 0x60, 0xa3, 0x27, 0x50, 0x88, 0xf5, 0x8d, 0x4f, 0xf2, 0xce, 0x39, - 0xf4, 0x8d, 0x69, 0xfc, 0x94, 0x16, 0x43, 0xa8, 0x2e, 0x2c, 0x0d, 0x18, 0xa1, 0x65, 0x98, 0xb5, - 0xb1, 0xeb, 0x75, 0xc4, 0x04, 0xf8, 0x0b, 0xda, 0x85, 0x39, 0xe1, 0x36, 0x64, 0xeb, 0x0c, 0x2c, - 0x44, 0x9a, 0x30, 0xf2, 0x54, 0xbf, 0x97, 0x60, 0x31, 0x23, 0x40, 0x68, 0x17, 0xf2, 0x24, 0x30, - 0x82, 0x90, 0x30, 0xbe, 0x85, 0xd1, 0x87, 0x56, 0xec, 0x76, 0xc4, 0x5c, 0x34, 0xe1, 0x4a, 0x4f, - 0x1b, 0xb6, 0x49, 0xf5, 0xa6, 0x41, 0x9a, 0x6c, 0x82, 0x25, 0xb1, 0x6d, 0x1f, 0x19, 0xa4, 0x49, - 0x6b, 0xc1, 0x72, 0x6c, 0xd6, 0xd4, 0xc9, 0x1a, 0x7d, 0x44, 0x7f, 0x87, 0x59, 0xf6, 0x59, 0xb4, - 0x61, 0x1b, 0x13, 0x08, 0xa6, 0xc6, 0x3d, 0xd4, 0x2e, 0xc8, 0xf1, 0xd8, 0xe8, 0x12, 0xd8, 0x8f, - 0x48, 0x78, 0xc6, 0x6e, 0x8f, 0xca, 0x18, 0x85, 0x3c, 0x74, 0x3a, 0x0e, 0xc7, 0x15, 0x89, 0x13, - 0x8c, 0x3f, 0x48, 0x70, 0x79, 0xa8, 0xca, 0x7e, 0xa6, 0xe4, 0xfd, 0x23, 0x9d, 0xbc, 0xad, 0x89, - 0xcf, 0x86, 0x28, 0xa0, 0xaf, 0x24, 0x58, 0xcc, 0x7c, 0x1a, 0x9d, 0xc9, 0xc3, 0x74, 0x26, 0xb7, - 0x47, 0xef, 0xbd, 0x08, 0xf8, 0x8c, 0x7c, 0x52, 0x2a, 0x87, 0xe8, 0x1c, 0x9c, 0xc5, 0x55, 0xd0, - 0x0a, 0x0e, 0x79, 0xc2, 0xde, 0xd5, 0xef, 0x72, 0x50, 0x88, 0xe4, 0x7a, 0xf4, 0xa4, 0x06, 0x2a, - 0x76, 0x7a, 0x48, 0xc5, 0xae, 0x40, 0xde, 0x21, 0x87, 0x9e, 0xdb, 0x10, 0x44, 0xe2, 0x0d, 0x3d, - 0x86, 0xc2, 0x49, 0x68, 0xb8, 0x81, 0x13, 0xf4, 0x58, 0x1a, 0xe5, 0x5a, 0x85, 0x4e, 0xf1, 0xa7, - 0x77, 0xeb, 0x37, 0x27, 0xd0, 0x94, 0x3d, 0x6c, 0x69, 0xb1, 0x3f, 0x7a, 0x0a, 0x45, 0xec, 0x06, - 0x7e, 0x8f, 0x1f, 0x24, 0xac, 0xef, 0x3f, 0x3f, 0x1c, 0x30, 0x08, 0x76, 0x9e, 0xa0, 0x7d, 0xc8, - 0x77, 0x0c, 0xbf, 0xe1, 0xb8, 0xac, 0xc3, 0x3f, 0x3f, 0x96, 0xf0, 0x46, 0x4d, 0x50, 0xac, 0xb0, - 0x13, 0xb6, 0xf9, 0x89, 0x5c, 0x0f, 0x5d, 0xdb, 0x71, 0x1b, 0x3a, 0x23, 0x62, 0x5d, 0xfd, 0xf9, - 0x91, 0x57, 0xfa, 0x78, 0xfb, 0x1c, 0xee, 0x9f, 0x14, 0x4d, 0xfd, 0x3f, 0x14, 0x13, 0xa7, 0x23, - 0xcd, 0x3a, 0xe9, 0x75, 0x4c, 0xaf, 0x2d, 0x16, 0x4d, 0xbc, 0xa1, 0x3d, 0x98, 0xe5, 0x39, 0x9a, - 0xbe, 0x10, 0x3b, 0x77, 0x46, 0x08, 0x66, 0xe8, 0x98, 0x28, 0x09, 0xf6, 0xac, 0xfe, 0x9a, 0xe3, - 0xb2, 0xc0, 0xda, 0xb2, 0xd1, 0xfb, 0xe6, 0x32, 0xdd, 0x12, 0xba, 0x19, 0xf6, 0xd8, 0x2c, 0x0a, - 0xda, 0xac, 0x43, 0x6a, 0x61, 0x0f, 0x5d, 0x87, 0x79, 0xfc, 0x0a, 0x5b, 0x21, 0xdd, 0x78, 0xc7, - 0x7d, 0xf8, 0xf4, 0xe0, 0x47, 0xdd, 0x37, 0x71, 0x36, 0x66, 0xff, 0x48, 0x36, 0x06, 0xca, 0x20, - 0x3f, 0xa4, 0x0c, 0x1e, 0x40, 0xae, 0x8e, 0xf1, 0x05, 0x17, 0x9d, 0xba, 0x66, 0x54, 0xaa, 0x90, - 0x55, 0xa9, 0xbf, 0xc1, 0xe5, 0x3a, 0xc6, 0xba, 0x8f, 0x2d, 0xa7, 0xeb, 0x60, 0x37, 0xd0, 0x0d, - 0xdb, 0xf6, 0x31, 0x21, 0xec, 0x9f, 0x96, 0x2c, 0xfe, 0xdd, 0x5c, 0xaa, 0x63, 0xac, 0x45, 0x16, - 0x0f, 0xb9, 0x41, 0xa4, 0x6f, 0xd0, 0xd7, 0xb7, 0x2b, 0x50, 0x60, 0x0d, 0x3a, 0x0d, 0xa6, 0xc8, - 0xbb, 0x04, 0xf6, 0x7e, 0x60, 0xab, 0xbf, 0xe5, 0x92, 0xca, 0xf5, 0xa9, 0x17, 0x7b, 0x20, 0xb5, - 0x33, 0x43, 0x52, 0xfb, 0x0c, 0x16, 0xa2, 0xa6, 0x52, 0xb7, 0x71, 0x3b, 0x30, 0xc4, 0x1f, 0xff, - 0xad, 0x51, 0x22, 0x19, 0x29, 0xdc, 0x1e, 0x75, 0xd0, 0xe6, 0xbb, 0xc9, 0x57, 0x5a, 0xfe, 0x5d, - 0xa3, 0xe7, 0x85, 0xc1, 0x45, 0xcb, 0x9f, 0x7b, 0x7f, 0x92, 0x45, 0x97, 0x3f, 0xc3, 0xa2, 0x1f, - 0x43, 0x29, 0x75, 0xdd, 0x72, 0x03, 0x16, 0x52, 0xcb, 0x42, 0x4f, 0xdf, 0x1c, 0x5d, 0xbd, 0xe4, - 0xba, 0xb0, 0x73, 0x35, 0xde, 0x17, 0xbc, 0x5d, 0x93, 0x35, 0x39, 0xda, 0x18, 0x44, 0xfd, 0x37, - 0x2c, 0x66, 0xfe, 0xe4, 0x7f, 0x24, 0xe0, 0x63, 0x28, 0xa5, 0x6e, 0x56, 0x3e, 0x0e, 0xea, 0x76, - 0xe2, 0x2f, 0x86, 0x00, 0x4e, 0x7b, 0x48, 0x83, 0x1e, 0x68, 0xf0, 0x06, 0x10, 0xad, 0x42, 0x41, - 0x90, 0x46, 0x2e, 0xf1, 0xbb, 0xfa, 0x10, 0x94, 0xb3, 0xee, 0xf1, 0x26, 0x8c, 0x42, 0xbd, 0x03, - 0x4b, 0x03, 0x77, 0x1b, 0xa9, 0xe3, 0x20, 0xd7, 0x3f, 0x0e, 0x6e, 0x1f, 0x52, 0xe3, 0x4c, 0x5b, - 0x84, 0x16, 0xa1, 0xf8, 0xdc, 0x25, 0x5d, 0x6c, 0x39, 0x75, 0x07, 0xdb, 0xe5, 0x29, 0x04, 0x90, - 0xaf, 0x79, 0x5e, 0x0b, 0xdb, 0x65, 0x09, 0x15, 0x61, 0xee, 0x89, 0x11, 0x58, 0x4d, 0x6c, 0x97, - 0xa7, 0xd1, 0x3c, 0xc8, 0xbb, 0x34, 0xb4, 0x76, 0x1b, 0xdb, 0xe5, 0xdc, 0x4e, 0x03, 0xf2, 0xfc, - 0x9e, 0x04, 0xbd, 0x8c, 0x9f, 0x6e, 0x8d, 0x68, 0x2c, 0x93, 0x97, 0xac, 0xab, 0x9b, 0xe3, 0x0d, - 0xf9, 0xe5, 0xcb, 0xb6, 0x54, 0xfb, 0xef, 0x9b, 0xf7, 0x6b, 0xd2, 0xdb, 0xf7, 0x6b, 0xd2, 0x2f, - 0xef, 0xd7, 0xa4, 0xd7, 0x1f, 0xd6, 0xa6, 0xde, 0x7e, 0x58, 0x9b, 0xfa, 0xf1, 0xc3, 0xda, 0xd4, - 0x8b, 0xbd, 0x44, 0x71, 0x1d, 0x44, 0x78, 0x87, 0x86, 0x49, 0xaa, 0x31, 0xfa, 0x3d, 0xcb, 0xf3, - 0x71, 0xf2, 0xb5, 0x69, 0x38, 0x6e, 0x74, 0x69, 0xcd, 0xca, 0xcf, 0xcc, 0xb3, 0x9b, 0xe0, 0xbf, - 0xfe, 0x1e, 0x00, 0x00, 0xff, 0xff, 0xd8, 0xec, 0xaf, 0x5b, 0xd5, 0x16, 0x00, 0x00, + // 1640 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, + 0x16, 0xb6, 0x2c, 0x5b, 0x16, 0x8f, 0x64, 0x5b, 0x9e, 0x38, 0x06, 0xe3, 0xdc, 0x6b, 0x27, 0x74, + 0x72, 0x63, 0xe7, 0x47, 0x72, 0x7c, 0x71, 0x81, 0x5b, 0x74, 0x91, 0x44, 0x76, 0x83, 0x38, 0x70, + 0xd0, 0x80, 0x76, 0x5a, 0x20, 0x68, 0x4a, 0x50, 0xe4, 0x48, 0x9a, 0x4a, 0x22, 0x65, 0x0e, 0x69, + 0x44, 0x4f, 0xd0, 0xae, 0x8a, 0x6c, 0xbb, 0xec, 0xb6, 0x8b, 0x3e, 0x44, 0xbb, 0xc9, 0xaa, 0xc8, + 0xb2, 0x28, 0x8a, 0xb4, 0x48, 0x5e, 0xa4, 0x98, 0x1f, 0x52, 0x24, 0x25, 0x4b, 0x72, 0x9a, 0x22, + 0x2b, 0x91, 0xa3, 0x73, 0xbe, 0x6f, 0xce, 0x99, 0x39, 0xdf, 0x1c, 0x0e, 0x5c, 0x21, 0xce, 0x57, + 0xd8, 0xf2, 0xc9, 0x09, 0xae, 0x50, 0xdf, 0xc3, 0x66, 0xa7, 0x72, 0x72, 0xbb, 0x86, 0x7d, 0xf3, + 0x76, 0xe5, 0x38, 0xc0, 0x5e, 0xaf, 0xdc, 0xf5, 0x5c, 0xdf, 0x45, 0x6a, 0x64, 0x55, 0x16, 0x56, + 0x65, 0x69, 0xb5, 0xba, 0x66, 0xb9, 0xb4, 0xe3, 0xd2, 0x4a, 0xcd, 0xa4, 0x38, 0x72, 0xb5, 0x5c, + 0xe2, 0x08, 0xcf, 0xd5, 0xe5, 0x86, 0xdb, 0x70, 0xf9, 0x63, 0x85, 0x3d, 0xc9, 0xd1, 0x6b, 0x7d, + 0x56, 0xfc, 0xdc, 0x6a, 0x9a, 0x4e, 0xa3, 0xef, 0x8c, 0x4f, 0xb0, 0xe3, 0x53, 0x69, 0xb8, 0x35, + 0xca, 0x50, 0x0e, 0x08, 0x53, 0xed, 0xdb, 0x3c, 0xcc, 0x1f, 0xf2, 0xc9, 0xe9, 0xf8, 0x38, 0xc0, + 0xd4, 0x47, 0x36, 0x2c, 0xd7, 0x4c, 0xa7, 0x65, 0xd4, 0xcc, 0xb6, 0xe9, 0x58, 0x98, 0x1a, 0x75, + 0xd2, 0xf6, 0xb1, 0xa7, 0x66, 0x2e, 0x65, 0x36, 0x0b, 0x3b, 0x37, 0xcb, 0xa7, 0x05, 0x55, 0xae, + 0x9a, 0x4e, 0xab, 0x2a, 0x9d, 0xee, 0x73, 0x9f, 0xea, 0xcc, 0xcb, 0xd7, 0xeb, 0x19, 0x1d, 0xd5, + 0x06, 0xfe, 0x41, 0x27, 0xb0, 0x4a, 0x83, 0x9a, 0x69, 0x59, 0x6e, 0xe0, 0xf8, 0x86, 0x8d, 0xbb, + 0x2e, 0x25, 0x7e, 0xc4, 0x35, 0xcd, 0xb9, 0x76, 0x4e, 0xe7, 0x3a, 0x8c, 0x7c, 0xf7, 0xa4, 0x6b, + 0x82, 0x51, 0xa5, 0xa7, 0xfc, 0x8f, 0x9e, 0x02, 0xa2, 0x5d, 0xd7, 0x37, 0x7c, 0xcf, 0xb4, 0xfb, + 0xb1, 0x65, 0x39, 0xdf, 0x7f, 0x4e, 0xe7, 0x3b, 0xe2, 0xe6, 0x09, 0x8e, 0x12, 0xc3, 0x89, 0x8f, + 0xa3, 0x3a, 0xa8, 0x36, 0xf6, 0xc8, 0x89, 0xc9, 0x10, 0x52, 0x0c, 0x33, 0xef, 0xc0, 0xb0, 0xd2, + 0x47, 0x4b, 0xf0, 0x84, 0x31, 0xb8, 0x9e, 0x8d, 0xbd, 0x88, 0x61, 0x76, 0x1c, 0xc3, 0xa7, 0xdc, + 0x7c, 0x30, 0x86, 0xf8, 0x78, 0x2a, 0x86, 0x24, 0x43, 0xee, 0x1d, 0x18, 0x62, 0x31, 0x24, 0x78, + 0x30, 0xac, 0xf4, 0x63, 0xa8, 0xb9, 0x6e, 0x2b, 0x62, 0x99, 0xe3, 0x2c, 0x5b, 0x63, 0x58, 0x98, + 0x4b, 0x82, 0x68, 0x39, 0x0a, 0x85, 0xa3, 0x49, 0x9a, 0x63, 0xf8, 0x57, 0x3a, 0x9c, 0x04, 0x59, + 0xfe, 0xdd, 0xc8, 0x56, 0x53, 0x51, 0xc5, 0x29, 0x9f, 0x42, 0x89, 0xef, 0x38, 0xe2, 0x3a, 0x11, + 0x8d, 0x32, 0x8e, 0xe6, 0x71, 0xe8, 0x91, 0xa0, 0x59, 0xec, 0x26, 0x87, 0x91, 0x09, 0xe7, 0x5c, + 0xcf, 0xb4, 0xda, 0xd8, 0xe8, 0x7a, 0xc4, 0xc2, 0x21, 0x3c, 0x70, 0xf8, 0x1b, 0xa3, 0xa2, 0x60, + 0x4e, 0x8f, 0x99, 0x4f, 0x82, 0x60, 0xc9, 0x4d, 0xff, 0xa1, 0x7d, 0x3f, 0x07, 0x0b, 0xa1, 0x20, + 0xd0, 0xae, 0xeb, 0x50, 0x8c, 0x2e, 0x43, 0xb1, 0xd6, 0x76, 0xad, 0x96, 0xd1, 0xc4, 0xa4, 0xd1, + 0xf4, 0xb9, 0x12, 0xcc, 0xe8, 0x05, 0x3e, 0xf6, 0x80, 0x0f, 0xa1, 0x7f, 0x03, 0x08, 0x13, 0x9f, + 0x74, 0x30, 0x2f, 0xdf, 0xac, 0xae, 0xf0, 0x91, 0x23, 0xd2, 0xc1, 0xe8, 0x21, 0xcc, 0x27, 0x34, + 0x45, 0xcd, 0x5e, 0xca, 0x6e, 0x16, 0x76, 0xae, 0x4e, 0x24, 0x26, 0x7a, 0x31, 0xae, 0x1f, 0xe8, + 0x19, 0x9c, 0x1b, 0xa2, 0x1c, 0xea, 0x0c, 0x47, 0xbc, 0x79, 0x16, 0xc9, 0xd0, 0xd1, 0xa0, 0x4c, + 0xa0, 0x3d, 0x28, 0xc4, 0x04, 0x42, 0x9d, 0xe5, 0xb0, 0x1b, 0x23, 0x60, 0x43, 0x15, 0xd0, 0xa1, + 0x2f, 0x08, 0xe8, 0x33, 0x58, 0x1a, 0x90, 0x02, 0x35, 0xc7, 0xb1, 0x46, 0xec, 0x82, 0xbd, 0x64, + 0xbd, 0xeb, 0xa5, 0xb4, 0x00, 0xa0, 0x87, 0x72, 0x76, 0xa2, 0x30, 0xd5, 0xb9, 0x71, 0x88, 0x87, + 0x61, 0x51, 0x3c, 0xe9, 0xda, 0xa6, 0x2f, 0xe7, 0x28, 0x0a, 0x11, 0x7d, 0x91, 0x98, 0xa3, 0x44, + 0xcc, 0x73, 0xc4, 0xca, 0x24, 0x73, 0x8c, 0xe3, 0x96, 0xd2, 0x65, 0x8e, 0x8c, 0x74, 0x81, 0x1b, + 0x01, 0x37, 0xa5, 0xaa, 0x32, 0x6e, 0xd2, 0x51, 0x49, 0x49, 0xf0, 0x64, 0x69, 0x8b, 0x41, 0x8a, + 0x5a, 0xc3, 0x4b, 0x3b, 0xa2, 0x81, 0xb3, 0xd2, 0x0c, 0x2b, 0xea, 0x90, 0xec, 0x2e, 0x28, 0x51, + 0x2d, 0xaa, 0x05, 0x8e, 0xac, 0x8d, 0xaf, 0x66, 0xbd, 0xef, 0xc4, 0x4a, 0x20, 0x5e, 0xba, 0x54, + 0x2d, 0x8e, 0x2b, 0x81, 0x58, 0xd1, 0xea, 0xc5, 0x58, 0xa1, 0x52, 0xad, 0x0e, 0x8b, 0xa9, 0x19, + 0xa2, 0x12, 0x64, 0x29, 0x3e, 0x96, 0xa5, 0xc9, 0x1e, 0xd1, 0x3d, 0x50, 0xa2, 0xa4, 0xc8, 0x03, + 0x75, 0x63, 0x82, 0x64, 0xe8, 0x7d, 0x2f, 0xed, 0xc7, 0x0c, 0x28, 0xd1, 0x1f, 0xe8, 0x22, 0x28, + 0x1d, 0xd3, 0x6b, 0x61, 0xdf, 0x20, 0x36, 0x27, 0x52, 0xf4, 0xbc, 0x18, 0xd8, 0xb7, 0xd1, 0x5d, + 0x80, 0x5a, 0xd0, 0x33, 0xda, 0xf8, 0x04, 0xb7, 0xa9, 0x3a, 0xcd, 0x63, 0xbb, 0x1c, 0xa3, 0x8b, + 0xda, 0x8e, 0x90, 0xf0, 0x80, 0x59, 0xea, 0x4a, 0x2d, 0xe8, 0xf1, 0x27, 0x8a, 0xaa, 0x50, 0xa0, + 0xb8, 0xdd, 0x0e, 0x21, 0xb2, 0x93, 0x42, 0x00, 0xf3, 0x12, 0x18, 0xda, 0x8b, 0x0c, 0x14, 0x62, + 0xca, 0x81, 0x54, 0x98, 0x93, 0xf5, 0x2d, 0x27, 0x1c, 0xbe, 0xa2, 0x06, 0xe4, 0x23, 0x31, 0x12, + 0xb3, 0xbd, 0x50, 0x16, 0x4d, 0x59, 0x99, 0x35, 0x65, 0x11, 0xc7, 0xae, 0x4b, 0x9c, 0xea, 0xf6, + 0xcb, 0xd7, 0xeb, 0x53, 0x3f, 0xfc, 0xb1, 0xbe, 0xd9, 0x20, 0x7e, 0x33, 0xa8, 0x95, 0x2d, 0xb7, + 0x53, 0x91, 0x1d, 0x9c, 0xf8, 0xb9, 0x45, 0xed, 0x56, 0xc5, 0xef, 0x75, 0x31, 0xe5, 0x0e, 0x54, + 0x8f, 0xc0, 0xb5, 0x6f, 0x32, 0x80, 0x06, 0xa5, 0x07, 0x6d, 0xc0, 0x7c, 0x4c, 0xc5, 0xa2, 0x84, + 0x16, 0xfb, 0x83, 0xfb, 0x36, 0x7a, 0x04, 0xf9, 0x48, 0xdf, 0xc4, 0x24, 0x6f, 0x9c, 0x41, 0xdf, + 0xb8, 0xc6, 0x4f, 0xe9, 0x11, 0x84, 0xe6, 0xc0, 0xd2, 0x80, 0x11, 0x5a, 0x86, 0x59, 0x1b, 0x3b, + 0x6e, 0x47, 0x4e, 0x40, 0xbc, 0xa0, 0x5d, 0x98, 0x93, 0x6e, 0x43, 0xb6, 0xce, 0xc0, 0x42, 0x24, + 0x09, 0x43, 0x4f, 0xed, 0xa7, 0x0c, 0x2c, 0xa6, 0x04, 0x08, 0xed, 0x42, 0x8e, 0xfa, 0xa6, 0x1f, + 0x50, 0xce, 0xb7, 0x30, 0xfa, 0xd0, 0x8a, 0xdc, 0x0e, 0xb9, 0x8b, 0x2e, 0x5d, 0xd9, 0x69, 0xc3, + 0x37, 0xa9, 0xd1, 0x34, 0x69, 0x93, 0x4f, 0xb0, 0x28, 0xb7, 0xed, 0x03, 0x93, 0x36, 0x59, 0x2d, + 0x58, 0xc4, 0xe6, 0x4d, 0x9d, 0xa2, 0xb3, 0x47, 0xf4, 0x11, 0xcc, 0xf2, 0xbf, 0x65, 0x1b, 0xb6, + 0x31, 0x81, 0x60, 0xea, 0xc2, 0x43, 0xeb, 0x82, 0x12, 0x8d, 0x8d, 0x2e, 0x81, 0xfb, 0x21, 0x89, + 0xc8, 0xd8, 0xf5, 0x51, 0x19, 0x63, 0x90, 0x07, 0xa4, 0x43, 0x04, 0xae, 0x4c, 0x9c, 0x64, 0xfc, + 0x25, 0x03, 0xe7, 0x87, 0xaa, 0xec, 0x07, 0x4a, 0xde, 0x9d, 0x64, 0xf2, 0xb6, 0x26, 0x3e, 0x1b, + 0xc2, 0x80, 0xbe, 0xcb, 0xc0, 0x62, 0xea, 0xaf, 0xd1, 0x99, 0x3c, 0x48, 0x66, 0x72, 0x7b, 0xf4, + 0xde, 0x0b, 0x81, 0x4f, 0xc9, 0x27, 0xa3, 0x22, 0xd4, 0x10, 0xe0, 0x3c, 0xae, 0xbc, 0x9e, 0x27, + 0xf4, 0x11, 0x7f, 0xd7, 0xbe, 0xce, 0x42, 0x3e, 0x94, 0xeb, 0xd1, 0x93, 0x1a, 0xa8, 0xd8, 0xe9, + 0x21, 0x15, 0xbb, 0x02, 0x39, 0x42, 0x0f, 0x5c, 0xa7, 0x21, 0x89, 0xe4, 0x1b, 0xba, 0x03, 0xf9, + 0xe3, 0xc0, 0x74, 0x7c, 0xe2, 0xf7, 0x78, 0x1a, 0x95, 0xea, 0x06, 0x9b, 0xe2, 0x6f, 0xaf, 0xd7, + 0x2f, 0x0a, 0x05, 0xa1, 0x76, 0xab, 0x4c, 0xdc, 0x4a, 0xc7, 0xf4, 0x9b, 0xe5, 0x03, 0xdc, 0x30, + 0xad, 0xde, 0x1e, 0xb6, 0xf4, 0xc8, 0x89, 0xb5, 0x25, 0xd8, 0xf1, 0xbd, 0x9e, 0x38, 0x3d, 0x78, + 0xb3, 0x3f, 0x21, 0x06, 0x70, 0x3f, 0x7e, 0x72, 0xa0, 0x8f, 0x21, 0xd7, 0x31, 0xbd, 0x06, 0x71, + 0x78, 0x2f, 0x3f, 0x21, 0x80, 0x74, 0x41, 0xcf, 0x40, 0xb5, 0x82, 0x4e, 0xd0, 0x16, 0x07, 0x6e, + 0x3d, 0x70, 0x6c, 0xe2, 0x34, 0x0c, 0x8e, 0xce, 0x9b, 0xf6, 0x09, 0xe1, 0x56, 0xfa, 0x20, 0xf7, + 0x05, 0xc6, 0x27, 0x0c, 0x42, 0xf3, 0xa1, 0x10, 0x3b, 0xf1, 0x58, 0x26, 0x69, 0xaf, 0x53, 0x73, + 0xdb, 0x72, 0x21, 0xe4, 0x1b, 0x2b, 0x65, 0x91, 0x82, 0xe9, 0xc9, 0x29, 0x85, 0x07, 0x42, 0x30, + 0xc3, 0x34, 0x5a, 0xee, 0x6d, 0xfe, 0xac, 0xfd, 0x9c, 0x15, 0xf5, 0xcd, 0xfb, 0xab, 0xd1, 0x1b, + 0xe0, 0x3c, 0x5b, 0x5b, 0xa3, 0x16, 0xf4, 0x38, 0x75, 0x5e, 0x9f, 0x25, 0xb4, 0x1a, 0xf4, 0xd0, + 0x15, 0x98, 0xc7, 0xcf, 0xb1, 0x15, 0xb0, 0x1d, 0x74, 0xd4, 0x87, 0x4f, 0x0e, 0xfe, 0xfd, 0x0d, + 0x10, 0xc5, 0x3d, 0x7b, 0xe6, 0xb8, 0x07, 0x76, 0x6e, 0x6e, 0xc8, 0xce, 0xfd, 0x1f, 0x64, 0xeb, + 0x18, 0x9f, 0x65, 0x21, 0x99, 0x7d, 0x4a, 0x4d, 0xf2, 0x69, 0x35, 0xf9, 0x3f, 0x9c, 0xaf, 0x63, + 0x6c, 0x78, 0xd8, 0x22, 0x5d, 0x82, 0x1d, 0xdf, 0x30, 0x6d, 0xdb, 0xc3, 0x94, 0xf2, 0x2f, 0x22, + 0x45, 0x7e, 0x85, 0x9c, 0xab, 0x63, 0xac, 0x87, 0x16, 0xf7, 0x84, 0x41, 0xa8, 0x43, 0xd0, 0xd7, + 0xa1, 0x0b, 0x90, 0xe7, 0x8d, 0x34, 0x8b, 0xa0, 0x20, 0x4e, 0x73, 0xfe, 0xbe, 0x6f, 0x6b, 0xbf, + 0x67, 0xe3, 0x0a, 0xf3, 0x4f, 0xaf, 0xe5, 0x40, 0x3e, 0x67, 0x86, 0xe4, 0xf3, 0x31, 0x2c, 0x84, + 0xcd, 0x9f, 0x61, 0xe3, 0xb6, 0x6f, 0xca, 0x0f, 0xf4, 0xad, 0x51, 0x62, 0x16, 0x2a, 0xd1, 0x1e, + 0x73, 0xd0, 0xe7, 0xbb, 0xf1, 0x57, 0x56, 0xbc, 0x5d, 0xb3, 0xe7, 0x06, 0xfe, 0x99, 0x8a, 0x57, + 0xb8, 0xbc, 0xbf, 0xe5, 0x55, 0x3e, 0xc0, 0xf2, 0x1e, 0x41, 0x31, 0x71, 0x01, 0x72, 0x15, 0x16, + 0x12, 0x0b, 0xc0, 0xce, 0xc3, 0x2c, 0x5b, 0xa7, 0xf8, 0x0a, 0xf0, 0x93, 0x2e, 0xda, 0x01, 0xa2, + 0x81, 0x52, 0x74, 0x25, 0xdc, 0x02, 0x54, 0xfb, 0x1c, 0x16, 0x53, 0x9f, 0xdd, 0xef, 0x09, 0xf8, + 0x08, 0x8a, 0x89, 0xbb, 0x8e, 0xf7, 0x83, 0xba, 0x1d, 0x6b, 0xfa, 0x25, 0x70, 0xd2, 0x23, 0x33, + 0xe8, 0x81, 0x06, 0xef, 0xe4, 0xd0, 0x2a, 0xe4, 0x25, 0x69, 0xe8, 0x12, 0xbd, 0x6b, 0xf7, 0x40, + 0x3d, 0xed, 0x66, 0x6d, 0xc2, 0x28, 0xb4, 0x1b, 0xb0, 0x34, 0x70, 0xdb, 0x90, 0x10, 0xf3, 0x6c, + 0x5f, 0xcc, 0xaf, 0x1f, 0x30, 0xe3, 0x54, 0xa3, 0x82, 0x16, 0xa1, 0xf0, 0xc4, 0xa1, 0x5d, 0x6c, + 0x91, 0x3a, 0xc1, 0x76, 0x69, 0x0a, 0x01, 0xe4, 0xaa, 0xae, 0xdb, 0xc2, 0x76, 0x29, 0x83, 0x0a, + 0x30, 0xf7, 0xc8, 0xf4, 0xad, 0x26, 0xb6, 0x4b, 0xd3, 0x68, 0x1e, 0x94, 0x5d, 0x16, 0x5a, 0xbb, + 0x8d, 0xed, 0x52, 0x76, 0xa7, 0x01, 0x39, 0x71, 0x73, 0x81, 0x9e, 0x45, 0x4f, 0xd7, 0x46, 0xb4, + 0x7a, 0xf1, 0x6b, 0xcf, 0xd5, 0xcd, 0xf1, 0x86, 0xe2, 0x3a, 0x64, 0x3b, 0x53, 0xfd, 0xf2, 0xe5, + 0x9b, 0xb5, 0xcc, 0xab, 0x37, 0x6b, 0x99, 0x3f, 0xdf, 0xac, 0x65, 0x5e, 0xbc, 0x5d, 0x9b, 0x7a, + 0xf5, 0x76, 0x6d, 0xea, 0xd7, 0xb7, 0x6b, 0x53, 0x4f, 0xf7, 0x62, 0x5f, 0x08, 0xfb, 0x21, 0xde, + 0x81, 0x59, 0xa3, 0x95, 0x08, 0xfd, 0x96, 0xe5, 0x7a, 0x38, 0xfe, 0xda, 0x34, 0x89, 0x13, 0x5e, + 0x23, 0xf3, 0x6f, 0x88, 0x5a, 0x8e, 0xdf, 0xcd, 0xfe, 0xf7, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x78, 0x25, 0xda, 0xad, 0x67, 0x16, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/stream/types/request.go b/chain/stream/types/request.go index d78d5031..3bf542aa 100644 --- a/chain/stream/types/request.go +++ b/chain/stream/types/request.go @@ -39,3 +39,16 @@ func NewFullStreamRequest() *StreamRequest { }, } } + +// Empty query matches any set of events. +type Empty struct { +} + +// Matches always returns true. +func (Empty) Matches(tags map[string][]string) (bool, error) { + return true, nil +} + +func (Empty) String() string { + return "empty" +} diff --git a/chain/tokenfactory/types/codec.go b/chain/tokenfactory/types/codec.go index 174c4f91..1cd69979 100644 --- a/chain/tokenfactory/types/codec.go +++ b/chain/tokenfactory/types/codec.go @@ -5,9 +5,6 @@ import ( cdctypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" - // this line is used by starport scaffolding # 1 "github.com/cosmos/cosmos-sdk/types/msgservice" ) @@ -21,6 +18,8 @@ func RegisterCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&MsgChangeAdmin{}, "injective/tokenfactory/change-admin", nil) cdc.RegisterConcrete(&MsgUpdateParams{}, "injective/tokenfactory/update-params", nil) cdc.RegisterConcrete(&MsgSetDenomMetadata{}, "injective/tokenfactory/set-denom-metadata", nil) + cdc.RegisterConcrete(&Params{}, "injective/tokenfactory/Params", nil) + } func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { @@ -38,18 +37,15 @@ func RegisterInterfaces(registry cdctypes.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterCodec(amino) + RegisterCodec(ModuleCdc) // Register all Amino interfaces and concrete types on the authz Amino codec so that this can later be // used to properly serialize MsgGrant and MsgExec instances - sdk.RegisterLegacyAminoCodec(amino) - RegisterCodec(govcdc.Amino) + sdk.RegisterLegacyAminoCodec(ModuleCdc) RegisterCodec(authzcdc.Amino) - RegisterCodec(groupcdc.Amino) - amino.Seal() + ModuleCdc.Seal() } diff --git a/chain/tokenfactory/types/denoms.go b/chain/tokenfactory/types/denoms.go index 7b975add..a31d5cef 100644 --- a/chain/tokenfactory/types/denoms.go +++ b/chain/tokenfactory/types/denoms.go @@ -1,6 +1,7 @@ package types import ( + "context" "fmt" "strings" @@ -104,7 +105,7 @@ func DeconstructDenom(denom string) (creator, subdenom string, err error) { // NewTokenFactoryDenomMintCoinsRestriction creates and returns a MintingRestrictionFn that only allows minting of // valid tokenfactory denoms func NewTokenFactoryDenomMintCoinsRestriction() banktypes.MintingRestrictionFn { - return func(ctx sdk.Context, coinsToMint sdk.Coins) error { + return func(ctx context.Context, coinsToMint sdk.Coins) error { for _, coin := range coinsToMint { _, _, err := DeconstructDenom(coin.Denom) if err != nil { diff --git a/chain/tokenfactory/types/expected_keepers.go b/chain/tokenfactory/types/expected_keepers.go index 4dfa4edc..27c25b23 100644 --- a/chain/tokenfactory/types/expected_keepers.go +++ b/chain/tokenfactory/types/expected_keepers.go @@ -1,32 +1,35 @@ package types import ( + "context" + sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" ) type BankKeeper interface { // Methods imported from bank should be defined here - GetDenomMetaData(ctx sdk.Context, denom string) (banktypes.Metadata, bool) - SetDenomMetaData(ctx sdk.Context, denomMetaData banktypes.Metadata) + GetDenomMetaData(ctx context.Context, denom string) (banktypes.Metadata, bool) + SetDenomMetaData(ctx context.Context, denomMetaData banktypes.Metadata) - HasSupply(ctx sdk.Context, denom string) bool + HasSupply(ctx context.Context, denom string) bool - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + MintCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error - SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error - HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool + SendCoins(ctx context.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error + HasBalance(ctx context.Context, addr sdk.AccAddress, amt sdk.Coin) bool + BlockedAddr(addr sdk.AccAddress) bool } type AccountKeeper interface { - SetModuleAccount(ctx sdk.Context, macc authtypes.ModuleAccountI) + SetModuleAccount(ctx context.Context, macc sdk.ModuleAccountI) + NewAccount(ctx context.Context, acc sdk.AccountI) sdk.AccountI } // CommunityPoolKeeper defines the contract needed to be fulfilled for community pool interactions. type CommunityPoolKeeper interface { - FundCommunityPool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error + FundCommunityPool(ctx context.Context, amount sdk.Coins, sender sdk.AccAddress) error } diff --git a/chain/tokenfactory/types/genesis.pb.go b/chain/tokenfactory/types/genesis.pb.go index 85a59947..bf6e4160 100644 --- a/chain/tokenfactory/types/genesis.pb.go +++ b/chain/tokenfactory/types/genesis.pb.go @@ -85,6 +85,7 @@ type GenesisDenom struct { AuthorityMetadata DenomAuthorityMetadata `protobuf:"bytes,2,opt,name=authority_metadata,json=authorityMetadata,proto3" json:"authority_metadata" yaml:"authority_metadata"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` + Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` } func (m *GenesisDenom) Reset() { *m = GenesisDenom{} } @@ -148,6 +149,13 @@ func (m *GenesisDenom) GetSymbol() string { return "" } +func (m *GenesisDenom) GetDecimals() uint32 { + if m != nil { + return m.Decimals + } + return 0 +} + func init() { proto.RegisterType((*GenesisState)(nil), "injective.tokenfactory.v1beta1.GenesisState") proto.RegisterType((*GenesisDenom)(nil), "injective.tokenfactory.v1beta1.GenesisDenom") @@ -158,34 +166,36 @@ func init() { } var fileDescriptor_a7bae9323951328f = []byte{ - // 428 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x8b, 0xd3, 0x40, - 0x18, 0x86, 0x33, 0xdd, 0x58, 0x70, 0xba, 0xab, 0xee, 0xa0, 0x10, 0x17, 0x4c, 0xd6, 0x08, 0x4b, - 0xc5, 0x9a, 0xd0, 0x0a, 0x3d, 0xf4, 0x66, 0x28, 0x88, 0xa0, 0x20, 0xf1, 0xe6, 0xa5, 0x4c, 0xd2, - 0x31, 0x8d, 0x66, 0x32, 0x25, 0x99, 0x16, 0xf2, 0x0f, 0x3c, 0x7a, 0xf3, 0xea, 0xcf, 0xe9, 0xb1, - 0x47, 0x4f, 0x41, 0xda, 0x8b, 0xe7, 0xfc, 0x02, 0xc9, 0xcc, 0x18, 0x5a, 0x0b, 0x9b, 0xdb, 0xcc, - 0x37, 0xcf, 0xfb, 0x7d, 0xef, 0x3b, 0x33, 0x70, 0x10, 0xa7, 0x5f, 0x48, 0xc8, 0xe3, 0x35, 0x71, - 0x39, 0xfb, 0x4a, 0xd2, 0xcf, 0x38, 0xe4, 0x2c, 0x2b, 0xdc, 0xf5, 0x30, 0x20, 0x1c, 0x0f, 0xdd, - 0x88, 0xa4, 0x24, 0x8f, 0x73, 0x67, 0x99, 0x31, 0xce, 0x90, 0xd9, 0xd0, 0xce, 0x21, 0xed, 0x28, - 0xfa, 0xea, 0x61, 0xc4, 0x22, 0x26, 0x50, 0xb7, 0x5e, 0x49, 0xd5, 0xd5, 0xb8, 0x65, 0x06, 0x5e, - 0xf1, 0x05, 0xcb, 0x62, 0x5e, 0xbc, 0x27, 0x1c, 0xcf, 0x31, 0xc7, 0x4a, 0xf7, 0xa2, 0x45, 0xb7, - 0xc4, 0x19, 0xa6, 0xca, 0x9a, 0xbd, 0x01, 0xf0, 0xfc, 0x8d, 0x34, 0xfb, 0x91, 0x63, 0x4e, 0xd0, - 0x14, 0x76, 0x25, 0x60, 0x80, 0x6b, 0xd0, 0xef, 0x8d, 0x6e, 0x9c, 0xdb, 0xcd, 0x3b, 0x1f, 0x04, - 0xed, 0xe9, 0x9b, 0xd2, 0xd2, 0x7c, 0xa5, 0x45, 0x19, 0xbc, 0xa7, 0xb8, 0xd9, 0x9c, 0xa4, 0x8c, - 0xe6, 0x46, 0xe7, 0xfa, 0xac, 0xdf, 0x1b, 0x0d, 0xda, 0xba, 0x29, 0x2f, 0xd3, 0x5a, 0xe4, 0x3d, - 0xa9, 0x7b, 0x56, 0xa5, 0xf5, 0xa8, 0xc0, 0x34, 0x99, 0xd8, 0xc7, 0x1d, 0x6d, 0xff, 0x42, 0x15, - 0xa6, 0x72, 0xff, 0xa3, 0xd3, 0x44, 0x11, 0x15, 0x74, 0x03, 0xef, 0x08, 0x54, 0x24, 0xb9, 0xeb, - 0x3d, 0xa8, 0x4a, 0xeb, 0x5c, 0x76, 0x12, 0x65, 0xdb, 0x97, 0xc7, 0xe8, 0x1b, 0x80, 0xa8, 0xb9, - 0xcc, 0x19, 0x55, 0xb7, 0x69, 0x74, 0x44, 0xfe, 0x71, 0x9b, 0x63, 0x31, 0xeb, 0xf5, 0xff, 0x6f, - 0xe1, 0x3d, 0x55, 0xde, 0x1f, 0xcb, 0x89, 0xa7, 0xfd, 0x6d, 0xff, 0xf2, 0xe4, 0x05, 0xd1, 0x33, - 0xa8, 0xa7, 0x98, 0x12, 0xe3, 0x4c, 0x38, 0xbe, 0x5f, 0x95, 0x56, 0x4f, 0xea, 0xeb, 0xaa, 0xed, - 0x8b, 0x43, 0xf4, 0x1c, 0x76, 0xf3, 0x82, 0x06, 0x2c, 0x31, 0x74, 0x81, 0x5d, 0x56, 0xa5, 0x75, - 0x21, 0x31, 0x59, 0xb7, 0x7d, 0x05, 0x4c, 0xf4, 0x3f, 0x3f, 0x2d, 0xe0, 0x25, 0x9b, 0x9d, 0x09, - 0xb6, 0x3b, 0x13, 0xfc, 0xde, 0x99, 0xe0, 0xfb, 0xde, 0xd4, 0xb6, 0x7b, 0x53, 0xfb, 0xb5, 0x37, - 0xb5, 0x4f, 0x7e, 0x14, 0xf3, 0xc5, 0x2a, 0x70, 0x42, 0x46, 0xdd, 0xb7, 0xff, 0x72, 0xbe, 0xc3, - 0x41, 0xee, 0x36, 0xa9, 0x5f, 0x86, 0x2c, 0x23, 0x87, 0xdb, 0x05, 0x8e, 0x53, 0x97, 0xb2, 0xf9, - 0x2a, 0x21, 0xf9, 0xf1, 0x0f, 0xe3, 0xc5, 0x92, 0xe4, 0x41, 0x57, 0xfc, 0xac, 0x57, 0x7f, 0x03, - 0x00, 0x00, 0xff, 0xff, 0x0c, 0x9b, 0x79, 0xd8, 0x24, 0x03, 0x00, 0x00, + // 455 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x41, 0x6f, 0xd3, 0x30, + 0x14, 0xc7, 0xeb, 0xae, 0xab, 0xc0, 0x5d, 0x19, 0x33, 0x20, 0x85, 0x49, 0x24, 0xc5, 0x48, 0x53, + 0x11, 0x23, 0xd6, 0x86, 0xb4, 0xc3, 0x6e, 0x44, 0x95, 0x10, 0x12, 0x48, 0xc8, 0xdc, 0xb8, 0x4c, + 0x4e, 0x6a, 0xda, 0x40, 0x1c, 0x57, 0xb1, 0x3b, 0x29, 0xdf, 0x80, 0x23, 0x1f, 0x81, 0x8f, 0xd3, + 0xe3, 0x8e, 0x9c, 0x22, 0xd4, 0x5e, 0x38, 0xe7, 0x13, 0xa0, 0xda, 0x5e, 0xb4, 0x51, 0x69, 0xbd, + 0xd9, 0xef, 0xfd, 0xfe, 0xef, 0xfd, 0xdf, 0xb3, 0xe1, 0x71, 0x9a, 0x7f, 0xe3, 0x89, 0x4e, 0x2f, + 0x39, 0xd1, 0xf2, 0x3b, 0xcf, 0xbf, 0xb2, 0x44, 0xcb, 0xa2, 0x24, 0x97, 0x27, 0x31, 0xd7, 0xec, + 0x84, 0x4c, 0x78, 0xce, 0x55, 0xaa, 0xc2, 0x59, 0x21, 0xb5, 0x44, 0x7e, 0x43, 0x87, 0x37, 0xe9, + 0xd0, 0xd1, 0x87, 0x8f, 0x27, 0x72, 0x22, 0x0d, 0x4a, 0xd6, 0x27, 0xab, 0x3a, 0x3c, 0xdb, 0xd2, + 0x83, 0xcd, 0xf5, 0x54, 0x16, 0xa9, 0x2e, 0x3f, 0x72, 0xcd, 0xc6, 0x4c, 0x33, 0xa7, 0x7b, 0xb5, + 0x45, 0x37, 0x63, 0x05, 0x13, 0xce, 0x1a, 0x5e, 0x00, 0xb8, 0xf7, 0xce, 0x9a, 0xfd, 0xac, 0x99, + 0xe6, 0x68, 0x04, 0xbb, 0x16, 0xf0, 0xc0, 0x00, 0x0c, 0x7b, 0xa7, 0x47, 0xe1, 0xdd, 0xe6, 0xc3, + 0x4f, 0x86, 0x8e, 0x3a, 0x8b, 0x2a, 0x68, 0x51, 0xa7, 0x45, 0x05, 0x7c, 0xe0, 0xb8, 0x8b, 0x31, + 0xcf, 0xa5, 0x50, 0x5e, 0x7b, 0xb0, 0x33, 0xec, 0x9d, 0x1e, 0x6f, 0xab, 0xe6, 0xbc, 0x8c, 0xd6, + 0xa2, 0xe8, 0xd9, 0xba, 0x66, 0x5d, 0x05, 0x4f, 0x4a, 0x26, 0xb2, 0x73, 0x7c, 0xbb, 0x22, 0xa6, + 0x7d, 0x17, 0x18, 0xd9, 0xfb, 0xa2, 0xdd, 0x8c, 0x62, 0x22, 0xe8, 0x08, 0xee, 0x1a, 0xd4, 0x4c, + 0x72, 0x3f, 0x7a, 0x58, 0x57, 0xc1, 0x9e, 0xad, 0x64, 0xc2, 0x98, 0xda, 0x34, 0xfa, 0x01, 0x20, + 0x6a, 0x96, 0x79, 0x21, 0xdc, 0x36, 0xbd, 0xb6, 0x99, 0xff, 0x6c, 0x9b, 0x63, 0xd3, 0xeb, 0xed, + 0xff, 0x6f, 0x11, 0x3d, 0x77, 0xde, 0x9f, 0xda, 0x8e, 0x9b, 0xf5, 0x31, 0x3d, 0xd8, 0x78, 0x41, + 0xf4, 0x02, 0x76, 0x72, 0x26, 0xb8, 0xb7, 0x63, 0x1c, 0xef, 0xd7, 0x55, 0xd0, 0xb3, 0xfa, 0x75, + 0x14, 0x53, 0x93, 0x44, 0x2f, 0x61, 0x57, 0x95, 0x22, 0x96, 0x99, 0xd7, 0x31, 0xd8, 0x41, 0x5d, + 0x05, 0x7d, 0x8b, 0xd9, 0x38, 0xa6, 0x0e, 0x40, 0x04, 0xde, 0x1b, 0xf3, 0x24, 0x15, 0x2c, 0x53, + 0xde, 0xee, 0x00, 0x0c, 0xfb, 0xd1, 0xa3, 0xba, 0x0a, 0xf6, 0xaf, 0xb7, 0x60, 0x33, 0x98, 0x36, + 0xd0, 0x79, 0xe7, 0xef, 0xaf, 0x00, 0x44, 0xd9, 0x62, 0xe9, 0x83, 0xab, 0xa5, 0x0f, 0xfe, 0x2c, + 0x7d, 0xf0, 0x73, 0xe5, 0xb7, 0xae, 0x56, 0x7e, 0xeb, 0xf7, 0xca, 0x6f, 0x7d, 0xa1, 0x93, 0x54, + 0x4f, 0xe7, 0x71, 0x98, 0x48, 0x41, 0xde, 0x5f, 0x2f, 0xe6, 0x03, 0x8b, 0x15, 0x69, 0xd6, 0xf4, + 0x3a, 0x91, 0x05, 0xbf, 0x79, 0x9d, 0xb2, 0x34, 0x27, 0x42, 0x8e, 0xe7, 0x19, 0x57, 0xb7, 0xbf, + 0xa4, 0x2e, 0x67, 0x5c, 0xc5, 0x5d, 0xf3, 0x15, 0xdf, 0xfc, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xb1, + 0x74, 0x8d, 0xe9, 0x55, 0x03, 0x00, 0x00, } func (this *GenesisDenom) Equal(that interface{}) bool { @@ -219,6 +229,9 @@ func (this *GenesisDenom) Equal(that interface{}) bool { if this.Symbol != that1.Symbol { return false } + if this.Decimals != that1.Decimals { + return false + } return true } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -288,6 +301,11 @@ func (m *GenesisDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Decimals != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.Decimals)) + i-- + dAtA[i] = 0x28 + } if len(m.Symbol) > 0 { i -= len(m.Symbol) copy(dAtA[i:], m.Symbol) @@ -370,6 +388,9 @@ func (m *GenesisDenom) Size() (n int) { if l > 0 { n += 1 + l + sovGenesis(uint64(l)) } + if m.Decimals != 0 { + n += 1 + sovGenesis(uint64(m.Decimals)) + } return n } @@ -654,6 +675,25 @@ func (m *GenesisDenom) Unmarshal(dAtA []byte) error { } m.Symbol = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Decimals", wireType) + } + m.Decimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Decimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/chain/tokenfactory/types/gov.go b/chain/tokenfactory/types/gov.go new file mode 100644 index 00000000..346c24ae --- /dev/null +++ b/chain/tokenfactory/types/gov.go @@ -0,0 +1,54 @@ +package types + +import ( + errorsmod "cosmossdk.io/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" +) + +const ( + ProposalTypeUpdateDenomsMetaData = "UpdateDenomsMetaData" +) + +func init() { + govtypes.RegisterProposalType(ProposalTypeUpdateDenomsMetaData) +} + +var ( + _ govtypes.Content = &UpdateDenomsMetadataProposal{} +) + +func NewUpdateDenomsMetadataProposal(title, description string, metadatas []banktypes.Metadata) govtypes.Content { + return &UpdateDenomsMetadataProposal{ + Title: title, + Description: description, + Metadatas: metadatas, + } +} + +func (p *UpdateDenomsMetadataProposal) GetTitle() string { return p.Title } + +func (p *UpdateDenomsMetadataProposal) GetDescription() string { return p.Description } + +func (p *UpdateDenomsMetadataProposal) ProposalRoute() string { return RouterKey } + +func (p *UpdateDenomsMetadataProposal) ProposalType() string { + return ProposalTypeUpdateDenomsMetaData +} + +func (p *UpdateDenomsMetadataProposal) ValidateBasic() error { + err := govtypes.ValidateAbstract(p) + if err != nil { + return err + } + + for idx := range p.Metadatas { + metadata := p.Metadatas[idx] + if metadata.Base == "" { + return errorsmod.Wrapf(sdkerrors.ErrInvalidRequest, "invalid denom (%s)", metadata.Base) + } + } + + return nil +} diff --git a/chain/tokenfactory/types/gov.pb.go b/chain/tokenfactory/types/gov.pb.go new file mode 100644 index 00000000..0a090625 --- /dev/null +++ b/chain/tokenfactory/types/gov.pb.go @@ -0,0 +1,465 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: injective/tokenfactory/v1beta1/gov.proto + +package types + +import ( + fmt "fmt" + types "github.com/cosmos/cosmos-sdk/x/bank/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 + +type UpdateDenomsMetadataProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + Metadatas []types.Metadata `protobuf:"bytes,3,rep,name=metadatas,proto3" json:"metadatas"` + Deposit string `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty" yaml:"deposit"` +} + +func (m *UpdateDenomsMetadataProposal) Reset() { *m = UpdateDenomsMetadataProposal{} } +func (m *UpdateDenomsMetadataProposal) String() string { return proto.CompactTextString(m) } +func (*UpdateDenomsMetadataProposal) ProtoMessage() {} +func (*UpdateDenomsMetadataProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_2c4dd8ce2ae85492, []int{0} +} +func (m *UpdateDenomsMetadataProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UpdateDenomsMetadataProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UpdateDenomsMetadataProposal.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *UpdateDenomsMetadataProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateDenomsMetadataProposal.Merge(m, src) +} +func (m *UpdateDenomsMetadataProposal) XXX_Size() int { + return m.Size() +} +func (m *UpdateDenomsMetadataProposal) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateDenomsMetadataProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateDenomsMetadataProposal proto.InternalMessageInfo + +func init() { + proto.RegisterType((*UpdateDenomsMetadataProposal)(nil), "injective.tokenfactory.v1beta1.UpdateDenomsMetadataProposal") +} + +func init() { + proto.RegisterFile("injective/tokenfactory/v1beta1/gov.proto", fileDescriptor_2c4dd8ce2ae85492) +} + +var fileDescriptor_2c4dd8ce2ae85492 = []byte{ + // 332 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x91, 0xc1, 0x4e, 0xf2, 0x40, + 0x14, 0x85, 0xdb, 0x1f, 0x7e, 0x0d, 0x25, 0x71, 0xd1, 0xb0, 0x68, 0x88, 0x0e, 0x84, 0x15, 0x0b, + 0x9d, 0x09, 0xba, 0x63, 0x27, 0x71, 0x63, 0xa2, 0x89, 0x69, 0xe2, 0xc6, 0xdd, 0xb4, 0xbd, 0x96, + 0x91, 0xb6, 0x77, 0xd2, 0xb9, 0x90, 0xf0, 0x06, 0x2e, 0x7d, 0x04, 0x1f, 0x87, 0x8d, 0x09, 0x4b, + 0x57, 0xc4, 0xc0, 0x1b, 0xf8, 0x04, 0x86, 0xb6, 0x20, 0xee, 0x7a, 0x7a, 0xbe, 0x7b, 0xcf, 0xcd, + 0x19, 0xa7, 0xaf, 0xb2, 0x17, 0x08, 0x49, 0xcd, 0x40, 0x10, 0x4e, 0x20, 0x7b, 0x96, 0x21, 0x61, + 0x3e, 0x17, 0xb3, 0x41, 0x00, 0x24, 0x07, 0x22, 0xc6, 0x19, 0xd7, 0x39, 0x12, 0xba, 0x6c, 0x4f, + 0xf2, 0x43, 0x92, 0x57, 0x64, 0xbb, 0x15, 0x63, 0x8c, 0x05, 0x2a, 0xb6, 0x5f, 0xe5, 0x54, 0x9b, + 0x85, 0x68, 0x52, 0x34, 0x22, 0x90, 0xd9, 0x64, 0xbf, 0x74, 0x2b, 0x4a, 0xbf, 0xf7, 0x61, 0x3b, + 0xa7, 0x8f, 0x3a, 0x92, 0x04, 0x37, 0x90, 0x61, 0x6a, 0xee, 0x81, 0x64, 0x24, 0x49, 0x3e, 0xe4, + 0xa8, 0xd1, 0xc8, 0xc4, 0x6d, 0x39, 0xff, 0x49, 0x51, 0x02, 0x9e, 0xdd, 0xb5, 0xfb, 0x0d, 0xbf, + 0x14, 0x6e, 0xd7, 0x69, 0x46, 0x60, 0xc2, 0x5c, 0x69, 0x52, 0x98, 0x79, 0xff, 0x0a, 0xef, 0xf0, + 0x97, 0x7b, 0xed, 0x34, 0xd2, 0x6a, 0x97, 0xf1, 0x6a, 0xdd, 0x5a, 0xbf, 0x79, 0x79, 0xc6, 0xcb, + 0x63, 0x78, 0x91, 0x5f, 0x1d, 0xc3, 0x77, 0x89, 0xa3, 0xfa, 0x62, 0xd5, 0xb1, 0xfc, 0xdf, 0x29, + 0xf7, 0xdc, 0x39, 0x8e, 0x40, 0xa3, 0x51, 0xe4, 0xd5, 0xb7, 0x01, 0x23, 0xf7, 0x7b, 0xd5, 0x39, + 0x99, 0xcb, 0x34, 0x19, 0xf6, 0x2a, 0xa3, 0xe7, 0xef, 0x90, 0x61, 0xfd, 0xf5, 0xbd, 0x63, 0x8d, + 0x92, 0xc5, 0x9a, 0xd9, 0xcb, 0x35, 0xb3, 0xbf, 0xd6, 0xcc, 0x7e, 0xdb, 0x30, 0x6b, 0xb9, 0x61, + 0xd6, 0xe7, 0x86, 0x59, 0x4f, 0x7e, 0xac, 0x68, 0x3c, 0x0d, 0x78, 0x88, 0xa9, 0xb8, 0xdd, 0x55, + 0x79, 0x27, 0x03, 0x23, 0xf6, 0xc5, 0x5e, 0x84, 0x98, 0xc3, 0xa1, 0x1c, 0x4b, 0x95, 0x89, 0x14, + 0xa3, 0x69, 0x02, 0xe6, 0xef, 0xfb, 0xd0, 0x5c, 0x83, 0x09, 0x8e, 0x8a, 0x12, 0xaf, 0x7e, 0x02, + 0x00, 0x00, 0xff, 0xff, 0x31, 0xc4, 0xfd, 0x93, 0xc6, 0x01, 0x00, 0x00, +} + +func (m *UpdateDenomsMetadataProposal) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateDenomsMetadataProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UpdateDenomsMetadataProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Deposit) > 0 { + i -= len(m.Deposit) + copy(dAtA[i:], m.Deposit) + i = encodeVarintGov(dAtA, i, uint64(len(m.Deposit))) + i-- + dAtA[i] = 0x22 + } + if len(m.Metadatas) > 0 { + for iNdEx := len(m.Metadatas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Metadatas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGov(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGov(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintGov(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintGov(dAtA []byte, offset int, v uint64) int { + offset -= sovGov(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *UpdateDenomsMetadataProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovGov(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovGov(uint64(l)) + } + if len(m.Metadatas) > 0 { + for _, e := range m.Metadatas { + l = e.Size() + n += 1 + l + sovGov(uint64(l)) + } + } + l = len(m.Deposit) + if l > 0 { + n += 1 + l + sovGov(uint64(l)) + } + return n +} + +func sovGov(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGov(x uint64) (n int) { + return sovGov(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *UpdateDenomsMetadataProposal) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateDenomsMetadataProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateDenomsMetadataProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + 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 ErrInvalidLengthGov + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGov + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + 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 ErrInvalidLengthGov + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGov + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadatas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGov + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGov + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metadatas = append(m.Metadatas, types.Metadata{}) + if err := m.Metadatas[len(m.Metadatas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Deposit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGov + } + 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 ErrInvalidLengthGov + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGov + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Deposit = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGov(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGov + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGov(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, ErrIntOverflowGov + } + 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, ErrIntOverflowGov + } + 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, ErrIntOverflowGov + } + 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, ErrInvalidLengthGov + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGov + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGov + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGov = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGov = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGov = fmt.Errorf("proto: unexpected end of group") +) diff --git a/chain/tokenfactory/types/msgs.go b/chain/tokenfactory/types/msgs.go index 6e5d083d..c3a62338 100644 --- a/chain/tokenfactory/types/msgs.go +++ b/chain/tokenfactory/types/msgs.go @@ -2,9 +2,12 @@ package types import ( "cosmossdk.io/errors" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/chain/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "strings" ) // constants @@ -14,7 +17,6 @@ const ( TypeMsgBurn = "tf_burn" TypeMsgChangeAdmin = "change_admin" TypeMsgSetDenomMetadata = "set_denom_metadata" - TypeMsgForceTransfer = "force_transfer" TypeMsgUpdateParams = "update_params" ) @@ -51,12 +53,13 @@ func (m MsgUpdateParams) GetSigners() []sdk.AccAddress { } // NewMsgCreateDenom creates a msg to create a new denom -func NewMsgCreateDenom(sender, subdenom, name, symbol string) *MsgCreateDenom { +func NewMsgCreateDenom(sender, subdenom, name, symbol string, decimals uint32) *MsgCreateDenom { return &MsgCreateDenom{ Sender: sender, Subdenom: subdenom, Name: name, Symbol: symbol, + Decimals: decimals, } } @@ -101,7 +104,7 @@ func (m MsgMint) ValidateBasic() error { return errors.Wrapf(sdkerrors.ErrInvalidAddress, "Invalid sender address (%s)", err) } - if !m.Amount.IsValid() || m.Amount.Amount.Equal(sdk.ZeroInt()) { + if !m.Amount.IsValid() || m.Amount.Amount.Equal(math.ZeroInt()) { return errors.Wrap(sdkerrors.ErrInvalidCoins, m.Amount.String()) } @@ -209,11 +212,24 @@ func (m MsgSetDenomMetadata) ValidateBasic() error { return err } - _, _, err = DeconstructDenom(m.Metadata.Base) + if m.Metadata.Base == types.InjectiveCoin { + return errors.Wrap(ErrInvalidDenom, "cannot set metadata for INJ") + } + + err = sdk.ValidateDenom(m.Metadata.Base) if err != nil { return err } + // If denom metadata is for a TokenFactory denom, run the different components validations + strParts := strings.Split(m.Metadata.Base, "/") + if len(strParts) > 2 { + _, _, err = DeconstructDenom(m.Metadata.Base) + if err != nil { + return err + } + } + return nil } diff --git a/chain/tokenfactory/types/params.pb.go b/chain/tokenfactory/types/params.pb.go index 9d705d9c..ff3228f9 100644 --- a/chain/tokenfactory/types/params.pb.go +++ b/chain/tokenfactory/types/params.pb.go @@ -8,6 +8,7 @@ import ( _ "github.com/cosmos/cosmos-proto" 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" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -80,28 +81,29 @@ func init() { } var fileDescriptor_91405c82ccfd2f8a = []byte{ - // 323 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0xb1, 0x6a, 0x32, 0x41, - 0x14, 0x85, 0x77, 0xf9, 0xc1, 0xc2, 0xbf, 0x09, 0x92, 0x22, 0x5a, 0x8c, 0xc1, 0x4a, 0x08, 0xee, - 0x60, 0x02, 0x29, 0x52, 0x2a, 0x04, 0x02, 0x11, 0x82, 0x65, 0x1a, 0xb9, 0x3b, 0x7b, 0xd5, 0x89, - 0xee, 0x5c, 0xd9, 0xb9, 0x0a, 0xfb, 0x16, 0xa9, 0xd2, 0xa7, 0xcd, 0x93, 0x58, 0x5a, 0xa6, 0x32, - 0x41, 0xdf, 0x20, 0x4f, 0x10, 0x9c, 0x1d, 0xc5, 0x90, 0x22, 0xd5, 0xcc, 0xe5, 0x9e, 0xf3, 0xcd, - 0x99, 0x53, 0xbe, 0xd0, 0xe6, 0x09, 0x15, 0xeb, 0x05, 0x4a, 0xa6, 0x09, 0x9a, 0x21, 0x28, 0xa6, - 0x2c, 0x97, 0x8b, 0x76, 0x8c, 0x0c, 0x6d, 0x39, 0x83, 0x0c, 0x52, 0x1b, 0xcd, 0x32, 0x62, 0xaa, - 0x88, 0x83, 0x38, 0x3a, 0x16, 0x47, 0x5e, 0x5c, 0x3b, 0x1d, 0xd1, 0x88, 0x9c, 0x54, 0xee, 0x6e, - 0x85, 0xab, 0x76, 0xfd, 0xc7, 0x13, 0x30, 0xe7, 0x31, 0x65, 0x9a, 0xf3, 0x1e, 0x32, 0x24, 0xc0, - 0xe0, 0x7d, 0x55, 0x45, 0x36, 0x25, 0x3b, 0x28, 0x80, 0xc5, 0xe0, 0x57, 0xa2, 0x98, 0x64, 0x0c, - 0x16, 0x0f, 0x1c, 0x45, 0xda, 0x14, 0xfb, 0xc6, 0x6b, 0x58, 0x2e, 0x3d, 0xb8, 0xe4, 0x95, 0x97, - 0xb0, 0x5c, 0x49, 0xd0, 0x50, 0x3a, 0x50, 0x19, 0x02, 0x6b, 0x32, 0x83, 0x21, 0xe2, 0x59, 0x78, - 0xfe, 0xaf, 0xf9, 0xff, 0xb2, 0x1a, 0x79, 0xec, 0x0e, 0xb4, 0xff, 0x46, 0xd4, 0x25, 0x6d, 0x3a, - 0xbd, 0xe5, 0xba, 0x1e, 0x7c, 0xad, 0xeb, 0xd5, 0x1c, 0xd2, 0xe9, 0x4d, 0xe3, 0x37, 0xa2, 0xf1, - 0xf6, 0x51, 0x6f, 0x8e, 0x34, 0x8f, 0xe7, 0x71, 0xa4, 0x28, 0xf5, 0x01, 0xfd, 0xd1, 0xb2, 0xc9, - 0x44, 0x72, 0x3e, 0x43, 0xeb, 0x68, 0xb6, 0x7f, 0xe2, 0x00, 0x5d, 0xef, 0xbf, 0x45, 0xec, 0x4c, - 0x97, 0x1b, 0x11, 0xae, 0x36, 0x22, 0xfc, 0xdc, 0x88, 0xf0, 0x79, 0x2b, 0x82, 0xd5, 0x56, 0x04, - 0xef, 0x5b, 0x11, 0x3c, 0xf6, 0x8f, 0xa8, 0x77, 0xfb, 0xee, 0xee, 0x21, 0xb6, 0xf2, 0xd0, 0x64, - 0x4b, 0x51, 0x86, 0xc7, 0xe3, 0x18, 0xb4, 0x91, 0x29, 0x25, 0xf3, 0x29, 0xda, 0x9f, 0x35, 0xbb, - 0x14, 0x71, 0xc9, 0x15, 0x73, 0xf5, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xea, 0xbf, 0x7a, 0x46, 0xf0, - 0x01, 0x00, 0x00, + // 349 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x90, 0x31, 0x6b, 0x2a, 0x41, + 0x10, 0xc7, 0xef, 0x78, 0x60, 0xe1, 0x6b, 0xde, 0x93, 0x57, 0x3c, 0x85, 0xac, 0xe1, 0x2a, 0x49, + 0xf0, 0x16, 0x13, 0x48, 0x61, 0xa9, 0x10, 0x08, 0x44, 0x08, 0x96, 0x69, 0x64, 0xee, 0x6e, 0xd4, + 0x8d, 0xee, 0x8e, 0xdc, 0xae, 0xc2, 0x7d, 0x85, 0x54, 0xa9, 0xf2, 0x21, 0x52, 0xe5, 0x4b, 0x04, + 0x2c, 0x2d, 0x53, 0x99, 0xa0, 0x45, 0xfa, 0x7c, 0x82, 0xe0, 0xde, 0x2a, 0x86, 0x10, 0xd2, 0xec, + 0xee, 0xec, 0xfc, 0xe7, 0xf7, 0x9f, 0x99, 0xe2, 0xb1, 0x50, 0x37, 0x18, 0x1b, 0x31, 0x43, 0x6e, + 0x68, 0x84, 0xaa, 0x0f, 0xb1, 0xa1, 0x34, 0xe3, 0xb3, 0x46, 0x84, 0x06, 0x1a, 0x7c, 0x02, 0x29, + 0x48, 0x1d, 0x4e, 0x52, 0x32, 0x54, 0x62, 0x3b, 0x71, 0xb8, 0x2f, 0x0e, 0x9d, 0xb8, 0xf2, 0x6f, + 0x40, 0x03, 0xb2, 0x52, 0xbe, 0x79, 0xe5, 0x55, 0x95, 0xb3, 0x1f, 0x2c, 0x60, 0x6a, 0x86, 0x94, + 0x0a, 0x93, 0x75, 0xd0, 0x40, 0x02, 0x06, 0x5c, 0x5d, 0x39, 0x26, 0x2d, 0x49, 0xf7, 0x72, 0x60, + 0x1e, 0xb8, 0x14, 0xcb, 0x23, 0x1e, 0x81, 0xc6, 0x1d, 0x27, 0x26, 0xa1, 0x5c, 0xfe, 0x2f, 0x48, + 0xa1, 0x88, 0xdb, 0x33, 0xff, 0x0a, 0x9e, 0xfc, 0x62, 0xe1, 0xca, 0x0e, 0x53, 0xba, 0xf7, 0x8b, + 0xa5, 0x04, 0x15, 0xc9, 0x5e, 0x9c, 0x22, 0x18, 0x41, 0xaa, 0xd7, 0x47, 0xfc, 0xef, 0x1f, 0xfe, + 0xaa, 0xfd, 0x3e, 0x29, 0x87, 0xce, 0x69, 0xc3, 0xde, 0x4e, 0x16, 0xb6, 0x49, 0xa8, 0x56, 0x67, + 0xbe, 0xac, 0x7a, 0xef, 0xcb, 0x6a, 0x39, 0x03, 0x39, 0x6e, 0x06, 0x5f, 0x11, 0xc1, 0xc3, 0x4b, + 0xb5, 0x36, 0x10, 0x66, 0x38, 0x8d, 0xc2, 0x98, 0xa4, 0xeb, 0xd9, 0x5d, 0x75, 0x9d, 0x8c, 0xb8, + 0xc9, 0x26, 0xa8, 0x2d, 0x4d, 0x77, 0xff, 0x58, 0x40, 0xdb, 0xd5, 0x9f, 0x23, 0x36, 0x83, 0xdb, + 0xb7, 0xc7, 0xa3, 0x83, 0x6f, 0xd6, 0x95, 0x37, 0xdf, 0x1a, 0xcf, 0x57, 0xcc, 0x5f, 0xac, 0x98, + 0xff, 0xba, 0x62, 0xfe, 0xdd, 0x9a, 0x79, 0x8b, 0x35, 0xf3, 0x9e, 0xd7, 0xcc, 0xbb, 0xee, 0xee, + 0x39, 0x5f, 0x6c, 0x19, 0x97, 0x10, 0x69, 0xbe, 0x23, 0xd6, 0x63, 0x4a, 0x71, 0x3f, 0x1c, 0x82, + 0x50, 0x5c, 0x52, 0x32, 0x1d, 0xa3, 0xfe, 0x6c, 0x67, 0x3b, 0x8d, 0x0a, 0x76, 0x79, 0xa7, 0x1f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xcd, 0x91, 0xe3, 0x27, 0x02, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { diff --git a/chain/tokenfactory/types/tx.pb.go b/chain/tokenfactory/types/tx.pb.go index 214084f8..10dc706d 100644 --- a/chain/tokenfactory/types/tx.pb.go +++ b/chain/tokenfactory/types/tx.pb.go @@ -9,6 +9,7 @@ import ( _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" types1 "github.com/cosmos/cosmos-sdk/x/bank/types" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" @@ -47,6 +48,7 @@ type MsgCreateDenom struct { Subdenom string `protobuf:"bytes,2,opt,name=subdenom,proto3" json:"subdenom,omitempty" yaml:"subdenom"` Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty" yaml:"name"` Symbol string `protobuf:"bytes,4,opt,name=symbol,proto3" json:"symbol,omitempty" yaml:"symbol"` + Decimals uint32 `protobuf:"varint,5,opt,name=decimals,proto3" json:"decimals,omitempty" yaml:"decimals"` } func (m *MsgCreateDenom) Reset() { *m = MsgCreateDenom{} } @@ -110,6 +112,13 @@ func (m *MsgCreateDenom) GetSymbol() string { return "" } +func (m *MsgCreateDenom) GetDecimals() uint32 { + if m != nil { + return m.Decimals + } + return 0 +} + // MsgCreateDenomResponse is the return value of MsgCreateDenom // It returns the full string of the newly created denom type MsgCreateDenomResponse struct { @@ -640,57 +649,63 @@ func init() { } var fileDescriptor_b0b26fd7f19ce3c4 = []byte{ - // 789 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xcf, 0x6e, 0xd3, 0x4e, - 0x10, 0x8e, 0x7f, 0x4d, 0xf3, 0x6b, 0x37, 0x6d, 0xd3, 0xba, 0xa5, 0x4d, 0x83, 0xea, 0x20, 0x23, - 0xb5, 0xfc, 0x51, 0x6d, 0xa5, 0x95, 0x8a, 0x54, 0x4e, 0x4d, 0x7b, 0x00, 0x89, 0x48, 0xc8, 0x85, - 0x0b, 0x42, 0x2a, 0x9b, 0x78, 0x71, 0x4c, 0xe3, 0xdd, 0xc8, 0xbb, 0x69, 0x9b, 0x2b, 0xe2, 0xc6, - 0x85, 0x37, 0x40, 0x88, 0x17, 0xe0, 0xc0, 0x81, 0x47, 0x28, 0xb7, 0x8a, 0x13, 0xa7, 0x08, 0xb5, - 0x07, 0xee, 0x79, 0x02, 0xb4, 0xeb, 0xb5, 0x63, 0x37, 0x88, 0x3a, 0x9c, 0x38, 0x25, 0xbb, 0xf3, - 0x7d, 0x33, 0xdf, 0xcc, 0xce, 0x8c, 0xc1, 0x9a, 0x8b, 0x5f, 0xa1, 0x06, 0x73, 0x8f, 0x90, 0xc9, - 0xc8, 0x21, 0xc2, 0x2f, 0x61, 0x83, 0x11, 0xbf, 0x6b, 0x1e, 0x55, 0xea, 0x88, 0xc1, 0x8a, 0xc9, - 0x4e, 0x8c, 0xb6, 0x4f, 0x18, 0x51, 0xb5, 0x08, 0x68, 0xc4, 0x81, 0x86, 0x04, 0x96, 0x16, 0x1c, - 0xe2, 0x10, 0x01, 0x35, 0xf9, 0xbf, 0x80, 0x55, 0xd2, 0x1a, 0x84, 0x7a, 0x84, 0x9a, 0x75, 0x48, - 0x51, 0xe4, 0xb3, 0x41, 0x5c, 0x3c, 0x64, 0xc7, 0x87, 0x91, 0x9d, 0x1f, 0xa4, 0x7d, 0x49, 0xda, - 0x3d, 0xea, 0x98, 0x47, 0x15, 0xfe, 0x23, 0x0d, 0xcb, 0x81, 0xe1, 0x20, 0x88, 0x18, 0x1c, 0xa4, - 0xe9, 0xee, 0x15, 0x29, 0xb5, 0xa1, 0x0f, 0x3d, 0x09, 0xd6, 0xbf, 0x2a, 0x60, 0xa6, 0x46, 0x9d, - 0x5d, 0x1f, 0x41, 0x86, 0xf6, 0x10, 0x26, 0x9e, 0x7a, 0x1b, 0xe4, 0x28, 0xc2, 0x36, 0xf2, 0x8b, - 0xca, 0x0d, 0xe5, 0xd6, 0x64, 0x75, 0xae, 0xdf, 0x2b, 0x4f, 0x77, 0xa1, 0xd7, 0xda, 0xd6, 0x83, - 0x7b, 0xdd, 0x92, 0x00, 0xd5, 0x04, 0x13, 0xb4, 0x53, 0xb7, 0x39, 0xad, 0xf8, 0x9f, 0x00, 0xcf, - 0xf7, 0x7b, 0xe5, 0x82, 0x04, 0x4b, 0x8b, 0x6e, 0x45, 0x20, 0xf5, 0x26, 0xc8, 0x62, 0xe8, 0xa1, - 0xe2, 0x98, 0x00, 0x17, 0xfa, 0xbd, 0x72, 0x3e, 0x00, 0xf3, 0x5b, 0xdd, 0x12, 0x46, 0x21, 0xa0, - 0xeb, 0xd5, 0x49, 0xab, 0x98, 0x1d, 0x12, 0x20, 0xee, 0xb9, 0x00, 0xf1, 0x67, 0x3b, 0xff, 0xfa, - 0xe7, 0xa7, 0x3b, 0x52, 0x8d, 0xfe, 0x1c, 0x2c, 0x26, 0x53, 0xb1, 0x10, 0x6d, 0x13, 0x4c, 0x91, - 0x5a, 0x05, 0x05, 0x8c, 0x8e, 0x0f, 0x44, 0x39, 0x0e, 0x02, 0xb9, 0x41, 0x6e, 0xa5, 0x7e, 0xaf, - 0xbc, 0x28, 0x15, 0x24, 0x01, 0xba, 0x35, 0x8d, 0xd1, 0xf1, 0x13, 0x7e, 0x21, 0x7c, 0xe9, 0x6f, - 0x15, 0xf0, 0x7f, 0x8d, 0x3a, 0x35, 0x17, 0xb3, 0x51, 0x4a, 0xf4, 0x00, 0xe4, 0xa0, 0x47, 0x3a, - 0x98, 0x89, 0x02, 0xe5, 0x37, 0x96, 0x0d, 0xf9, 0x58, 0xbc, 0x25, 0xc2, 0xee, 0x31, 0x76, 0x89, - 0x8b, 0xab, 0xd7, 0x4e, 0x7b, 0xe5, 0xcc, 0xc0, 0x53, 0x40, 0xd3, 0x2d, 0xc9, 0x4f, 0xe6, 0x3a, - 0x07, 0x0a, 0x52, 0x4c, 0x98, 0x64, 0x28, 0xb0, 0xda, 0xf1, 0xf1, 0x3f, 0x23, 0x90, 0x8b, 0x89, - 0x04, 0x7e, 0x94, 0xbd, 0xd6, 0x84, 0xd8, 0x41, 0x3b, 0xb6, 0xe7, 0x8e, 0xa4, 0x73, 0x15, 0x8c, - 0xc7, 0x1b, 0x6d, 0xb6, 0xdf, 0x2b, 0x4f, 0x05, 0x48, 0xf9, 0x5e, 0x81, 0x59, 0xad, 0x80, 0x49, - 0xfe, 0x94, 0x90, 0xfb, 0x97, 0x7d, 0xb6, 0xd0, 0xef, 0x95, 0x67, 0x07, 0xaf, 0x2c, 0x4c, 0xba, - 0x35, 0x81, 0xd1, 0xb1, 0x50, 0x91, 0x14, 0x5e, 0x0c, 0xba, 0x68, 0x20, 0x32, 0xd2, 0xff, 0x41, - 0x01, 0xf3, 0x35, 0xea, 0xec, 0x23, 0x26, 0x3a, 0xa2, 0x86, 0x18, 0xb4, 0x21, 0x83, 0xa3, 0x24, - 0x61, 0x81, 0x09, 0x4f, 0xd2, 0x64, 0xb9, 0x57, 0x06, 0xe5, 0xc6, 0x87, 0x51, 0xb9, 0x43, 0xdf, - 0xd5, 0x25, 0x59, 0x72, 0x39, 0x53, 0x21, 0x59, 0xb7, 0x22, 0x3f, 0x49, 0xf5, 0x2b, 0xe0, 0xfa, - 0x6f, 0x24, 0x46, 0x29, 0xbc, 0x57, 0xc4, 0xb3, 0x3c, 0x6d, 0xdb, 0x90, 0xa1, 0xc7, 0x62, 0x11, - 0xa8, 0x5b, 0x60, 0x12, 0x76, 0x58, 0x93, 0xf8, 0x2e, 0xeb, 0xca, 0x0c, 0x8a, 0xdf, 0x3e, 0xaf, - 0x2f, 0x48, 0x5d, 0x3b, 0xb6, 0xed, 0x23, 0x4a, 0xf7, 0x99, 0xef, 0x62, 0xc7, 0x1a, 0x40, 0xd5, - 0x3d, 0x90, 0x0b, 0x56, 0x89, 0xcc, 0x64, 0xd5, 0xf8, 0xf3, 0x8a, 0x34, 0x82, 0x78, 0xd5, 0x2c, - 0x4f, 0xc9, 0x92, 0xdc, 0xed, 0x19, 0xae, 0x7e, 0xe0, 0x55, 0x5f, 0x06, 0x4b, 0x97, 0x04, 0x86, - 0xe2, 0x37, 0xbe, 0x8c, 0x83, 0xb1, 0x1a, 0x75, 0xd4, 0x0e, 0xc8, 0xc7, 0xf7, 0x95, 0x71, 0x55, - 0xdc, 0xe4, 0x52, 0x28, 0x6d, 0x8d, 0x86, 0x8f, 0x96, 0xc8, 0x0b, 0x90, 0x15, 0xc3, 0xbf, 0x96, - 0x82, 0xcf, 0x81, 0x25, 0x33, 0x25, 0x30, 0x1e, 0x41, 0x4c, 0x6f, 0x9a, 0x08, 0x1c, 0x98, 0x2a, - 0x42, 0x7c, 0x04, 0x45, 0xe9, 0x62, 0xe3, 0x97, 0xaa, 0x74, 0x03, 0x7c, 0xba, 0xd2, 0x0d, 0x4f, - 0x8e, 0xfa, 0x46, 0x01, 0xb3, 0x43, 0x63, 0xb3, 0x99, 0xc2, 0xd9, 0x65, 0x52, 0xe9, 0xfe, 0x5f, - 0x90, 0x22, 0x19, 0x27, 0x60, 0x2a, 0xd1, 0xf9, 0x69, 0xca, 0x17, 0x27, 0x94, 0xee, 0x8d, 0x48, - 0x08, 0x23, 0x57, 0x5b, 0xa7, 0xe7, 0x9a, 0x72, 0x76, 0xae, 0x29, 0x3f, 0xce, 0x35, 0xe5, 0xdd, - 0x85, 0x96, 0x39, 0xbb, 0xd0, 0x32, 0xdf, 0x2f, 0xb4, 0xcc, 0x33, 0xcb, 0x71, 0x59, 0xb3, 0x53, - 0x37, 0x1a, 0xc4, 0x33, 0x1f, 0x86, 0xce, 0x1f, 0xc1, 0x3a, 0x35, 0xa3, 0x50, 0xeb, 0x0d, 0xe2, - 0xa3, 0xf8, 0xb1, 0x09, 0x5d, 0x6c, 0x7a, 0xc4, 0xee, 0xb4, 0x10, 0x4d, 0x7e, 0xe3, 0x59, 0xb7, - 0x8d, 0x68, 0x3d, 0x27, 0xbe, 0xed, 0x9b, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa5, 0xcb, 0x12, - 0xae, 0xdd, 0x08, 0x00, 0x00, + // 888 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xbd, 0x6f, 0xdb, 0x46, + 0x14, 0x37, 0x13, 0x49, 0xb5, 0xcf, 0x71, 0x65, 0x33, 0x6e, 0x2c, 0x33, 0x08, 0x15, 0x30, 0x45, + 0x3e, 0x1c, 0x88, 0x84, 0x62, 0x20, 0x41, 0xd5, 0x29, 0x4a, 0x86, 0x16, 0xa8, 0x80, 0x82, 0x69, + 0x97, 0xa2, 0x80, 0x7b, 0x24, 0xaf, 0x14, 0x6b, 0xf1, 0x4e, 0xe0, 0x1d, 0xed, 0x68, 0x2b, 0x8a, + 0x4e, 0x9d, 0xfa, 0x37, 0x74, 0xed, 0xe2, 0xa1, 0x7b, 0x57, 0x03, 0x1d, 0x1a, 0x74, 0xea, 0x24, + 0x14, 0xf6, 0xe0, 0x5d, 0x7f, 0x41, 0x71, 0x1f, 0xa4, 0x28, 0xa9, 0x6a, 0xa8, 0x4e, 0x5d, 0x24, + 0xf2, 0xde, 0xef, 0x7d, 0xfc, 0x7e, 0xf7, 0xde, 0x93, 0xc0, 0x83, 0x08, 0x7f, 0x83, 0x7c, 0x16, + 0x9d, 0x20, 0x87, 0x91, 0x63, 0x84, 0xbf, 0x86, 0x3e, 0x23, 0xc9, 0xc8, 0x39, 0x69, 0x7b, 0x88, + 0xc1, 0xb6, 0xc3, 0x5e, 0xdb, 0xc3, 0x84, 0x30, 0xa2, 0x9b, 0x39, 0xd0, 0x2e, 0x02, 0x6d, 0x05, + 0x34, 0x76, 0x43, 0x12, 0x12, 0x01, 0x75, 0xf8, 0x93, 0xf4, 0x32, 0x4c, 0x9f, 0xd0, 0x98, 0x50, + 0xc7, 0x83, 0x14, 0xe5, 0x31, 0x7d, 0x12, 0xe1, 0x05, 0x3b, 0x3e, 0xce, 0xed, 0xfc, 0x45, 0xd9, + 0xf7, 0x94, 0x3d, 0xa6, 0xa1, 0x73, 0xd2, 0xe6, 0x5f, 0xca, 0xb0, 0x2f, 0x0d, 0x47, 0x32, 0xa3, + 0x7c, 0x51, 0xa6, 0xc7, 0x6f, 0xa1, 0x34, 0x84, 0x09, 0x8c, 0x33, 0xf0, 0x0e, 0x8c, 0x23, 0x4c, + 0x1c, 0xf1, 0x29, 0x8f, 0xac, 0x9f, 0xae, 0x81, 0x77, 0x7b, 0x34, 0x7c, 0x91, 0x20, 0xc8, 0xd0, + 0x4b, 0x84, 0x49, 0xac, 0x3f, 0x02, 0x35, 0x8a, 0x70, 0x80, 0x92, 0x86, 0x76, 0x57, 0x7b, 0xb8, + 0xd1, 0xdd, 0x99, 0x8c, 0x9b, 0x5b, 0x23, 0x18, 0x0f, 0x3a, 0x96, 0x3c, 0xb7, 0x5c, 0x05, 0xd0, + 0x1d, 0xb0, 0x4e, 0x53, 0x2f, 0xe0, 0x6e, 0x8d, 0x6b, 0x02, 0x7c, 0x73, 0x32, 0x6e, 0xd6, 0x15, + 0x58, 0x59, 0x2c, 0x37, 0x07, 0xe9, 0xf7, 0x40, 0x05, 0xc3, 0x18, 0x35, 0xae, 0x0b, 0x70, 0x7d, + 0x32, 0x6e, 0x6e, 0x4a, 0x30, 0x3f, 0xb5, 0x5c, 0x61, 0x14, 0x05, 0x8c, 0x62, 0x8f, 0x0c, 0x1a, + 0x95, 0x85, 0x02, 0xc4, 0x39, 0x2f, 0x40, 0x3c, 0xf0, 0x02, 0x02, 0xe4, 0x47, 0x31, 0x1c, 0xd0, + 0x46, 0xf5, 0xae, 0xf6, 0x70, 0xab, 0x58, 0x40, 0x66, 0xb1, 0xdc, 0x1c, 0xd4, 0x39, 0xfc, 0xee, + 0xea, 0xec, 0x40, 0x95, 0xff, 0xc3, 0xd5, 0xd9, 0xc1, 0xbd, 0x25, 0xfa, 0xf9, 0x42, 0x90, 0x96, + 0x24, 0xf0, 0x25, 0xb8, 0x35, 0xab, 0x91, 0x8b, 0xe8, 0x90, 0x60, 0x8a, 0xf4, 0x2e, 0xa8, 0x63, + 0x74, 0x7a, 0x24, 0x5c, 0x8f, 0xa4, 0x0e, 0x52, 0x34, 0x63, 0x32, 0x6e, 0xde, 0x52, 0xd4, 0x66, + 0x01, 0x96, 0xbb, 0x85, 0xd1, 0xe9, 0x67, 0xfc, 0x40, 0xc4, 0xb2, 0x7e, 0xd6, 0xc0, 0x3b, 0x3d, + 0x1a, 0xf6, 0x22, 0xcc, 0x56, 0xd1, 0xfe, 0x23, 0x50, 0x83, 0x31, 0x49, 0x31, 0x13, 0xca, 0x6f, + 0x3e, 0xd9, 0xb7, 0x55, 0x63, 0xf0, 0xf6, 0xcb, 0x3a, 0xd5, 0x7e, 0x41, 0x22, 0xdc, 0x7d, 0xef, + 0x7c, 0xdc, 0x5c, 0x9b, 0x46, 0x92, 0x6e, 0x96, 0xab, 0xfc, 0x3b, 0x8f, 0xe7, 0x34, 0xb9, 0xbd, + 0x44, 0x93, 0x38, 0xc2, 0xcc, 0xda, 0x01, 0x75, 0x55, 0x6c, 0x26, 0x42, 0x46, 0xa0, 0x9b, 0x26, + 0xf8, 0xff, 0x4d, 0xc0, 0x4b, 0x13, 0xac, 0x08, 0xf0, 0x62, 0x73, 0x02, 0xbf, 0x69, 0x72, 0x08, + 0xfa, 0x10, 0x87, 0xe8, 0x79, 0x10, 0x47, 0x2b, 0xf1, 0xb8, 0x0f, 0xaa, 0xc5, 0x09, 0xd8, 0x9e, + 0x8c, 0x9b, 0x37, 0xb2, 0x06, 0x14, 0xf7, 0x2d, 0xcd, 0x7a, 0x1b, 0x6c, 0xf0, 0x56, 0x80, 0x3c, + 0xbe, 0x1a, 0x80, 0xdd, 0xc9, 0xb8, 0xb9, 0x3d, 0xed, 0x12, 0x61, 0xb2, 0xdc, 0x75, 0x8c, 0x4e, + 0x45, 0x15, 0xe5, 0xbb, 0x55, 0x54, 0xde, 0x92, 0xfe, 0x0d, 0xd9, 0xad, 0x53, 0x32, 0x39, 0xcf, + 0xdf, 0x35, 0x70, 0xb3, 0x47, 0xc3, 0x57, 0x88, 0x89, 0xce, 0xeb, 0x21, 0x06, 0x03, 0xc8, 0xe0, + 0x2a, 0x64, 0x5d, 0xb0, 0x1e, 0x2b, 0x37, 0x75, 0x6d, 0x77, 0xa6, 0xd7, 0x86, 0x8f, 0xf3, 0x6b, + 0xcb, 0x62, 0x77, 0xf7, 0xd4, 0xd5, 0xa9, 0x99, 0xcc, 0x9c, 0x2d, 0x37, 0x8f, 0xd3, 0xf9, 0x60, + 0x8e, 0xe5, 0xa3, 0x25, 0x2c, 0x29, 0x62, 0x72, 0x20, 0x5b, 0x79, 0x94, 0x3b, 0xe0, 0xf6, 0x3f, + 0x10, 0xca, 0x09, 0x9f, 0x6b, 0xe2, 0xb2, 0x3f, 0x1f, 0x06, 0x90, 0xa1, 0x4f, 0xc5, 0x2a, 0xd4, + 0x9f, 0x82, 0x0d, 0x98, 0xb2, 0x3e, 0x49, 0x22, 0x36, 0x52, 0x7c, 0x1b, 0x7f, 0xfc, 0xd2, 0xda, + 0x55, 0x2c, 0x9e, 0x07, 0x41, 0x82, 0x28, 0x7d, 0xc5, 0x92, 0x08, 0x87, 0xee, 0x14, 0xaa, 0xbf, + 0x04, 0x35, 0xb9, 0x4c, 0x15, 0xef, 0xfb, 0xf6, 0xbf, 0xff, 0x48, 0xd8, 0x32, 0x5f, 0xb7, 0xc2, + 0x05, 0x70, 0x95, 0x6f, 0xe7, 0x19, 0xe7, 0x3a, 0x8d, 0xca, 0xe9, 0xbe, 0xbf, 0x84, 0x6e, 0x2a, + 0xaa, 0x6e, 0x49, 0x47, 0x6b, 0x1f, 0xec, 0xcd, 0x31, 0xc9, 0x58, 0x3e, 0xf9, 0xb5, 0x0a, 0xae, + 0xf7, 0x68, 0xa8, 0xa7, 0x60, 0xb3, 0xb8, 0xc7, 0xed, 0xb7, 0x15, 0x38, 0xbb, 0xd3, 0x8c, 0xa7, + 0xab, 0xe1, 0xf3, 0x1d, 0xf8, 0x15, 0xa8, 0x88, 0xdd, 0xf5, 0xa0, 0x84, 0x3f, 0x07, 0x1a, 0x4e, + 0x49, 0x60, 0x31, 0x83, 0x58, 0x2e, 0x65, 0x32, 0x70, 0x60, 0xa9, 0x0c, 0xc5, 0x0d, 0x20, 0xa4, + 0x2b, 0x4c, 0x7f, 0x29, 0xe9, 0xa6, 0xf8, 0x72, 0xd2, 0x2d, 0x0e, 0xa4, 0xfe, 0xbd, 0x06, 0xb6, + 0x17, 0xa6, 0xf1, 0xb0, 0x44, 0xb0, 0x79, 0x27, 0xe3, 0xc3, 0xff, 0xe0, 0x94, 0x97, 0xf1, 0x1a, + 0xdc, 0x98, 0x19, 0x91, 0x32, 0xf2, 0x15, 0x1d, 0x8c, 0x67, 0x2b, 0x3a, 0x64, 0x99, 0x8d, 0xea, + 0xb7, 0x57, 0x67, 0x07, 0x5a, 0x77, 0x70, 0x7e, 0x61, 0x6a, 0x6f, 0x2e, 0x4c, 0xed, 0xaf, 0x0b, + 0x53, 0xfb, 0xf1, 0xd2, 0x5c, 0x7b, 0x73, 0x69, 0xae, 0xfd, 0x79, 0x69, 0xae, 0x7d, 0xe1, 0x86, + 0x11, 0xeb, 0xa7, 0x9e, 0xed, 0x93, 0xd8, 0xf9, 0x38, 0xcb, 0xf1, 0x09, 0xf4, 0xa8, 0x93, 0x67, + 0x6c, 0xf9, 0x24, 0x41, 0xc5, 0xd7, 0x3e, 0x8c, 0xb0, 0x13, 0x93, 0x20, 0x1d, 0x20, 0x3a, 0x3b, + 0x52, 0x6c, 0x34, 0x44, 0xd4, 0xab, 0x89, 0xbf, 0x3e, 0x87, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, + 0xf0, 0x22, 0x4e, 0x61, 0x0f, 0x0a, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -973,6 +988,11 @@ func (m *MsgCreateDenom) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Decimals != 0 { + i = encodeVarintTx(dAtA, i, uint64(m.Decimals)) + i-- + dAtA[i] = 0x28 + } if len(m.Symbol) > 0 { i -= len(m.Symbol) copy(dAtA[i:], m.Symbol) @@ -1386,6 +1406,9 @@ func (m *MsgCreateDenom) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + if m.Decimals != 0 { + n += 1 + sovTx(uint64(m.Decimals)) + } return n } @@ -1691,6 +1714,25 @@ func (m *MsgCreateDenom) Unmarshal(dAtA []byte) error { } m.Symbol = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Decimals", wireType) + } + m.Decimals = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Decimals |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:]) diff --git a/chain/types/account.go b/chain/types/account.go index 9c9ef989..7d6be3d5 100644 --- a/chain/types/account.go +++ b/chain/types/account.go @@ -6,20 +6,20 @@ import ( "fmt" "strings" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "gopkg.in/yaml.v2" "cosmossdk.io/errors" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ethcmn "github.com/ethereum/go-ethereum/common" ethcrypto "github.com/ethereum/go-ethereum/crypto" ) var ( - _ authtypes.AccountI = (*EthAccount)(nil) + _ sdk.AccountI = (*EthAccount)(nil) _ authtypes.GenesisAccount = (*EthAccount)(nil) _ codectypes.UnpackInterfacesMessage = (*EthAccount)(nil) ) @@ -32,7 +32,7 @@ var EmptyCodeHash = ethcrypto.Keccak256(nil) // ProtoAccount defines the prototype function for BaseAccount used for an // AccountKeeper. -func ProtoAccount() authtypes.AccountI { +func ProtoAccount() sdk.AccountI { return &EthAccount{ BaseAccount: &authtypes.BaseAccount{}, CodeHash: ethcrypto.Keccak256(nil), diff --git a/chain/types/account.pb.go b/chain/types/account.pb.go index cb352b87..7f26dc54 100644 --- a/chain/types/account.pb.go +++ b/chain/types/account.pb.go @@ -73,28 +73,27 @@ func init() { } var fileDescriptor_e25f61138fdc8ede = []byte{ - // 330 bytes of a gzipped FileDescriptorProto + // 317 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcd, 0xcc, 0xcb, 0x4a, 0x4d, 0x2e, 0xc9, 0x2c, 0x4b, 0xd5, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x87, 0x2b, 0xd3, 0x03, 0x2b, 0xd3, 0x83, 0x2a, 0x93, 0x92, 0x4b, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x2c, 0x2d, 0xc9, 0x40, 0xe8, 0x2d, 0x2d, 0xc9, 0x80, 0x68, 0x94, 0x92, 0x84, 0xc8, 0xc7, 0x83, 0x79, 0xfa, 0x10, 0x0e, 0x54, 0x4a, 0x24, 0x3d, 0x3f, 0x3d, 0x1f, - 0x22, 0x0e, 0x62, 0x41, 0x44, 0x95, 0x9e, 0x32, 0x72, 0x71, 0xb9, 0x96, 0x64, 0x38, 0x42, 0xac, + 0x22, 0x0e, 0x62, 0x41, 0x44, 0x95, 0xce, 0x33, 0x72, 0x71, 0xb9, 0x96, 0x64, 0x38, 0x42, 0xac, 0x17, 0x4a, 0xe0, 0xe2, 0x49, 0x4a, 0x2c, 0x4e, 0x8d, 0x87, 0x3a, 0x47, 0x82, 0x51, 0x81, 0x51, 0x83, 0xdb, 0x48, 0x41, 0x0f, 0x6a, 0x12, 0xd8, 0x26, 0xa8, 0xb5, 0x7a, 0x4e, 0x89, 0xc5, 0xa9, 0x50, 0x7d, 0x4e, 0xd2, 0x17, 0xee, 0xc9, 0x33, 0x7e, 0xba, 0x27, 0x2f, 0x5c, 0x99, 0x98, 0x9b, 0x63, 0xa5, 0x84, 0x6c, 0x86, 0x52, 0x10, 0x77, 0x12, 0x42, 0xa5, 0x90, 0x21, 0x17, 0x67, 0x72, 0x7e, 0x4a, 0x6a, 0x7c, 0x46, 0x62, 0x71, 0x86, 0x04, 0x93, 0x02, 0xa3, 0x06, 0x8f, 0x93, 0xc8, 0xa7, 0x7b, 0xf2, 0x02, 0x10, 0x8d, 0x70, 0x29, 0xa5, 0x20, 0x0e, 0x10, 0xdb, 0x23, 0xb1, 0x38, - 0xc3, 0xca, 0xa9, 0x63, 0x81, 0x3c, 0xc3, 0x8c, 0x05, 0xf2, 0x0c, 0x2f, 0x16, 0xc8, 0x33, 0x9c, - 0xda, 0xa2, 0x6b, 0x94, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0x0b, 0xf5, 0x22, - 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0xaf, 0x80, 0x04, 0x0e, 0x24, 0xdc, 0xa0, 0xb6, 0x7a, 0x3a, - 0x85, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, - 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x2d, 0x92, 0x69, 0x9e, - 0xb0, 0x60, 0xf7, 0x49, 0x4c, 0x2a, 0xd6, 0x87, 0x47, 0x82, 0x6e, 0x72, 0x7e, 0x51, 0x2a, 0x32, - 0x37, 0x23, 0x31, 0x33, 0x0f, 0x62, 0x43, 0x12, 0x1b, 0x38, 0x1c, 0x8d, 0x01, 0x01, 0x00, 0x00, - 0xff, 0xff, 0x96, 0xda, 0x34, 0x87, 0xda, 0x01, 0x00, 0x00, + 0xc3, 0x4a, 0xa7, 0x63, 0x81, 0x3c, 0xc3, 0x8c, 0x05, 0xf2, 0x0c, 0x2f, 0x16, 0xc8, 0x33, 0x9c, + 0xda, 0xa2, 0x2b, 0x83, 0xcd, 0x35, 0x50, 0xf3, 0x3d, 0x9d, 0xc2, 0x4f, 0x3c, 0x92, 0x63, 0xbc, + 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, + 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0xca, 0x36, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, + 0x57, 0xdf, 0x13, 0x16, 0xc0, 0x3e, 0x89, 0x49, 0xc5, 0xfa, 0xf0, 0xe0, 0xd6, 0x4d, 0xce, 0x2f, + 0x4a, 0x45, 0xe6, 0x66, 0x24, 0x66, 0xe6, 0x41, 0xa2, 0x2a, 0x89, 0x0d, 0x1c, 0x62, 0xc6, 0x80, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xef, 0x10, 0x61, 0x9a, 0xc4, 0x01, 0x00, 0x00, } func (m *EthAccount) Marshal() (dAtA []byte, err error) { diff --git a/chain/types/codec.go b/chain/types/codec.go index 321ee347..6f061a2d 100644 --- a/chain/types/codec.go +++ b/chain/types/codec.go @@ -2,6 +2,7 @@ package types import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" ) @@ -9,10 +10,10 @@ import ( // RegisterInterfaces registers the tendermint concrete client-related // implementations and interfaces. func RegisterInterfaces(registry codectypes.InterfaceRegistry) { - registry.RegisterInterface("injective.types.v1beta1.EthAccount", (*authtypes.AccountI)(nil)) + registry.RegisterInterface("injective.types.v1beta1.EthAccount", (*types.AccountI)(nil)) registry.RegisterImplementations( - (*authtypes.AccountI)(nil), + (*types.AccountI)(nil), &EthAccount{}, ) diff --git a/chain/types/coin.go b/chain/types/coin.go index 824041f2..b8ec01ae 100644 --- a/chain/types/coin.go +++ b/chain/types/coin.go @@ -1,7 +1,7 @@ package types import ( - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -20,18 +20,12 @@ const ( BaseDenomUnit = 18 ) -// NewInjectiveCoin is a utility function that returns an "inj" coin with the given sdkmath.Int amount. +// NewInjectiveCoin is a utility function that returns an "inj" coin with the given math.Int amount. // The function will panic if the provided amount is negative. -func NewInjectiveCoin(amount sdkmath.Int) sdk.Coin { +func NewInjectiveCoin(amount math.Int) sdk.Coin { return sdk.NewCoin(InjectiveCoin, amount) } -// NewInjectiveDecCoin is a utility function that returns an "inj" decimal coin with the given sdkmath.Int amount. -// The function will panic if the provided amount is negative. -func NewInjectiveDecCoin(amount sdkmath.Int) sdk.DecCoin { - return sdk.NewDecCoin(InjectiveCoin, amount) -} - // NewInjectiveCoinInt64 is a utility function that returns an "inj" coin with the given int64 amount. // The function will panic if the provided amount is negative. func NewInjectiveCoinInt64(amount int64) sdk.Coin { diff --git a/chain/types/gas.go b/chain/types/gas.go index 1c15357a..b14660de 100644 --- a/chain/types/gas.go +++ b/chain/types/gas.go @@ -5,7 +5,7 @@ import ( "math" "sync" - storetypes "github.com/cosmos/cosmos-sdk/store/types" + storetypes "cosmossdk.io/store/types" ) type infiniteGasMeter struct { diff --git a/chain/wasmx/types/codec.go b/chain/wasmx/types/codec.go index 8b78b8db..01d03e7a 100644 --- a/chain/wasmx/types/codec.go +++ b/chain/wasmx/types/codec.go @@ -7,9 +7,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" - govcdc "github.com/cosmos/cosmos-sdk/x/gov/codec" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" - groupcdc "github.com/cosmos/cosmos-sdk/x/group/codec" ) // RegisterLegacyAminoCodec registers the necessary x/wasmx interfaces and concrete types @@ -25,6 +23,9 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(&BatchContractRegistrationRequestProposal{}, "wasmx/BatchContractRegistrationRequestProposal", nil) cdc.RegisterConcrete(&BatchContractDeregistrationProposal{}, "wasmx/BatchContractDeregistrationProposal", nil) cdc.RegisterConcrete(&BatchStoreCodeProposal{}, "wasmx/BatchStoreCodeProposal", nil) + + cdc.RegisterConcrete(&Params{}, "wasmx/Params", nil) + } func RegisterInterfaces(registry types.InterfaceRegistry) { @@ -48,23 +49,23 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { } var ( - amino = codec.NewLegacyAmino() - // ModuleCdc references the global x/wasmx module codec. Note, the codec should // ONLY be used in certain instances of tests and for JSON encoding as Amino is // still used for that purpose. // // The actual codec used for serialization should be provided to x/wasmx and // defined at the application level. - ModuleCdc = codec.NewAminoCodec(amino) + ModuleCdc = codec.NewLegacyAmino() ) func init() { - RegisterLegacyAminoCodec(amino) - cryptocodec.RegisterCrypto(amino) - amino.Seal() + RegisterLegacyAminoCodec(ModuleCdc) + cryptocodec.RegisterCrypto(ModuleCdc) + ModuleCdc.Seal() RegisterLegacyAminoCodec(authzcdc.Amino) - RegisterLegacyAminoCodec(govcdc.Amino) - RegisterLegacyAminoCodec(groupcdc.Amino) + + // TODO: Check + // RegisterLegacyAminoCodec(govcdc.Amino) + // RegisterLegacyAminoCodec(groupcdc.Amino) } diff --git a/chain/wasmx/types/expected_keepers.go b/chain/wasmx/types/expected_keepers.go index 81859f92..e9d5d692 100644 --- a/chain/wasmx/types/expected_keepers.go +++ b/chain/wasmx/types/expected_keepers.go @@ -1,20 +1,22 @@ package types import ( + "context" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" sdk "github.com/cosmos/cosmos-sdk/types" ) // BankKeeper defines the expected bank keeper methods type BankKeeper interface { - GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins - SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error - SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error - BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error - IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error - SendCoins(ctx sdk.Context, from, to sdk.AccAddress, amt sdk.Coins) error + GetBalance(ctx context.Context, addr sdk.AccAddress, denom string) sdk.Coin + GetAllBalances(ctx context.Context, addr sdk.AccAddress) sdk.Coins + SendCoinsFromModuleToModule(ctx context.Context, senderModule, recipientModule string, amt sdk.Coins) error + SendCoinsFromModuleToAccount(ctx context.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx context.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + BurnCoins(ctx context.Context, moduleName string, amt sdk.Coins) error + IsSendEnabledCoins(ctx context.Context, coins ...sdk.Coin) error + SendCoins(ctx context.Context, from, to sdk.AccAddress, amt sdk.Coins) error } type WasmViewKeeper interface { diff --git a/chain/wasmx/types/params.go b/chain/wasmx/types/params.go index 53bd56d5..618a79bc 100644 --- a/chain/wasmx/types/params.go +++ b/chain/wasmx/types/params.go @@ -3,6 +3,8 @@ package types import ( "fmt" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) @@ -25,10 +27,11 @@ var ( // Parameter keys var ( - KeyIsExecutionEnabled = []byte("IsExecutionEnabled") - KeyMaxBeginBlockTotalGas = []byte("MaxBeginBlockTotalGas") - KeyMaxContractGasLimit = []byte("MaxContractGasLimit") - KeyMinGasPrice = []byte("MinGasPrice") + KeyIsExecutionEnabled = []byte("IsExecutionEnabled") + KeyMaxBeginBlockTotalGas = []byte("MaxBeginBlockTotalGas") + KeyMaxContractGasLimit = []byte("MaxContractGasLimit") + KeyMinGasPrice = []byte("MinGasPrice") + KeyRegisterContractAccess = []byte("RegisterContractAccess") ) // ParamKeyTable returns the parameter key table. @@ -42,12 +45,14 @@ func NewParams( maxBeginBlockTotalGas uint64, maxContractGasLimit uint64, minGasPrice uint64, + registerContractAccess wasmtypes.AccessConfig, ) Params { return Params{ - IsExecutionEnabled: isExecutionEnabled, - MaxBeginBlockTotalGas: maxBeginBlockTotalGas, - MaxContractGasLimit: maxContractGasLimit, - MinGasPrice: minGasPrice, + IsExecutionEnabled: isExecutionEnabled, + MaxBeginBlockTotalGas: maxBeginBlockTotalGas, + MaxContractGasLimit: maxContractGasLimit, + MinGasPrice: minGasPrice, + RegisterContractAccess: registerContractAccess, } } @@ -58,16 +63,18 @@ func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { paramtypes.NewParamSetPair(KeyIsExecutionEnabled, &p.IsExecutionEnabled, validateIsExecutionEnabled), paramtypes.NewParamSetPair(KeyMaxBeginBlockTotalGas, &p.MaxBeginBlockTotalGas, validateMaxBeginBlockTotalGas), paramtypes.NewParamSetPair(KeyMaxContractGasLimit, &p.MaxContractGasLimit, validateMaxContractGasLimit), + paramtypes.NewParamSetPair(KeyRegisterContractAccess, &p.RegisterContractAccess, validateAccessConfig), } } // DefaultParams returns a default set of parameters. func DefaultParams() Params { return Params{ - IsExecutionEnabled: DefaultIsExecutionEnabled, - MaxBeginBlockTotalGas: DefaultMaxBeginBlockTotalGas, - MaxContractGasLimit: DefaultMaxContractGasLimit, - MinGasPrice: DefaultMinGasPrice, + IsExecutionEnabled: DefaultIsExecutionEnabled, + MaxBeginBlockTotalGas: DefaultMaxBeginBlockTotalGas, + MaxContractGasLimit: DefaultMaxContractGasLimit, + MinGasPrice: DefaultMinGasPrice, + RegisterContractAccess: wasmtypes.AccessConfig{}, } } @@ -89,6 +96,9 @@ func (p Params) Validate() error { return err } + if err := validateAccessConfig(p.RegisterContractAccess); err != nil { + return err + } return nil } @@ -137,3 +147,25 @@ func validateMinGasPrice(i interface{}) error { } return nil } + +func validateAccessConfig(i interface{}) error { + v, ok := i.(wasmtypes.AccessConfig) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + uploaders := make(map[string]struct{}) + + for _, addr := range v.Addresses { + address, err := sdk.AccAddressFromBech32(addr) + if err != nil { + return fmt.Errorf("invalid address: %s", addr) + } + + if _, found := uploaders[address.String()]; found { + return fmt.Errorf("duplicate address: %s", addr) + } + uploaders[address.String()] = struct{}{} + } + return nil +} diff --git a/chain/wasmx/types/proposal.pb.go b/chain/wasmx/types/proposal.pb.go index 04fe8406..646665a5 100644 --- a/chain/wasmx/types/proposal.pb.go +++ b/chain/wasmx/types/proposal.pb.go @@ -7,6 +7,7 @@ import ( fmt "fmt" types "github.com/CosmWasm/wasmd/x/wasm/types" _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -346,51 +347,54 @@ func init() { func init() { proto.RegisterFile("injective/wasmx/v1/proposal.proto", fileDescriptor_ba51f3e994cc61a5) } var fileDescriptor_ba51f3e994cc61a5 = []byte{ - // 696 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0x8d, 0x93, 0xb4, 0x4d, 0x26, 0xfd, 0xc9, 0x37, 0x5f, 0x05, 0xa6, 0x2d, 0x4e, 0x68, 0xa4, - 0x12, 0x90, 0x6a, 0xd3, 0xb2, 0xeb, 0xae, 0x69, 0x45, 0x55, 0xd1, 0x8a, 0xca, 0x15, 0x1b, 0x36, - 0xd6, 0xc4, 0x73, 0xe3, 0x0c, 0xb2, 0x3d, 0xc6, 0x33, 0x49, 0x89, 0xd8, 0xb0, 0x83, 0x25, 0x8f, - 0x50, 0x89, 0x07, 0x60, 0xc3, 0x0b, 0xb0, 0xab, 0x58, 0x75, 0xc9, 0x0a, 0xa1, 0x76, 0xc3, 0x63, - 0x20, 0xff, 0xa5, 0x41, 0x85, 0x50, 0x51, 0xb1, 0xcb, 0xb9, 0xf7, 0xdc, 0x3b, 0xe7, 0x9e, 0xb9, - 0x9e, 0xa0, 0x3b, 0xcc, 0x7f, 0x0e, 0xb6, 0x64, 0x7d, 0x30, 0x8e, 0x88, 0xf0, 0x5e, 0x1a, 0xfd, - 0x35, 0x23, 0x08, 0x79, 0xc0, 0x05, 0x71, 0xf5, 0x20, 0xe4, 0x92, 0x63, 0x3c, 0xa4, 0xe8, 0x31, - 0x45, 0xef, 0xaf, 0x2d, 0xdc, 0xb2, 0xb9, 0xf0, 0xb8, 0xb0, 0x62, 0x86, 0x91, 0x80, 0x84, 0xbe, - 0xb0, 0x12, 0xa1, 0x88, 0x18, 0x37, 0x1c, 0xed, 0x67, 0xb9, 0xe0, 0x10, 0x7b, 0x90, 0xf2, 0xe6, - 0x1d, 0xee, 0xf0, 0xa4, 0x3e, 0xfa, 0x95, 0x44, 0x97, 0x5f, 0xe7, 0x51, 0x63, 0x8b, 0xfb, 0x32, - 0x24, 0xb6, 0x34, 0xc1, 0x61, 0x42, 0x86, 0x44, 0x32, 0xee, 0x9b, 0xf0, 0xa2, 0x07, 0x42, 0x1e, - 0xa4, 0xad, 0xf0, 0x3c, 0x9a, 0x90, 0x4c, 0xba, 0xa0, 0x2a, 0x75, 0xa5, 0x59, 0x36, 0x13, 0x80, - 0xeb, 0xa8, 0x42, 0x41, 0xd8, 0x21, 0x0b, 0xa2, 0x1a, 0x35, 0x1f, 0xe7, 0x46, 0x43, 0x78, 0x80, - 0x6e, 0xdb, 0x69, 0x7b, 0x2b, 0x1c, 0xe9, 0x6f, 0x85, 0xc9, 0x01, 0x6a, 0xa1, 0xae, 0x34, 0x2b, - 0xeb, 0x86, 0x7e, 0x79, 0x68, 0x7d, 0x8c, 0xae, 0x56, 0xf1, 0xe4, 0x6b, 0x2d, 0x67, 0x2e, 0xda, - 0xbf, 0xa7, 0x6c, 0xac, 0xbc, 0x3d, 0xae, 0xe5, 0xbe, 0x1f, 0xd7, 0x72, 0x9f, 0x3f, 0xae, 0x2e, - 0xa4, 0x96, 0x39, 0xbc, 0xaf, 0xf7, 0xd7, 0xda, 0x20, 0x49, 0xd2, 0x1e, 0x7c, 0xb9, 0xfc, 0x26, - 0x8f, 0x9a, 0x2d, 0x22, 0xed, 0xee, 0xbf, 0xf4, 0xe1, 0x15, 0xd2, 0xc6, 0xfa, 0x20, 0xd4, 0x42, - 0xbd, 0xf0, 0xf7, 0x46, 0x2c, 0x8d, 0x31, 0x42, 0x5c, 0xd9, 0x89, 0xf7, 0x0a, 0x6a, 0xfc, 0xe4, - 0xc4, 0x36, 0x8c, 0x6a, 0xbd, 0xb6, 0x09, 0x4b, 0xa8, 0x9c, 0xe9, 0x4c, 0xe6, 0x2d, 0x9b, 0x17, - 0x81, 0x2b, 0xab, 0xfc, 0x50, 0x40, 0x8b, 0x63, 0x1c, 0xc1, 0xf7, 0x50, 0x75, 0x68, 0x35, 0xa1, - 0x34, 0x04, 0x21, 0x52, 0xa1, 0x73, 0x59, 0x7c, 0x33, 0x09, 0xe3, 0x45, 0x54, 0x76, 0x88, 0xb0, - 0x5c, 0xe6, 0x31, 0x19, 0x0b, 0x2e, 0x9a, 0x25, 0x87, 0x88, 0xbd, 0x08, 0x67, 0xc9, 0x20, 0x64, - 0x36, 0xc4, 0x6b, 0x9a, 0x24, 0x0f, 0x22, 0x8c, 0x75, 0xf4, 0xbf, 0xe8, 0xf2, 0x9e, 0x4b, 0xad, - 0x80, 0xf9, 0x56, 0xd6, 0x57, 0x2d, 0xd6, 0x95, 0x66, 0xc9, 0xfc, 0x2f, 0x49, 0x1d, 0x30, 0x3f, - 0xd3, 0x89, 0x1f, 0xa0, 0x79, 0x26, 0x2c, 0x8f, 0x39, 0xe9, 0xb5, 0x13, 0xd7, 0xe5, 0x47, 0x40, - 0xd5, 0x89, 0xb8, 0x00, 0x33, 0xb1, 0x9f, 0xa5, 0x36, 0x93, 0x0c, 0xbe, 0x89, 0xa6, 0x6c, 0x4e, - 0xc1, 0x62, 0x54, 0x9d, 0x8c, 0x0f, 0x9f, 0x8c, 0xe0, 0x2e, 0xc5, 0x0d, 0x34, 0x43, 0xa8, 0xc7, - 0xfc, 0xe1, 0x70, 0x53, 0xf1, 0x70, 0xd3, 0x71, 0x30, 0x9b, 0xec, 0x2e, 0x9a, 0x73, 0x42, 0xe2, - 0x4b, 0x08, 0x87, 0xb4, 0x52, 0x4c, 0x9b, 0x4d, 0xc3, 0x19, 0xb1, 0x85, 0xa6, 0x3b, 0x3d, 0x9f, - 0x32, 0xdf, 0xb1, 0x3c, 0x4e, 0x41, 0x2d, 0xd7, 0x95, 0xe6, 0xec, 0x7a, 0xed, 0x57, 0x6b, 0xf8, - 0x28, 0xe1, 0xed, 0x73, 0x0a, 0x66, 0xa5, 0x73, 0x01, 0x36, 0xb4, 0x3f, 0xdc, 0xd8, 0x27, 0x05, - 0xdd, 0x88, 0xf7, 0xea, 0x50, 0xf2, 0x10, 0xb6, 0x38, 0x85, 0x6b, 0xaf, 0xd2, 0x0e, 0x2a, 0x67, - 0xcf, 0x5c, 0xf6, 0xe9, 0x34, 0xf4, 0xec, 0x25, 0x8c, 0x25, 0x47, 0x8a, 0x2f, 0x9d, 0x97, 0x7e, - 0x2e, 0x17, 0xb5, 0x57, 0xdd, 0xba, 0xfb, 0x3b, 0xa8, 0x32, 0x32, 0x3f, 0x9e, 0x43, 0x95, 0xa7, - 0xbe, 0x08, 0xc0, 0x66, 0x1d, 0x06, 0xb4, 0x9a, 0xc3, 0xb3, 0x08, 0x1d, 0x82, 0xdb, 0x89, 0x38, - 0x40, 0xab, 0x0a, 0x9e, 0x41, 0xe5, 0x9d, 0xc8, 0xe9, 0x27, 0xbe, 0x3b, 0xa8, 0xe6, 0x71, 0x09, - 0x15, 0xb7, 0x7b, 0xc4, 0xad, 0x16, 0x5a, 0x70, 0x72, 0xa6, 0x29, 0xa7, 0x67, 0x9a, 0xf2, 0xed, - 0x4c, 0x53, 0xde, 0x9d, 0x6b, 0xb9, 0xd3, 0x73, 0x2d, 0xf7, 0xe5, 0x5c, 0xcb, 0x3d, 0x7b, 0xec, - 0x30, 0xd9, 0xed, 0xb5, 0x75, 0x9b, 0x7b, 0xc6, 0x6e, 0x66, 0xff, 0x1e, 0x69, 0x0b, 0x63, 0x78, - 0x19, 0xab, 0x36, 0x0f, 0x61, 0x14, 0x76, 0x09, 0xf3, 0x0d, 0x8f, 0xd3, 0x9e, 0x0b, 0x22, 0xfd, - 0x47, 0x91, 0x83, 0x00, 0x44, 0x7b, 0x32, 0x7e, 0xdf, 0x1f, 0xfe, 0x08, 0x00, 0x00, 0xff, 0xff, - 0x04, 0xe3, 0xe0, 0x18, 0x71, 0x06, 0x00, 0x00, + // 738 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcf, 0x6e, 0xd3, 0x4e, + 0x10, 0x8e, 0x93, 0xb4, 0x4d, 0x36, 0xfd, 0x93, 0xee, 0xaf, 0xfa, 0x61, 0xda, 0xe2, 0x84, 0x44, + 0x82, 0xb4, 0x52, 0x6d, 0x5a, 0x6e, 0xb9, 0x35, 0xad, 0x88, 0x2a, 0x5a, 0x51, 0xb9, 0x70, 0x80, + 0x8b, 0xb5, 0xf1, 0x6e, 0x9c, 0x45, 0xb6, 0xd7, 0x78, 0x37, 0x29, 0x11, 0x2f, 0x80, 0x38, 0xf1, + 0x08, 0x7d, 0x02, 0xe0, 0xc0, 0x89, 0x27, 0xa8, 0x38, 0x95, 0x1b, 0x27, 0x84, 0xd2, 0x03, 0x3c, + 0x06, 0xf2, 0xbf, 0x34, 0xa8, 0x10, 0x45, 0xad, 0xb8, 0x44, 0x99, 0x99, 0x6f, 0x67, 0xe6, 0xfb, + 0x66, 0xd6, 0x0b, 0x6e, 0x53, 0xf7, 0x39, 0x31, 0x05, 0xed, 0x11, 0xed, 0x18, 0x71, 0xe7, 0xa5, + 0xd6, 0xdb, 0xd4, 0x3c, 0x9f, 0x79, 0x8c, 0x23, 0x5b, 0xf5, 0x7c, 0x26, 0x18, 0x84, 0x43, 0x88, + 0x1a, 0x42, 0xd4, 0xde, 0xe6, 0xf2, 0x4d, 0x93, 0x71, 0x87, 0x71, 0x23, 0x44, 0x68, 0x91, 0x11, + 0xc1, 0x97, 0xef, 0x04, 0x56, 0x00, 0x0c, 0x13, 0x8e, 0xe6, 0x33, 0x6c, 0x62, 0x21, 0xb3, 0x1f, + 0xe3, 0x96, 0x2c, 0x66, 0xb1, 0xe8, 0x7c, 0xf0, 0x2f, 0xf6, 0x2e, 0x22, 0x87, 0xba, 0x4c, 0x0b, + 0x7f, 0x23, 0x57, 0xe5, 0x5d, 0x1a, 0x54, 0x77, 0x98, 0x2b, 0x7c, 0x64, 0x0a, 0x9d, 0x58, 0x94, + 0x0b, 0x1f, 0x09, 0xca, 0x5c, 0x9d, 0xbc, 0xe8, 0x12, 0x2e, 0x0e, 0xe3, 0xec, 0x70, 0x09, 0x4c, + 0x09, 0x2a, 0x6c, 0x22, 0x4b, 0x65, 0xa9, 0x96, 0xd7, 0x23, 0x03, 0x96, 0x41, 0x01, 0x13, 0x6e, + 0xfa, 0xd4, 0x0b, 0xce, 0xc8, 0xe9, 0x30, 0x36, 0xea, 0x82, 0x7d, 0x70, 0xcb, 0x8c, 0xd3, 0x1b, + 0xfe, 0x48, 0x7e, 0xc3, 0x8f, 0x0a, 0xc8, 0x99, 0xb2, 0x54, 0x2b, 0x6c, 0x69, 0xea, 0x65, 0x1d, + 0xd4, 0x31, 0x7d, 0x35, 0xb2, 0xa7, 0xdf, 0x4a, 0x29, 0x7d, 0xc5, 0xfc, 0x3b, 0xa4, 0xfe, 0xf8, + 0xf5, 0x49, 0x29, 0xf5, 0xf3, 0xa4, 0x94, 0xfa, 0xfc, 0x71, 0x63, 0x39, 0x56, 0xd1, 0x62, 0x3d, + 0xb5, 0xb7, 0xd9, 0x22, 0x02, 0x45, 0xe9, 0x89, 0x2b, 0xde, 0xfc, 0xf8, 0xb0, 0xbe, 0x16, 0x8d, + 0x67, 0x02, 0x21, 0x2a, 0x9f, 0xd2, 0xa0, 0xd6, 0x40, 0xc2, 0xec, 0xfc, 0x4b, 0xd5, 0x5e, 0x01, + 0x65, 0xac, 0x6a, 0x5c, 0xce, 0x94, 0x33, 0x57, 0x97, 0x6d, 0x75, 0x8c, 0x6c, 0xbc, 0xfe, 0x74, + 0x72, 0xdd, 0xa2, 0xa2, 0xda, 0xa4, 0x7a, 0x54, 0xbe, 0x48, 0xa0, 0xfa, 0x1b, 0x78, 0x97, 0x8c, + 0xd2, 0xbb, 0xb6, 0x6e, 0xab, 0x20, 0x9f, 0x50, 0x8b, 0x24, 0xca, 0xeb, 0x17, 0x8e, 0x2b, 0x2c, + 0xc4, 0x04, 0xbd, 0x56, 0xde, 0x67, 0xc0, 0xca, 0x18, 0xee, 0x70, 0x0d, 0x14, 0x87, 0xb3, 0x44, + 0x18, 0xfb, 0x84, 0xf3, 0x98, 0xd6, 0x42, 0xe2, 0xdf, 0x8e, 0xdc, 0x70, 0x05, 0xe4, 0x2d, 0xc4, + 0x0d, 0x9b, 0x3a, 0x54, 0x84, 0xf4, 0xb2, 0x7a, 0xce, 0x42, 0x7c, 0x3f, 0xb0, 0x93, 0xa0, 0xe7, + 0x53, 0x93, 0x84, 0xb7, 0x26, 0x0a, 0x1e, 0x06, 0x36, 0x54, 0xc1, 0x7f, 0xbc, 0xc3, 0xba, 0x36, + 0x36, 0x3c, 0xea, 0x1a, 0x49, 0x5e, 0x39, 0x5b, 0x96, 0x6a, 0x39, 0x7d, 0x31, 0x0a, 0x1d, 0x52, + 0x37, 0xe9, 0x13, 0xde, 0x03, 0x4b, 0x94, 0x1b, 0x0e, 0xb5, 0xe2, 0xbd, 0x42, 0xb6, 0xcd, 0x8e, + 0x09, 0x96, 0xa7, 0xc2, 0x03, 0x90, 0xf2, 0x83, 0x24, 0xb4, 0x1d, 0x45, 0xe0, 0x0d, 0x30, 0x63, + 0x32, 0x4c, 0x0c, 0x8a, 0xe5, 0xe9, 0xb0, 0xf8, 0x74, 0x60, 0xee, 0x61, 0x58, 0x05, 0x73, 0x08, + 0x3b, 0xd4, 0x1d, 0x92, 0x9b, 0x09, 0xc9, 0xcd, 0x86, 0xce, 0x84, 0xd9, 0x5d, 0xb0, 0x60, 0xf9, + 0xc8, 0x15, 0xc4, 0x1f, 0xc2, 0x72, 0x21, 0x6c, 0x3e, 0x76, 0x27, 0xc0, 0x06, 0x98, 0x6d, 0x77, + 0x5d, 0x4c, 0x5d, 0xcb, 0x70, 0x18, 0x26, 0x72, 0xbe, 0x2c, 0xd5, 0xe6, 0xb7, 0x4a, 0x7f, 0xda, + 0xf3, 0x07, 0x11, 0xee, 0x80, 0x61, 0xa2, 0x17, 0xda, 0x17, 0x46, 0x5d, 0x19, 0x3f, 0xdf, 0xca, + 0x40, 0x02, 0xff, 0x87, 0x93, 0x3d, 0x12, 0xcc, 0x27, 0x3b, 0x0c, 0x93, 0x6b, 0x2f, 0x5e, 0x13, + 0xe4, 0x93, 0x0f, 0x71, 0x72, 0x37, 0xab, 0x6a, 0xf2, 0xad, 0x0e, 0x5b, 0x0e, 0x3a, 0xbe, 0x54, + 0x2f, 0xbe, 0x8f, 0x17, 0x67, 0xeb, 0xcd, 0xc9, 0x77, 0x74, 0x75, 0x64, 0x47, 0x2f, 0x65, 0x5e, + 0x6f, 0x82, 0xc2, 0x88, 0x40, 0x70, 0x01, 0x14, 0x9e, 0xb8, 0xdc, 0x23, 0x26, 0x6d, 0x53, 0x82, + 0x8b, 0x29, 0x38, 0x0f, 0xc0, 0x11, 0xb1, 0xdb, 0x01, 0x86, 0xe0, 0xa2, 0x04, 0xe7, 0x40, 0xbe, + 0x19, 0x8c, 0xe2, 0x91, 0x6b, 0xf7, 0x8b, 0x69, 0x98, 0x03, 0xd9, 0xdd, 0x2e, 0xb2, 0x8b, 0x99, + 0x06, 0x39, 0x1d, 0x28, 0xd2, 0xd9, 0x40, 0x91, 0xbe, 0x0f, 0x14, 0xe9, 0xed, 0xb9, 0x92, 0x3a, + 0x3b, 0x57, 0x52, 0x5f, 0xcf, 0x95, 0xd4, 0xb3, 0x87, 0x16, 0x15, 0x9d, 0x6e, 0x4b, 0x35, 0x99, + 0xa3, 0xed, 0x25, 0xf3, 0xd9, 0x47, 0x2d, 0xae, 0x0d, 0xa7, 0xb5, 0x61, 0x32, 0x9f, 0x8c, 0x9a, + 0x1d, 0x44, 0x5d, 0xcd, 0x61, 0xb8, 0x6b, 0x13, 0x1e, 0x3f, 0x8a, 0xa2, 0xef, 0x11, 0xde, 0x9a, + 0x0e, 0xdf, 0xa3, 0xfb, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xee, 0xb6, 0x0c, 0x34, 0x07, + 0x00, 0x00, } func (m *ContractRegistrationRequestProposal) Marshal() (dAtA []byte, err error) { diff --git a/chain/wasmx/types/tx.pb.go b/chain/wasmx/types/tx.pb.go index 02545b39..fbf519a8 100644 --- a/chain/wasmx/types/tx.pb.go +++ b/chain/wasmx/types/tx.pb.go @@ -9,6 +9,7 @@ import ( _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/codec/types" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -643,53 +644,58 @@ func init() { func init() { proto.RegisterFile("injective/wasmx/v1/tx.proto", fileDescriptor_f7afe23baa925f70) } var fileDescriptor_f7afe23baa925f70 = []byte{ - // 736 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xc1, 0x4e, 0x14, 0x4b, - 0x14, 0x9d, 0x7e, 0x0c, 0x04, 0x2e, 0xbc, 0x07, 0xaf, 0x1f, 0x3c, 0x86, 0x1e, 0x19, 0x70, 0x8c, - 0x51, 0x54, 0xa6, 0x03, 0x1a, 0x62, 0xd8, 0x01, 0xba, 0x30, 0x32, 0x09, 0x69, 0xe3, 0xc6, 0xcd, - 0x58, 0xd3, 0x5d, 0x14, 0x6d, 0xa6, 0xbb, 0xda, 0xae, 0x6a, 0x64, 0x74, 0xa7, 0x3f, 0x60, 0xe2, - 0x8f, 0xb8, 0xd0, 0x8d, 0x5f, 0xc0, 0x92, 0xb8, 0x72, 0x65, 0x0c, 0x2c, 0xfc, 0x0d, 0xd3, 0x55, - 0xd5, 0x35, 0x32, 0xd3, 0xad, 0x63, 0xa2, 0xbb, 0xba, 0x75, 0x4e, 0xdd, 0x73, 0x6e, 0xdd, 0x5b, - 0xdd, 0x50, 0xf5, 0xc3, 0x27, 0xd8, 0xe5, 0xfe, 0x21, 0xb6, 0x9f, 0x21, 0x16, 0x1c, 0xd9, 0x87, - 0x6b, 0x36, 0x3f, 0x6a, 0x44, 0x31, 0xe5, 0xd4, 0x34, 0x35, 0xd8, 0x10, 0x60, 0xe3, 0x70, 0xcd, - 0x9a, 0x25, 0x94, 0x50, 0x01, 0xdb, 0xe9, 0x4a, 0x32, 0xad, 0x05, 0x42, 0x29, 0xe9, 0x60, 0x5b, - 0x44, 0xed, 0x64, 0xdf, 0x46, 0x61, 0x37, 0x83, 0x5c, 0xca, 0x02, 0xca, 0x5a, 0xf2, 0x8c, 0x0c, - 0x14, 0x34, 0x2f, 0x23, 0x3b, 0x60, 0x24, 0xd5, 0x0d, 0x18, 0x51, 0x40, 0x2d, 0xc7, 0x95, 0x74, - 0x20, 0xf1, 0x8b, 0x39, 0x78, 0x14, 0xd3, 0x88, 0x32, 0xd4, 0x91, 0x94, 0xfa, 0x2b, 0x03, 0x2a, - 0x4d, 0x46, 0xee, 0x1e, 0x61, 0x37, 0xe1, 0x78, 0x87, 0x86, 0x3c, 0x46, 0x2e, 0xdf, 0xa1, 0x41, - 0x84, 0xb8, 0xf9, 0x3f, 0x8c, 0x31, 0x1c, 0x7a, 0x38, 0xae, 0x18, 0xcb, 0xc6, 0xd5, 0x09, 0x47, - 0x45, 0xa6, 0x05, 0xe3, 0xae, 0x62, 0x56, 0xfe, 0x12, 0x88, 0x8e, 0xcd, 0x19, 0x18, 0x09, 0x18, - 0xa9, 0x8c, 0x88, 0xed, 0x74, 0x69, 0xce, 0xc2, 0xe8, 0x7e, 0x12, 0x7a, 0xac, 0x52, 0x16, 0x7b, - 0x32, 0xd8, 0x9c, 0x7c, 0xf9, 0xf5, 0xed, 0x35, 0x95, 0xb0, 0xbe, 0x01, 0xcb, 0x45, 0x26, 0x1c, - 0xcc, 0x22, 0x1a, 0x32, 0x6c, 0x9a, 0x50, 0xf6, 0x10, 0x47, 0xc2, 0xca, 0x94, 0x23, 0xd6, 0xf5, - 0x63, 0x03, 0xfe, 0x6d, 0x32, 0xf2, 0x30, 0xf2, 0x50, 0xef, 0x5c, 0xa1, 0xed, 0x15, 0x98, 0xc9, - 0x6c, 0xb6, 0x90, 0xe7, 0xc5, 0x98, 0x31, 0x65, 0x7f, 0x3a, 0xdb, 0xdf, 0x92, 0xdb, 0x66, 0x15, - 0x26, 0x08, 0x62, 0xad, 0x8e, 0x1f, 0xf8, 0x5c, 0xd4, 0x52, 0x76, 0xc6, 0x09, 0x62, 0xbb, 0x69, - 0x9c, 0x81, 0x51, 0xec, 0xbb, 0x58, 0x14, 0x25, 0xc1, 0xbd, 0x34, 0x36, 0x57, 0xe0, 0x6f, 0xe4, - 0x05, 0x7e, 0xa8, 0x15, 0x46, 0x53, 0x85, 0xed, 0xf2, 0xf1, 0xe7, 0x25, 0xc3, 0x99, 0x12, 0x90, - 0x12, 0x39, 0x7f, 0x05, 0x55, 0x58, 0x18, 0xa8, 0x24, 0xab, 0xbd, 0x8e, 0xe1, 0xbf, 0x26, 0x23, - 0x5b, 0x69, 0x2b, 0x7f, 0x6f, 0xa1, 0xe7, 0x3d, 0x2c, 0x42, 0x35, 0x47, 0x46, 0xbb, 0x20, 0x30, - 0xd7, 0x64, 0xe4, 0x0e, 0x46, 0x7f, 0xda, 0xc7, 0x12, 0x2c, 0xe6, 0x0a, 0x69, 0x27, 0x6f, 0x0c, - 0x98, 0xd6, 0xb7, 0xb5, 0x87, 0x62, 0x14, 0x30, 0x73, 0x03, 0x26, 0x50, 0xc2, 0x0f, 0x68, 0xec, - 0xf3, 0xae, 0xf4, 0xb1, 0x5d, 0xf9, 0xf8, 0x6e, 0x75, 0x56, 0x3d, 0x25, 0x25, 0xf4, 0x80, 0xc7, - 0x7e, 0x48, 0x9c, 0x1e, 0xd5, 0xbc, 0x0d, 0x63, 0x91, 0xc8, 0x20, 0xac, 0x4d, 0xae, 0x5b, 0x8d, - 0xc1, 0xe7, 0xdc, 0x90, 0x1a, 0xa2, 0x8b, 0x25, 0x47, 0xf1, 0x37, 0xff, 0x49, 0x3d, 0xf7, 0x32, - 0xd5, 0x17, 0x60, 0xbe, 0xcf, 0x94, 0x36, 0xfc, 0xde, 0x10, 0x1d, 0x74, 0x30, 0xf1, 0x19, 0xc7, - 0xf1, 0x4f, 0x6f, 0xae, 0x0b, 0x8b, 0xfa, 0xe6, 0x62, 0x71, 0x28, 0x46, 0xdc, 0xa7, 0x61, 0x2b, - 0xc6, 0x4f, 0x13, 0xcc, 0xb8, 0xf2, 0x6a, 0xe7, 0x79, 0xed, 0xdd, 0x56, 0xef, 0x9c, 0x23, 0x8f, - 0xa9, 0x02, 0xaa, 0x6e, 0x31, 0x25, 0x6f, 0x22, 0xfa, 0x6d, 0x67, 0x65, 0xad, 0x7f, 0x18, 0x85, - 0x91, 0x26, 0x23, 0x26, 0x87, 0x0b, 0xb2, 0x6c, 0x95, 0xb0, 0x9b, 0x31, 0x55, 0x6f, 0x2e, 0xe7, - 0xf9, 0x1c, 0x18, 0x77, 0x6b, 0x75, 0x28, 0x9a, 0xfe, 0x22, 0x70, 0xa8, 0x64, 0xb3, 0xda, 0xaf, - 0x6b, 0x5e, 0x29, 0x48, 0xd5, 0x3f, 0xdc, 0x96, 0x3d, 0x24, 0x51, 0xab, 0x3e, 0x07, 0xab, 0x37, - 0x99, 0x03, 0xba, 0x2b, 0x05, 0xe9, 0x06, 0x87, 0xd9, 0x5a, 0x1b, 0x9a, 0xaa, 0xb5, 0x5f, 0xc0, - 0x5c, 0xfe, 0x97, 0xfa, 0x46, 0x41, 0xae, 0x5c, 0xb6, 0x75, 0xeb, 0x57, 0xd8, 0x5a, 0xfc, 0x31, - 0x4c, 0x9d, 0x7b, 0x70, 0x97, 0x7e, 0xd8, 0x2d, 0x49, 0xb2, 0xae, 0x0f, 0x41, 0xd2, 0x0a, 0x1d, - 0x98, 0x19, 0x78, 0x21, 0x45, 0x8d, 0xec, 0x27, 0x16, 0x36, 0xb2, 0x68, 0x78, 0xb7, 0xf1, 0xf1, - 0x69, 0xcd, 0x38, 0x39, 0xad, 0x19, 0x5f, 0x4e, 0x6b, 0xc6, 0xeb, 0xb3, 0x5a, 0xe9, 0xe4, 0xac, - 0x56, 0xfa, 0x74, 0x56, 0x2b, 0x3d, 0xba, 0x4f, 0x7c, 0x7e, 0x90, 0xb4, 0x1b, 0x2e, 0x0d, 0xec, - 0x7b, 0x59, 0xd2, 0x5d, 0xd4, 0x66, 0xb6, 0x96, 0x58, 0x75, 0x69, 0x8c, 0xbf, 0x0f, 0x0f, 0x90, - 0x1f, 0xda, 0x01, 0xf5, 0x92, 0x0e, 0x66, 0xea, 0x6f, 0xcb, 0xbb, 0x11, 0x66, 0xed, 0x31, 0xf1, - 0xa3, 0xbd, 0xf9, 0x2d, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xb3, 0xf7, 0xc0, 0x43, 0x08, 0x00, 0x00, + // 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, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/chain/wasmx/types/util.go b/chain/wasmx/types/util.go index c7eb5ae2..49eb4491 100644 --- a/chain/wasmx/types/util.go +++ b/chain/wasmx/types/util.go @@ -2,18 +2,16 @@ package types import ( "github.com/CosmWasm/wasmd/x/wasm/types" - types2 "github.com/cosmos/cosmos-sdk/types" + sdktypes "github.com/cosmos/cosmos-sdk/types" ) -func IsAllowed(accessConfig types.AccessConfig, actor types2.AccAddress) bool { - switch accessConfig.Permission { - case types.AccessTypeAnyOfAddresses: +func IsAllowed(accessConfig types.AccessConfig, actor sdktypes.AccAddress) bool { + if accessConfig.Permission == types.AccessTypeAnyOfAddresses { for _, v := range accessConfig.Addresses { if v == actor.String() { return true } } - return false } return false } diff --git a/chain/wasmx/types/wasmx.pb.go b/chain/wasmx/types/wasmx.pb.go index 053a0a76..bc44ad85 100644 --- a/chain/wasmx/types/wasmx.pb.go +++ b/chain/wasmx/types/wasmx.pb.go @@ -5,6 +5,8 @@ package types import ( fmt "fmt" + types "github.com/CosmWasm/wasmd/x/wasm/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -35,7 +37,8 @@ type Params struct { MaxContractGasLimit uint64 `protobuf:"varint,3,opt,name=max_contract_gas_limit,json=maxContractGasLimit,proto3" json:"max_contract_gas_limit,omitempty"` // min_gas_price defines the minimum gas price the contracts must pay to be // executed in the BeginBlocker. - MinGasPrice uint64 `protobuf:"varint,4,opt,name=min_gas_price,json=minGasPrice,proto3" json:"min_gas_price,omitempty"` + MinGasPrice uint64 `protobuf:"varint,4,opt,name=min_gas_price,json=minGasPrice,proto3" json:"min_gas_price,omitempty"` + RegisterContractAccess types.AccessConfig `protobuf:"bytes,5,opt,name=register_contract_access,json=registerContractAccess,proto3" json:"register_contract_access" yaml:"register_contract_access"` } func (m *Params) Reset() { *m = Params{} } @@ -99,6 +102,13 @@ func (m *Params) GetMinGasPrice() uint64 { return 0 } +func (m *Params) GetRegisterContractAccess() types.AccessConfig { + if m != nil { + return m.RegisterContractAccess + } + return types.AccessConfig{} +} + type RegisteredContract struct { // limit of gas per BB execution GasLimit uint64 `protobuf:"varint,1,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"` @@ -208,38 +218,44 @@ func init() { func init() { proto.RegisterFile("injective/wasmx/v1/wasmx.proto", fileDescriptor_6818ff331f2cddc4) } var fileDescriptor_6818ff331f2cddc4 = []byte{ - // 486 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x4f, 0x6e, 0x13, 0x31, - 0x14, 0xc6, 0xeb, 0x10, 0xd2, 0xc4, 0x34, 0x45, 0x32, 0x05, 0x0d, 0x45, 0x4c, 0x42, 0xd8, 0x84, - 0x45, 0x33, 0x94, 0x6e, 0x10, 0x62, 0x43, 0x50, 0x89, 0x2a, 0x8a, 0x54, 0x8d, 0x58, 0xb1, 0x19, - 0x79, 0xc6, 0x8f, 0xa9, 0x61, 0x6c, 0x47, 0xb6, 0x27, 0x0c, 0xb7, 0xe0, 0x08, 0x1c, 0x81, 0x63, - 0x74, 0x59, 0x89, 0x0d, 0x2b, 0x84, 0x92, 0x0d, 0xc7, 0x40, 0x9e, 0x7f, 0x54, 0x82, 0xdd, 0xf3, - 0xfb, 0x7d, 0xdf, 0x67, 0xfb, 0xe9, 0x61, 0x9f, 0xcb, 0x0f, 0x90, 0x58, 0xbe, 0x82, 0xe0, 0x13, - 0x35, 0xa2, 0x08, 0x56, 0x87, 0x55, 0x31, 0x5b, 0x6a, 0x65, 0x15, 0x21, 0x2d, 0x9f, 0x55, 0xed, - 0xd5, 0xe1, 0xfe, 0x5e, 0xaa, 0x52, 0x55, 0xe2, 0xc0, 0x55, 0x95, 0x72, 0xff, 0xc1, 0x7f, 0x92, - 0x96, 0x5a, 0x2d, 0x95, 0xa1, 0x59, 0x25, 0x99, 0x7c, 0x47, 0xb8, 0x77, 0x46, 0x35, 0x15, 0x86, - 0x3c, 0xc6, 0x7b, 0xdc, 0x44, 0x50, 0x40, 0x92, 0x5b, 0xae, 0x64, 0x04, 0x92, 0xc6, 0x19, 0x30, - 0x0f, 0x8d, 0xd1, 0xb4, 0x1f, 0x12, 0x6e, 0x8e, 0x1b, 0x74, 0x5c, 0x11, 0xf2, 0x14, 0xdf, 0x15, - 0xb4, 0x88, 0x62, 0x48, 0xb9, 0x8c, 0xe2, 0x4c, 0x25, 0x1f, 0x23, 0xab, 0x2c, 0xcd, 0xa2, 0x94, - 0x1a, 0xaf, 0x33, 0x46, 0xd3, 0x6e, 0x78, 0x5b, 0xd0, 0x62, 0xee, 0xf8, 0xdc, 0xe1, 0xb7, 0x8e, - 0x2e, 0xa8, 0x21, 0x47, 0xf8, 0x8e, 0x73, 0x26, 0x4a, 0x5a, 0x4d, 0x13, 0xeb, 0x0c, 0x51, 0xc6, - 0x05, 0xb7, 0xde, 0xb5, 0xd2, 0x76, 0x4b, 0xd0, 0xe2, 0x65, 0x0d, 0x17, 0xd4, 0x9c, 0x3a, 0x44, - 0x26, 0x78, 0x28, 0xb8, 0x2c, 0xb5, 0x4b, 0xcd, 0x13, 0xf0, 0xba, 0xa5, 0xf6, 0x86, 0xe0, 0x72, - 0x41, 0xcd, 0x99, 0x6b, 0x3d, 0xeb, 0xfe, 0xfe, 0x3a, 0x42, 0x93, 0x6f, 0x1d, 0x4c, 0x42, 0x48, - 0xb9, 0xb1, 0xa0, 0x81, 0x35, 0x41, 0xe4, 0x1e, 0x1e, 0xfc, 0xbd, 0x08, 0x95, 0xe6, 0x7e, 0xda, - 0xa4, 0xd7, 0xb0, 0x4a, 0xee, 0xb4, 0xb0, 0x8c, 0x25, 0x0f, 0xf1, 0xb0, 0x9d, 0x8d, 0xfb, 0x7b, - 0xf9, 0xcc, 0x7e, 0xb8, 0xd3, 0x0c, 0xc5, 0xf5, 0xc8, 0x7d, 0xbc, 0x9d, 0x28, 0x06, 0x11, 0x67, - 0xd5, 0xcb, 0xe6, 0xdd, 0x8b, 0x9f, 0x23, 0x14, 0xf6, 0x5c, 0xf3, 0x84, 0x91, 0x47, 0x78, 0x48, - 0x99, 0xfb, 0x00, 0x65, 0x4c, 0x83, 0x31, 0xde, 0xf5, 0x31, 0x9a, 0x0e, 0x6a, 0xd1, 0x4e, 0x89, - 0x5e, 0x54, 0x84, 0x1c, 0xe0, 0x9b, 0xa9, 0xa6, 0xd2, 0x82, 0x6e, 0xc5, 0xbd, 0x2b, 0xe2, 0xdd, - 0x1a, 0x36, 0xf2, 0xe7, 0x78, 0xf0, 0x3e, 0x97, 0x2c, 0x12, 0x8a, 0x81, 0xb7, 0x3d, 0x46, 0xd3, - 0xdd, 0x27, 0xa3, 0xd9, 0xbf, 0x5b, 0x32, 0x7b, 0x95, 0x4b, 0xc6, 0x65, 0xfa, 0x46, 0x31, 0x08, - 0xfb, 0xce, 0xe1, 0xaa, 0x6a, 0x64, 0x73, 0xb8, 0x58, 0xfb, 0xe8, 0x72, 0xed, 0xa3, 0x5f, 0x6b, - 0x1f, 0x7d, 0xd9, 0xf8, 0x5b, 0x97, 0x1b, 0x7f, 0xeb, 0xc7, 0xc6, 0xdf, 0x7a, 0xf7, 0x3a, 0xe5, - 0xf6, 0x3c, 0x8f, 0x67, 0x89, 0x12, 0xc1, 0x49, 0x13, 0x7a, 0x4a, 0x63, 0x13, 0xb4, 0x57, 0x1c, - 0x24, 0x4a, 0xc3, 0xd5, 0xe3, 0x39, 0xe5, 0x32, 0x10, 0x8a, 0xe5, 0x19, 0x98, 0x7a, 0xf7, 0xec, - 0xe7, 0x25, 0x98, 0xb8, 0x57, 0xae, 0xdd, 0xd1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x6a, - 0x78, 0xe2, 0xe5, 0x02, 0x00, 0x00, + // 588 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x93, 0x3f, 0x6f, 0xd4, 0x30, + 0x18, 0xc6, 0xcf, 0xc7, 0x71, 0xbd, 0xba, 0x7f, 0x10, 0xa6, 0xad, 0x42, 0x81, 0xdc, 0x71, 0x2c, + 0x47, 0x45, 0x13, 0xda, 0x2e, 0xa8, 0x62, 0xe9, 0x55, 0xa5, 0xaa, 0x28, 0x52, 0x15, 0x31, 0xb1, + 0x44, 0x8e, 0xed, 0xa6, 0x86, 0xd8, 0x3e, 0xc5, 0xb9, 0xe3, 0xfa, 0x05, 0x18, 0x98, 0xf8, 0x08, + 0x8c, 0x8c, 0xfd, 0x18, 0x1d, 0x3b, 0x32, 0x55, 0xa8, 0x1d, 0xca, 0xc2, 0xc2, 0x27, 0x40, 0xb6, + 0x93, 0x6b, 0x25, 0x60, 0x89, 0x9c, 0xf7, 0xf7, 0x3c, 0xaf, 0xf3, 0x3e, 0x8e, 0xa1, 0xcf, 0xe5, + 0x7b, 0x46, 0x0a, 0x3e, 0x62, 0xe1, 0x47, 0xac, 0xc5, 0x38, 0x1c, 0xad, 0xb9, 0x45, 0x30, 0xc8, + 0x55, 0xa1, 0x10, 0x9a, 0xf0, 0xc0, 0x95, 0x47, 0x6b, 0xcb, 0x0b, 0xa9, 0x4a, 0x95, 0xc5, 0xa1, + 0x59, 0x39, 0xe5, 0xf2, 0x43, 0xa2, 0xb4, 0x30, 0x1a, 0xeb, 0x37, 0x7d, 0x8a, 0xe3, 0x01, 0xd3, + 0x25, 0xbd, 0x8b, 0x05, 0x97, 0x2a, 0xb4, 0xcf, 0xb2, 0xf4, 0xf8, 0x1f, 0x5b, 0x0f, 0x72, 0x35, + 0x50, 0x1a, 0x67, 0x4e, 0xd2, 0xfd, 0x55, 0x87, 0xcd, 0x03, 0x9c, 0x63, 0xa1, 0xd1, 0x73, 0xb8, + 0xc0, 0x75, 0xcc, 0xc6, 0x8c, 0x0c, 0x0b, 0xae, 0x64, 0xcc, 0x24, 0x4e, 0x32, 0x46, 0x3d, 0xd0, + 0x01, 0xbd, 0x56, 0x84, 0xb8, 0xde, 0xa9, 0xd0, 0x8e, 0x23, 0xe8, 0x05, 0xbc, 0x2f, 0xf0, 0x38, + 0x4e, 0x58, 0xca, 0x65, 0x9c, 0x64, 0x8a, 0x7c, 0x88, 0x0b, 0x55, 0xe0, 0x2c, 0x4e, 0xb1, 0xf6, + 0xea, 0x1d, 0xd0, 0x6b, 0x44, 0x8b, 0x02, 0x8f, 0xfb, 0x86, 0xf7, 0x0d, 0x7e, 0x6b, 0xe8, 0x2e, + 0xd6, 0x68, 0x03, 0x2e, 0x19, 0x27, 0x51, 0xb2, 0xc8, 0x31, 0x29, 0x8c, 0x21, 0xce, 0xb8, 0xe0, + 0x85, 0x77, 0xcb, 0xda, 0xee, 0x09, 0x3c, 0xde, 0x2e, 0xe1, 0x2e, 0xd6, 0xfb, 0x06, 0xa1, 0x2e, + 0x9c, 0x13, 0x5c, 0x5a, 0xed, 0x20, 0xe7, 0x84, 0x79, 0x0d, 0xab, 0x9d, 0x11, 0x5c, 0xee, 0x62, + 0x7d, 0x60, 0x4a, 0xe8, 0x13, 0x80, 0x5e, 0xce, 0x52, 0xae, 0x0b, 0x96, 0x5f, 0xb7, 0xc7, 0x84, + 0x30, 0xad, 0xbd, 0xdb, 0x1d, 0xd0, 0x9b, 0x59, 0xf7, 0x83, 0x2a, 0x47, 0x1b, 0x78, 0x30, 0x5a, + 0x0b, 0xb6, 0x2c, 0xdf, 0x56, 0xf2, 0x90, 0xa7, 0xfd, 0x67, 0xa7, 0xe7, 0xed, 0xda, 0xef, 0xf3, + 0x76, 0xfb, 0x18, 0x8b, 0x6c, 0xb3, 0xfb, 0xbf, 0x6e, 0xdd, 0x6f, 0x57, 0x27, 0x2b, 0x20, 0x5a, + 0xaa, 0x78, 0xf5, 0xb9, 0xae, 0xd7, 0xe6, 0xe2, 0xcf, 0xaf, 0x6d, 0xf0, 0xf9, 0xea, 0x64, 0x65, + 0xd6, 0x45, 0xef, 0x42, 0xee, 0x9e, 0xd4, 0x21, 0x8a, 0x4a, 0x07, 0xa3, 0x95, 0x07, 0x3d, 0x80, + 0xd3, 0xd7, 0x11, 0x00, 0x3b, 0x56, 0x2b, 0xad, 0xe6, 0x2e, 0xa1, 0x9b, 0xb9, 0x3e, 0x81, 0x6e, + 0xe0, 0x27, 0x70, 0x6e, 0x72, 0x6a, 0xe6, 0x54, 0x6c, 0x80, 0xad, 0x68, 0xb6, 0x3a, 0x2e, 0x53, + 0x43, 0x8f, 0xe0, 0x14, 0x51, 0x94, 0xc5, 0x9c, 0xba, 0xcc, 0xfa, 0x8d, 0xd3, 0xf3, 0x36, 0x88, + 0x9a, 0xa6, 0xb8, 0x47, 0xd1, 0x53, 0x38, 0x87, 0xa9, 0x89, 0x16, 0x53, 0x9a, 0x57, 0x41, 0x4d, + 0x97, 0xa2, 0x59, 0x8b, 0xb6, 0x1c, 0x41, 0xab, 0xf0, 0x4e, 0x9a, 0x63, 0x69, 0xf2, 0xa8, 0xc4, + 0xcd, 0x1b, 0xe2, 0xf9, 0x12, 0x56, 0xf2, 0x97, 0x70, 0xfa, 0x70, 0x28, 0x69, 0x2c, 0x14, 0x65, + 0xde, 0x54, 0x07, 0xf4, 0xe6, 0xd7, 0xdb, 0xc1, 0xdf, 0x3f, 0x7c, 0xf0, 0x6a, 0x28, 0x29, 0x97, + 0xe9, 0x1b, 0x45, 0x59, 0xd4, 0x32, 0x0e, 0xb3, 0xda, 0x6c, 0x98, 0x0c, 0xfb, 0xec, 0xf4, 0xc2, + 0x07, 0x67, 0x17, 0x3e, 0xf8, 0x71, 0xe1, 0x83, 0x2f, 0x97, 0x7e, 0xed, 0xec, 0xd2, 0xaf, 0x7d, + 0xbf, 0xf4, 0x6b, 0xef, 0x5e, 0xa7, 0xbc, 0x38, 0x1a, 0x26, 0x01, 0x51, 0x22, 0xdc, 0xab, 0x9a, + 0xee, 0xe3, 0x44, 0x87, 0x93, 0x2d, 0x56, 0x89, 0xca, 0xd9, 0xcd, 0xd7, 0x23, 0xcc, 0x65, 0x28, + 0x14, 0x1d, 0x66, 0x4c, 0x97, 0xb7, 0xc2, 0xde, 0xa2, 0xa4, 0x69, 0x2f, 0xc4, 0xc6, 0x9f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x2d, 0xc0, 0xef, 0x9c, 0xb0, 0x03, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -273,6 +289,9 @@ func (this *Params) Equal(that interface{}) bool { if this.MinGasPrice != that1.MinGasPrice { return false } + if !this.RegisterContractAccess.Equal(&that1.RegisterContractAccess) { + return false + } return true } func (this *RegisteredContract) Equal(that interface{}) bool { @@ -337,6 +356,16 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size, err := m.RegisterContractAccess.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintWasmx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a if m.MinGasPrice != 0 { i = encodeVarintWasmx(dAtA, i, uint64(m.MinGasPrice)) i-- @@ -461,6 +490,8 @@ func (m *Params) Size() (n int) { if m.MinGasPrice != 0 { n += 1 + sovWasmx(uint64(m.MinGasPrice)) } + l = m.RegisterContractAccess.Size() + n += 1 + l + sovWasmx(uint64(l)) return n } @@ -608,6 +639,39 @@ func (m *Params) Unmarshal(dAtA []byte) error { break } } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegisterContractAccess", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowWasmx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthWasmx + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthWasmx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RegisterContractAccess.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipWasmx(dAtA[iNdEx:]) diff --git a/client/chain/chain.go b/client/chain/chain.go index 058c57df..3f9f5a17 100644 --- a/client/chain/chain.go +++ b/client/chain/chain.go @@ -13,6 +13,12 @@ import ( "sync/atomic" "time" + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + + sdkmath "cosmossdk.io/math" + + "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice" + distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" "github.com/cosmos/cosmos-sdk/types/query" @@ -20,6 +26,10 @@ import ( "google.golang.org/grpc/credentials/insecure" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" + chainstreamtypes "github.com/InjectiveLabs/sdk-go/chain/stream/types" + tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" + "github.com/InjectiveLabs/sdk-go/client/common" log "github.com/InjectiveLabs/suplog" rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/client" @@ -31,27 +41,19 @@ import ( authztypes "github.com/cosmos/cosmos-sdk/x/authz" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/gogoproto/proto" - eth "github.com/ethereum/go-ethereum/common" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + ibcchanneltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" "github.com/pkg/errors" "github.com/shopspring/decimal" "google.golang.org/grpc" - "google.golang.org/grpc/metadata" - - exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" - chainstreamtypes "github.com/InjectiveLabs/sdk-go/chain/stream/types" - tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" - "github.com/InjectiveLabs/sdk-go/client/common" ethcommon "github.com/ethereum/go-ethereum/common" ) type OrderbookType string -const ( - SpotOrderbook = "injective.exchange.v1beta1.EventOrderbookUpdate.spot_orderbooks" - DerivativeOrderbook = "injective.exchange.v1beta1.EventOrderbookUpdate.derivative_orderbooks" -) - const ( msgCommitBatchSizeLimit = 1024 msgCommitBatchTimeLimit = 500 * time.Millisecond @@ -59,6 +61,8 @@ const ( defaultBroadcastTimeout = 40 * time.Second defaultTimeoutHeight = 20 defaultTimeoutHeightSyncInterval = 10 * time.Second + SpotOrderbook = "injective.exchange.v1beta1.EventOrderbookUpdate.spot_orderbooks" + DerivativeOrderbook = "injective.exchange.v1beta1.EventOrderbookUpdate.derivative_orderbooks" ) var ( @@ -113,28 +117,28 @@ type ChainClient interface { expireIn time.Time, ) *authztypes.MsgGrant - DefaultSubaccount(acc sdk.AccAddress) eth.Hash - Subaccount(account sdk.AccAddress, index int) eth.Hash + DefaultSubaccount(acc sdk.AccAddress) ethcommon.Hash + Subaccount(account sdk.AccAddress, index int) ethcommon.Hash - GetSubAccountNonce(ctx context.Context, subaccountId eth.Hash) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) + GetSubAccountNonce(ctx context.Context, subaccountId ethcommon.Hash) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) GetFeeDiscountInfo(ctx context.Context, account string) (*exchangetypes.QueryFeeDiscountAccountInfoResponse, error) UpdateSubaccountNonceFromChain() error - SynchronizeSubaccountNonce(subaccountId eth.Hash) error - ComputeOrderHashes(spotOrders []exchangetypes.SpotOrder, derivativeOrders []exchangetypes.DerivativeOrder, subaccountId eth.Hash) (OrderHashes, error) + SynchronizeSubaccountNonce(subaccountId ethcommon.Hash) error + ComputeOrderHashes(spotOrders []exchangetypes.SpotOrder, derivativeOrders []exchangetypes.DerivativeOrder, subaccountId ethcommon.Hash) (OrderHashes, error) - SpotOrder(defaultSubaccountID eth.Hash, network common.Network, d *SpotOrderData) *exchangetypes.SpotOrder - CreateSpotOrder(defaultSubaccountID eth.Hash, d *SpotOrderData, marketsAssistant MarketsAssistant) *exchangetypes.SpotOrder - DerivativeOrder(defaultSubaccountID eth.Hash, network common.Network, d *DerivativeOrderData) *exchangetypes.DerivativeOrder - CreateDerivativeOrder(defaultSubaccountID eth.Hash, d *DerivativeOrderData, marketAssistant MarketsAssistant) *exchangetypes.DerivativeOrder - OrderCancel(defaultSubaccountID eth.Hash, d *OrderCancelData) *exchangetypes.OrderData + SpotOrder(defaultSubaccountID ethcommon.Hash, network common.Network, d *SpotOrderData) *exchangetypes.SpotOrder + CreateSpotOrder(defaultSubaccountID ethcommon.Hash, d *SpotOrderData, marketsAssistant MarketsAssistant) *exchangetypes.SpotOrder + DerivativeOrder(defaultSubaccountID ethcommon.Hash, network common.Network, d *DerivativeOrderData) *exchangetypes.DerivativeOrder + CreateDerivativeOrder(defaultSubaccountID ethcommon.Hash, d *DerivativeOrderData, marketAssistant MarketsAssistant) *exchangetypes.DerivativeOrder + OrderCancel(defaultSubaccountID ethcommon.Hash, d *OrderCancelData) *exchangetypes.OrderData GetGasFee() (string, error) StreamEventOrderFail(sender string, failEventCh chan map[string]uint) StreamEventOrderFailWithWebsocket(sender string, websocket *rpchttp.HTTP, failEventCh chan map[string]uint) - StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIds []string, orderbookCh chan exchangetypes.Orderbook) - StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIds []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) + StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIDs []string, orderbookCh chan exchangetypes.Orderbook) + StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIDs []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) ChainStream(ctx context.Context, req chainstreamtypes.StreamRequest) (chainstreamtypes.Stream_StreamClient, error) @@ -182,16 +186,16 @@ type ChainClient interface { FetchSubaccountDeposit(ctx context.Context, subaccountId string, denom string) (*exchangetypes.QuerySubaccountDepositResponse, error) FetchExchangeBalances(ctx context.Context) (*exchangetypes.QueryExchangeBalancesResponse, error) FetchAggregateVolume(ctx context.Context, account string) (*exchangetypes.QueryAggregateVolumeResponse, error) - FetchAggregateVolumes(ctx context.Context, accounts []string, marketIds []string) (*exchangetypes.QueryAggregateVolumesResponse, error) + FetchAggregateVolumes(ctx context.Context, accounts []string, marketIDs []string) (*exchangetypes.QueryAggregateVolumesResponse, error) FetchAggregateMarketVolume(ctx context.Context, marketId string) (*exchangetypes.QueryAggregateMarketVolumeResponse, error) - FetchAggregateMarketVolumes(ctx context.Context, marketIds []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) + FetchAggregateMarketVolumes(ctx context.Context, marketIDs []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) FetchDenomDecimal(ctx context.Context, denom string) (*exchangetypes.QueryDenomDecimalResponse, error) FetchDenomDecimals(ctx context.Context, denoms []string) (*exchangetypes.QueryDenomDecimalsResponse, error) - FetchChainSpotMarkets(ctx context.Context, status string, marketIds []string) (*exchangetypes.QuerySpotMarketsResponse, error) + FetchChainSpotMarkets(ctx context.Context, status string, marketIDs []string) (*exchangetypes.QuerySpotMarketsResponse, error) FetchChainSpotMarket(ctx context.Context, marketId string) (*exchangetypes.QuerySpotMarketResponse, error) - FetchChainFullSpotMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) + FetchChainFullSpotMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) FetchChainFullSpotMarket(ctx context.Context, marketId string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketResponse, error) - FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional sdk.Dec, limitCumulativeQuantity sdk.Dec) (*exchangetypes.QuerySpotOrderbookResponse, error) + FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional sdkmath.LegacyDec, limitCumulativeQuantity sdkmath.LegacyDec) (*exchangetypes.QuerySpotOrderbookResponse, error) FetchChainTraderSpotOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) FetchChainAccountAddressSpotOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressSpotOrdersResponse, error) FetchChainSpotOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QuerySpotOrdersByHashesResponse, error) @@ -199,12 +203,12 @@ type ChainClient interface { FetchChainTraderSpotTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) FetchSpotMidPriceAndTOB(ctx context.Context, marketId string) (*exchangetypes.QuerySpotMidPriceAndTOBResponse, error) FetchDerivativeMidPriceAndTOB(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMidPriceAndTOBResponse, error) - FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdk.Dec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) + FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdkmath.LegacyDec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) FetchChainTraderDerivativeOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) FetchChainAccountAddressDerivativeOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressDerivativeOrdersResponse, error) FetchChainDerivativeOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QueryDerivativeOrdersByHashesResponse, error) FetchChainTraderDerivativeTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) - FetchChainDerivativeMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) + FetchChainDerivativeMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) FetchChainDerivativeMarket(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMarketResponse, error) FetchDerivativeMarketAddress(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMarketAddressResponse, error) FetchSubaccountTradeNonce(ctx context.Context, subaccountId string) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) @@ -234,6 +238,63 @@ type ChainClient interface { FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Context, marketId string) (*exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse, error) + // Tendermint module + FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) + FetchSyncing(ctx context.Context) (*cmtservice.GetSyncingResponse, error) + FetchLatestBlock(ctx context.Context) (*cmtservice.GetLatestBlockResponse, error) + FetchBlockByHeight(ctx context.Context, height int64) (*cmtservice.GetBlockByHeightResponse, error) + FetchLatestValidatorSet(ctx context.Context) (*cmtservice.GetLatestValidatorSetResponse, error) + FetchValidatorSetByHeight(ctx context.Context, height int64, pagination *query.PageRequest) (*cmtservice.GetValidatorSetByHeightResponse, error) + ABCIQuery(ctx context.Context, path string, data []byte, height int64, prove bool) (*cmtservice.ABCIQueryResponse, error) + + // IBC Transfer module + FetchDenomTrace(ctx context.Context, hash string) (*ibctransfertypes.QueryDenomTraceResponse, error) + FetchDenomTraces(ctx context.Context, pagination *query.PageRequest) (*ibctransfertypes.QueryDenomTracesResponse, error) + FetchDenomHash(ctx context.Context, trace string) (*ibctransfertypes.QueryDenomHashResponse, error) + FetchEscrowAddress(ctx context.Context, portId string, channelId string) (*ibctransfertypes.QueryEscrowAddressResponse, error) + FetchTotalEscrowForDenom(ctx context.Context, denom string) (*ibctransfertypes.QueryTotalEscrowForDenomResponse, error) + + // IBC Core Channel module + FetchIBCChannel(ctx context.Context, portId string, channelId string) (*ibcchanneltypes.QueryChannelResponse, error) + FetchIBCChannels(ctx context.Context, pagination *query.PageRequest) (*ibcchanneltypes.QueryChannelsResponse, error) + FetchIBCConnectionChannels(ctx context.Context, connection string, pagination *query.PageRequest) (*ibcchanneltypes.QueryConnectionChannelsResponse, error) + FetchIBCChannelClientState(ctx context.Context, portId string, channelId string) (*ibcchanneltypes.QueryChannelClientStateResponse, error) + FetchIBCChannelConsensusState(ctx context.Context, portId string, channelId string, revisionNumber uint64, revisionHeight uint64) (*ibcchanneltypes.QueryChannelConsensusStateResponse, error) + FetchIBCPacketCommitment(ctx context.Context, portId string, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketCommitmentResponse, error) + FetchIBCPacketCommitments(ctx context.Context, portId string, channelId string, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketCommitmentsResponse, error) + FetchIBCPacketReceipt(ctx context.Context, portId string, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketReceiptResponse, error) + FetchIBCPacketAcknowledgement(ctx context.Context, portId string, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketAcknowledgementResponse, error) + FetchIBCPacketAcknowledgements(ctx context.Context, portId string, channelId string, packetCommitmentSequences []uint64, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketAcknowledgementsResponse, error) + FetchIBCUnreceivedPackets(ctx context.Context, portId string, channelId string, packetCommitmentSequences []uint64) (*ibcchanneltypes.QueryUnreceivedPacketsResponse, error) + FetchIBCUnreceivedAcks(ctx context.Context, portId string, channelId string, packetAckSequences []uint64) (*ibcchanneltypes.QueryUnreceivedAcksResponse, error) + FetchIBCNextSequenceReceive(ctx context.Context, portId string, channelId string) (*ibcchanneltypes.QueryNextSequenceReceiveResponse, error) + + // IBC Core Chain module + FetchIBCClientState(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStateResponse, error) + FetchIBCClientStates(ctx context.Context, pagination *query.PageRequest) (*ibcclienttypes.QueryClientStatesResponse, error) + FetchIBCConsensusState(ctx context.Context, clientId string, revisionNumber uint64, revisionHeight uint64, latestHeight bool) (*ibcclienttypes.QueryConsensusStateResponse, error) + FetchIBCConsensusStates(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStatesResponse, error) + FetchIBCConsensusStateHeights(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStateHeightsResponse, error) + FetchIBCClientStatus(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStatusResponse, error) + FetchIBCClientParams(ctx context.Context) (*ibcclienttypes.QueryClientParamsResponse, error) + FetchIBCUpgradedClientState(ctx context.Context) (*ibcclienttypes.QueryUpgradedClientStateResponse, error) + FetchIBCUpgradedConsensusState(ctx context.Context) (*ibcclienttypes.QueryUpgradedConsensusStateResponse, error) + + // IBC Core Connection module + FetchIBCConnection(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionResponse, error) + FetchIBCConnections(ctx context.Context, pagination *query.PageRequest) (*ibcconnectiontypes.QueryConnectionsResponse, error) + FetchIBCClientConnections(ctx context.Context, clientId string) (*ibcconnectiontypes.QueryClientConnectionsResponse, error) + FetchIBCConnectionClientState(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionClientStateResponse, error) + FetchIBCConnectionConsensusState(ctx context.Context, connectionId string, revisionNumber uint64, revisionHeight uint64) (*ibcconnectiontypes.QueryConnectionConsensusStateResponse, error) + FetchIBCConnectionParams(ctx context.Context) (*ibcconnectiontypes.QueryConnectionParamsResponse, error) + + // Permissions module + FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) + FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) + FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) + FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) + FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) + Close() } @@ -260,16 +321,22 @@ type chainClient struct { sessionEnabled bool - txClient txtypes.ServiceClient - authQueryClient authtypes.QueryClient - exchangeQueryClient exchangetypes.QueryClient - bankQueryClient banktypes.QueryClient - authzQueryClient authztypes.QueryClient - wasmQueryClient wasmtypes.QueryClient - chainStreamClient chainstreamtypes.StreamClient - tokenfactoryQueryClient tokenfactorytypes.QueryClient - distributionQueryClient distributiontypes.QueryClient - subaccountToNonce map[ethcommon.Hash]uint32 + authQueryClient authtypes.QueryClient + authzQueryClient authztypes.QueryClient + bankQueryClient banktypes.QueryClient + chainStreamClient chainstreamtypes.StreamClient + distributionQueryClient distributiontypes.QueryClient + exchangeQueryClient exchangetypes.QueryClient + ibcChannelQueryClient ibcchanneltypes.QueryClient + ibcClientQueryClient ibcclienttypes.QueryClient + ibcConnectionQueryClient ibcconnectiontypes.QueryClient + ibcTransferQueryClient ibctransfertypes.QueryClient + permissionsQueryClient permissionstypes.QueryClient + tendermintQueryClient cmtservice.ServiceClient + tokenfactoryQueryClient tokenfactorytypes.QueryClient + txClient txtypes.ServiceClient + wasmQueryClient wasmtypes.QueryClient + subaccountToNonce map[ethcommon.Hash]uint32 closed int64 canSign bool @@ -284,8 +351,8 @@ func NewChainClient( // process options opts := common.DefaultClientOptions() - if network.ChainTlsCert != nil { - options = append(options, common.OptionTLSCert(network.ChainTlsCert)) + if network.ChainTLSCert != nil { + options = append(options, common.OptionTLSCert(network.ChainTLSCert)) } for _, opt := range options { if err := opt(opts); err != nil { @@ -298,7 +365,7 @@ func NewChainClient( var txFactory tx.Factory if opts.TxFactory == nil { txFactory = NewTxFactory(ctx) - if len(opts.GasPrices) > 0 { + if opts.GasPrices != "" { txFactory = txFactory.WithGasPrices(opts.GasPrices) } } else { @@ -355,16 +422,22 @@ func NewChainClient( sessionEnabled: stickySessionEnabled, - txClient: txtypes.NewServiceClient(conn), - authQueryClient: authtypes.NewQueryClient(conn), - exchangeQueryClient: exchangetypes.NewQueryClient(conn), - bankQueryClient: banktypes.NewQueryClient(conn), - authzQueryClient: authztypes.NewQueryClient(conn), - wasmQueryClient: wasmtypes.NewQueryClient(conn), - chainStreamClient: chainstreamtypes.NewStreamClient(chainStreamConn), - tokenfactoryQueryClient: tokenfactorytypes.NewQueryClient(conn), - distributionQueryClient: distributiontypes.NewQueryClient(conn), - subaccountToNonce: make(map[ethcommon.Hash]uint32), + authQueryClient: authtypes.NewQueryClient(conn), + authzQueryClient: authztypes.NewQueryClient(conn), + bankQueryClient: banktypes.NewQueryClient(conn), + chainStreamClient: chainstreamtypes.NewStreamClient(chainStreamConn), + distributionQueryClient: distributiontypes.NewQueryClient(conn), + exchangeQueryClient: exchangetypes.NewQueryClient(conn), + ibcChannelQueryClient: ibcchanneltypes.NewQueryClient(conn), + ibcClientQueryClient: ibcclienttypes.NewQueryClient(conn), + ibcConnectionQueryClient: ibcconnectiontypes.NewQueryClient(conn), + ibcTransferQueryClient: ibctransfertypes.NewQueryClient(conn), + permissionsQueryClient: permissionstypes.NewQueryClient(conn), + tendermintQueryClient: cmtservice.NewServiceClient(conn), + tokenfactoryQueryClient: tokenfactorytypes.NewQueryClient(conn), + txClient: txtypes.NewServiceClient(conn), + wasmQueryClient: wasmtypes.NewQueryClient(conn), + subaccountToNonce: make(map[ethcommon.Hash]uint32), } if cc.canSign { @@ -419,11 +492,11 @@ func (c *chainClient) syncTimeoutHeight() { } } -// prepareFactory ensures the account defined by ctx.GetFromAddress() exists and +// PrepareFactory ensures the account defined by ctx.GetFromAddress() exists and // if the account number and/or the account sequence number are zero (not set), // they will be queried for and set on the provided Factory. A new Factory with // the updated fields will be returned. -func (c *chainClient) prepareFactory(clientCtx client.Context, txf tx.Factory) (tx.Factory, error) { +func PrepareFactory(clientCtx client.Context, txf tx.Factory) (tx.Factory, error) { from := clientCtx.GetFromAddress() if err := txf.AccountRetriever().EnsureExists(clientCtx, from); err != nil { @@ -456,23 +529,7 @@ func (c *chainClient) getAccSeq() uint64 { return c.accSeq } -func (c *chainClient) requestCookie() metadata.MD { - var header metadata.MD - _, err := c.bankQueryClient.Params(context.Background(), &banktypes.QueryParamsRequest{}, grpc.Header(&header)) - if err != nil { - panic(err) - } - return header -} - -func (c *chainClient) getCookie(ctx context.Context) context.Context { - provider := common.NewMetadataProvider(c.requestCookie) - cookie, _ := c.network.ChainMetadata(provider) - md := metadata.Pairs("cookie", cookie) - return metadata.NewOutgoingContext(ctx, md) -} - -func (c *chainClient) GetAccNonce() (accNum uint64, accSeq uint64) { +func (c *chainClient) GetAccNonce() (accNum, accSeq uint64) { return c.accNum, c.accSeq } @@ -516,21 +573,25 @@ func (c *chainClient) Close() { } } -//Bank Module +// Bank Module func (c *chainClient) GetBankBalances(ctx context.Context, address string) (*banktypes.QueryAllBalancesResponse, error) { req := &banktypes.QueryAllBalancesRequest{ Address: address, } - return c.bankQueryClient.AllBalances(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.AllBalances, req) + + return res, err } -func (c *chainClient) GetBankBalance(ctx context.Context, address string, denom string) (*banktypes.QueryBalanceResponse, error) { +func (c *chainClient) GetBankBalance(ctx context.Context, address, denom string) (*banktypes.QueryBalanceResponse, error) { req := &banktypes.QueryBalanceRequest{ Address: address, Denom: denom, } - return c.bankQueryClient.Balance(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.Balance, req) + + return res, err } func (c *chainClient) GetBankSpendableBalances(ctx context.Context, address string, pagination *query.PageRequest) (*banktypes.QuerySpendableBalancesResponse, error) { @@ -538,35 +599,47 @@ func (c *chainClient) GetBankSpendableBalances(ctx context.Context, address stri Address: address, Pagination: pagination, } - return c.bankQueryClient.SpendableBalances(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.SpendableBalances, req) + + return res, err } -func (c *chainClient) GetBankSpendableBalancesByDenom(ctx context.Context, address string, denom string) (*banktypes.QuerySpendableBalanceByDenomResponse, error) { +func (c *chainClient) GetBankSpendableBalancesByDenom(ctx context.Context, address, denom string) (*banktypes.QuerySpendableBalanceByDenomResponse, error) { req := &banktypes.QuerySpendableBalanceByDenomRequest{ Address: address, Denom: denom, } - return c.bankQueryClient.SpendableBalanceByDenom(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.SpendableBalanceByDenom, req) + + return res, err } func (c *chainClient) GetBankTotalSupply(ctx context.Context, pagination *query.PageRequest) (*banktypes.QueryTotalSupplyResponse, error) { req := &banktypes.QueryTotalSupplyRequest{Pagination: pagination} - return c.bankQueryClient.TotalSupply(ctx, req) + resp, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.TotalSupply, req) + + return resp, err } func (c *chainClient) GetBankSupplyOf(ctx context.Context, denom string) (*banktypes.QuerySupplyOfResponse, error) { req := &banktypes.QuerySupplyOfRequest{Denom: denom} - return c.bankQueryClient.SupplyOf(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.SupplyOf, req) + + return res, err } func (c *chainClient) GetDenomMetadata(ctx context.Context, denom string) (*banktypes.QueryDenomMetadataResponse, error) { req := &banktypes.QueryDenomMetadataRequest{Denom: denom} - return c.bankQueryClient.DenomMetadata(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.DenomMetadata, req) + + return res, err } func (c *chainClient) GetDenomsMetadata(ctx context.Context, pagination *query.PageRequest) (*banktypes.QueryDenomsMetadataResponse, error) { req := &banktypes.QueryDenomsMetadataRequest{Pagination: pagination} - return c.bankQueryClient.DenomsMetadata(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.DenomsMetadata, req) + + return res, err } func (c *chainClient) GetDenomOwners(ctx context.Context, denom string, pagination *query.PageRequest) (*banktypes.QueryDenomOwnersResponse, error) { @@ -574,7 +647,9 @@ func (c *chainClient) GetDenomOwners(ctx context.Context, denom string, paginati Denom: denom, Pagination: pagination, } - return c.bankQueryClient.DenomOwners(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.DenomOwners, req) + + return res, err } func (c *chainClient) GetBankSendEnabled(ctx context.Context, denoms []string, pagination *query.PageRequest) (*banktypes.QuerySendEnabledResponse, error) { @@ -582,7 +657,9 @@ func (c *chainClient) GetBankSendEnabled(ctx context.Context, denoms []string, p Denoms: denoms, Pagination: pagination, } - return c.bankQueryClient.SendEnabled(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.bankQueryClient.SendEnabled, req) + + return res, err } // Auth Module @@ -591,7 +668,9 @@ func (c *chainClient) GetAccount(ctx context.Context, address string) (*authtype req := &authtypes.QueryAccountRequest{ Address: address, } - return c.authQueryClient.Account(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.authQueryClient.Account, req) + + return res, err } // SyncBroadcastMsg sends Tx to chain and waits until Tx is included in block. @@ -605,7 +684,7 @@ func (c *chainClient) SyncBroadcastMsg(msgs ...sdk.Msg) (*txtypes.BroadcastTxRes res, err := c.broadcastTx(c.ctx, c.txFactory, true, msgs...) if err != nil { - if strings.Contains(err.Error(), "account sequence mismatch") { + if c.opts.ShouldFixSequenceMismatch && strings.Contains(err.Error(), "account sequence mismatch") { c.syncNonce() sequence := c.getAccSeq() c.txFactory = c.txFactory.WithSequence(sequence) @@ -627,13 +706,15 @@ func (c *chainClient) GetFeeDiscountInfo(ctx context.Context, account string) (* req := &exchangetypes.QueryFeeDiscountAccountInfoRequest{ Account: account, } - return c.exchangeQueryClient.FeeDiscountAccountInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FeeDiscountAccountInfo, req) + + return res, err } func (c *chainClient) SimulateMsg(clientCtx client.Context, msgs ...sdk.Msg) (*txtypes.SimulateResponse, error) { c.txFactory = c.txFactory.WithSequence(c.accSeq) c.txFactory = c.txFactory.WithAccountNumber(c.accNum) - txf, err := c.prepareFactory(clientCtx, c.txFactory) + txf, err := PrepareFactory(clientCtx, c.txFactory) if err != nil { err = errors.Wrap(err, "failed to prepareFactory") return nil, err @@ -646,8 +727,9 @@ func (c *chainClient) SimulateMsg(clientCtx client.Context, msgs ...sdk.Msg) (*t } ctx := context.Background() - ctx = c.getCookie(ctx) - simRes, err := c.txClient.Simulate(ctx, &txtypes.SimulateRequest{TxBytes: simTxBytes}) + req := &txtypes.SimulateRequest{TxBytes: simTxBytes} + simRes, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.txClient.Simulate, req) + if err != nil { err = errors.Wrap(err, "failed to CalculateGas") return nil, err @@ -668,7 +750,7 @@ func (c *chainClient) AsyncBroadcastMsg(msgs ...sdk.Msg) (*txtypes.BroadcastTxRe c.txFactory = c.txFactory.WithAccountNumber(c.accNum) res, err := c.broadcastTx(c.ctx, c.txFactory, false, msgs...) if err != nil { - if strings.Contains(err.Error(), "account sequence mismatch") { + if c.opts.ShouldFixSequenceMismatch && strings.Contains(err.Error(), "account sequence mismatch") { c.syncNonce() sequence := c.getAccSeq() c.txFactory = c.txFactory.WithSequence(sequence) @@ -688,16 +770,21 @@ func (c *chainClient) AsyncBroadcastMsg(msgs ...sdk.Msg) (*txtypes.BroadcastTxRe func (c *chainClient) BuildSignedTx(clientCtx client.Context, accNum, accSeq, initialGas uint64, msgs ...sdk.Msg) ([]byte, error) { txf := NewTxFactory(clientCtx).WithSequence(accSeq).WithAccountNumber(accNum).WithGas(initialGas) + return c.buildSignedTx(clientCtx, txf, msgs...) +} +func (c *chainClient) buildSignedTx(clientCtx client.Context, txf tx.Factory, msgs ...sdk.Msg) ([]byte, error) { + ctx := context.Background() if clientCtx.Simulate { simTxBytes, err := txf.BuildSimTx(msgs...) if err != nil { err = errors.Wrap(err, "failed to build sim tx bytes") return nil, err } - ctx := c.getCookie(context.Background()) - var header metadata.MD - simRes, err := c.txClient.Simulate(ctx, &txtypes.SimulateRequest{TxBytes: simTxBytes}, grpc.Header(&header)) + + req := &txtypes.SimulateRequest{TxBytes: simTxBytes} + simRes, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.txClient.Simulate, req) + if err != nil { err = errors.Wrap(err, "failed to CalculateGas") return nil, err @@ -709,7 +796,7 @@ func (c *chainClient) BuildSignedTx(clientCtx client.Context, accNum, accSeq, in c.gasWanted = adjustedGas } - txf, err := c.prepareFactory(clientCtx, txf) + txf, err := PrepareFactory(clientCtx, txf) if err != nil { return nil, errors.Wrap(err, "failed to prepareFactory") } @@ -721,7 +808,7 @@ func (c *chainClient) BuildSignedTx(clientCtx client.Context, accNum, accSeq, in } txn.SetFeeGranter(clientCtx.GetFeeGranterAddress()) - err = tx.Sign(txf, clientCtx.GetFromName(), txn, true) + err = tx.Sign(ctx, txf, clientCtx.GetFromName(), txn, true) if err != nil { err = errors.Wrap(err, "failed to Sign Tx") return nil, err @@ -737,8 +824,8 @@ func (c *chainClient) SyncBroadcastSignedTx(txBytes []byte) (*txtypes.BroadcastT } ctx := context.Background() - ctx = c.getCookie(ctx) - res, err := c.txClient.BroadcastTx(ctx, &req) + + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.txClient.BroadcastTx, &req) if err != nil { return res, err } @@ -758,7 +845,7 @@ func (c *chainClient) SyncBroadcastSignedTx(txBytes []byte) (*txtypes.BroadcastT case <-t.C: resultTx, err := c.ctx.Client.Tx(awaitCtx, txHash, false) if err != nil { - if errRes := client.CheckTendermintError(err, txBytes); errRes != nil { + if errRes := client.CheckCometError(err, txBytes); errRes != nil { return &txtypes.BroadcastTxResponse{TxResponse: errRes}, err } @@ -784,9 +871,7 @@ func (c *chainClient) AsyncBroadcastSignedTx(txBytes []byte) (*txtypes.Broadcast } ctx := context.Background() - // use our own client to broadcast tx - ctx = c.getCookie(ctx) - res, err := c.txClient.BroadcastTx(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.txClient.BroadcastTx, &req) if err != nil { return nil, err } @@ -800,48 +885,9 @@ func (c *chainClient) broadcastTx( await bool, msgs ...sdk.Msg, ) (*txtypes.BroadcastTxResponse, error) { - txf, err := c.prepareFactory(clientCtx, txf) - if err != nil { - err = errors.Wrap(err, "failed to prepareFactory") - return nil, err - } - ctx := context.Background() - if clientCtx.Simulate { - simTxBytes, err := txf.BuildSimTx(msgs...) - if err != nil { - err = errors.Wrap(err, "failed to build sim tx bytes") - return nil, err - } - ctx := c.getCookie(ctx) - simRes, err := c.txClient.Simulate(ctx, &txtypes.SimulateRequest{TxBytes: simTxBytes}) - if err != nil { - err = errors.Wrap(err, "failed to CalculateGas") - return nil, err - } - - adjustedGas := uint64(txf.GasAdjustment() * float64(simRes.GasInfo.GasUsed)) - txf = txf.WithGas(adjustedGas) - - c.gasWanted = adjustedGas - } - - txn, err := txf.BuildUnsignedTx(msgs...) - - if err != nil { - err = errors.Wrap(err, "failed to BuildUnsignedTx") - return nil, err - } - - txn.SetFeeGranter(clientCtx.GetFeeGranterAddress()) - err = tx.Sign(txf, clientCtx.GetFromName(), txn, true) + txBytes, err := c.buildSignedTx(clientCtx, txf, msgs...) if err != nil { - err = errors.Wrap(err, "failed to Sign Tx") - return nil, err - } - - txBytes, err := clientCtx.TxConfig.TxEncoder()(txn.GetTx()) - if err != nil { - err = errors.Wrap(err, "failed TxEncoder to encode Tx") + err = errors.Wrap(err, "failed to build signed Tx") return nil, err } @@ -849,9 +895,8 @@ func (c *chainClient) broadcastTx( TxBytes: txBytes, Mode: txtypes.BroadcastMode_BROADCAST_MODE_SYNC, } - // use our own client to broadcast tx - ctx = c.getCookie(ctx) - res, err := c.txClient.BroadcastTx(ctx, &req) + + res, err := common.ExecuteCall(context.Background(), c.network.ChainCookieAssistant, c.txClient.BroadcastTx, &req) if !await || err != nil { return res, err } @@ -871,7 +916,7 @@ func (c *chainClient) broadcastTx( case <-t.C: resultTx, err := clientCtx.Client.Tx(awaitCtx, txHash, false) if err != nil { - if errRes := client.CheckTendermintError(err, txBytes); errRes != nil { + if errRes := client.CheckCometError(err, txBytes); errRes != nil { return &txtypes.BroadcastTxResponse{TxResponse: errRes}, err } @@ -925,7 +970,7 @@ func (c *chainClient) runBatchBroadcast() { log.Debugln("broadcastTx with nonce", sequence) res, err := c.broadcastTx(c.ctx, c.txFactory, true, toSubmit...) if err != nil { - if strings.Contains(err.Error(), "account sequence mismatch") { + if c.opts.ShouldFixSequenceMismatch && strings.Contains(err.Error(), "account sequence mismatch") { c.syncNonce() sequence := c.getAccSeq() c.txFactory = c.txFactory.WithSequence(sequence) @@ -1001,25 +1046,27 @@ func (c *chainClient) GetGasFee() (string, error) { return c.gasFee, err } -func (c *chainClient) DefaultSubaccount(acc sdk.AccAddress) eth.Hash { +func (c *chainClient) DefaultSubaccount(acc sdk.AccAddress) ethcommon.Hash { return c.Subaccount(acc, 0) } -func (c *chainClient) Subaccount(account sdk.AccAddress, index int) eth.Hash { - ethAddress := eth.BytesToAddress(account.Bytes()) +func (c *chainClient) Subaccount(account sdk.AccAddress, index int) ethcommon.Hash { + ethAddress := ethcommon.BytesToAddress(account.Bytes()) ethLowerAddress := strings.ToLower(ethAddress.String()) subaccountId := fmt.Sprintf("%s%024x", ethLowerAddress, index) - return eth.HexToHash(subaccountId) + return ethcommon.HexToHash(subaccountId) } -func (c *chainClient) GetSubAccountNonce(ctx context.Context, subaccountId eth.Hash) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) { +func (c *chainClient) GetSubAccountNonce(ctx context.Context, subaccountId ethcommon.Hash) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) { req := &exchangetypes.QuerySubaccountTradeNonceRequest{SubaccountId: subaccountId.String()} - return c.exchangeQueryClient.SubaccountTradeNonce(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountTradeNonce, req) + + return res, err } // Deprecated: Use CreateSpotOrder instead -func (c *chainClient) SpotOrder(defaultSubaccountID eth.Hash, network common.Network, d *SpotOrderData) *exchangetypes.SpotOrder { +func (c *chainClient) SpotOrder(defaultSubaccountID ethcommon.Hash, network common.Network, d *SpotOrderData) *exchangetypes.SpotOrder { assistant, err := NewMarketsAssistant(network.Name) if err != nil { panic(err) @@ -1028,7 +1075,7 @@ func (c *chainClient) SpotOrder(defaultSubaccountID eth.Hash, network common.Net return c.CreateSpotOrder(defaultSubaccountID, d, assistant) } -func (c *chainClient) CreateSpotOrder(defaultSubaccountID eth.Hash, d *SpotOrderData, marketsAssistant MarketsAssistant) *exchangetypes.SpotOrder { +func (c *chainClient) CreateSpotOrder(defaultSubaccountID ethcommon.Hash, d *SpotOrderData, marketsAssistant MarketsAssistant) *exchangetypes.SpotOrder { market, isPresent := marketsAssistant.AllSpotMarkets()[d.MarketId] if !isPresent { @@ -1052,7 +1099,7 @@ func (c *chainClient) CreateSpotOrder(defaultSubaccountID eth.Hash, d *SpotOrder } // Deprecated: Use CreateDerivativeOrder instead -func (c *chainClient) DerivativeOrder(defaultSubaccountID eth.Hash, network common.Network, d *DerivativeOrderData) *exchangetypes.DerivativeOrder { +func (c *chainClient) DerivativeOrder(defaultSubaccountID ethcommon.Hash, network common.Network, d *DerivativeOrderData) *exchangetypes.DerivativeOrder { assistant, err := NewMarketsAssistant(network.Name) if err != nil { @@ -1062,7 +1109,7 @@ func (c *chainClient) DerivativeOrder(defaultSubaccountID eth.Hash, network comm return c.CreateDerivativeOrder(defaultSubaccountID, d, assistant) } -func (c *chainClient) CreateDerivativeOrder(defaultSubaccountID eth.Hash, d *DerivativeOrderData, marketAssistant MarketsAssistant) *exchangetypes.DerivativeOrder { +func (c *chainClient) CreateDerivativeOrder(defaultSubaccountID ethcommon.Hash, d *DerivativeOrderData, marketAssistant MarketsAssistant) *exchangetypes.DerivativeOrder { market, isPresent := marketAssistant.AllDerivativeMarkets()[d.MarketId] if !isPresent { panic(errors.Errorf("Invalid derivative market id for %s network (%s)", c.network.Name, d.MarketId)) @@ -1070,7 +1117,7 @@ func (c *chainClient) CreateDerivativeOrder(defaultSubaccountID eth.Hash, d *Der orderSize := market.QuantityToChainFormat(d.Quantity) orderPrice := market.PriceToChainFormat(d.Price) - orderMargin := sdk.MustNewDecFromStr("0") + orderMargin := sdkmath.LegacyMustNewDecFromStr("0") if !d.IsReduceOnly { orderMargin = market.CalculateMarginInChainFormat(d.Quantity, d.Price, d.Leverage) @@ -1090,7 +1137,7 @@ func (c *chainClient) CreateDerivativeOrder(defaultSubaccountID eth.Hash, d *Der } } -func (c *chainClient) OrderCancel(defaultSubaccountID eth.Hash, d *OrderCancelData) *exchangetypes.OrderData { +func (c *chainClient) OrderCancel(defaultSubaccountID ethcommon.Hash, d *OrderCancelData) *exchangetypes.OrderData { return &exchangetypes.OrderData{ MarketId: d.MarketId, OrderHash: d.OrderHash, @@ -1100,10 +1147,12 @@ func (c *chainClient) OrderCancel(defaultSubaccountID eth.Hash, d *OrderCancelDa } func (c *chainClient) GetAuthzGrants(ctx context.Context, req authztypes.QueryGrantsRequest) (*authztypes.QueryGrantsResponse, error) { - return c.authzQueryClient.Grants(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.authzQueryClient.Grants, &req) + + return res, err } -func (c *chainClient) BuildGenericAuthz(granter string, grantee string, msgtype string, expireIn time.Time) *authztypes.MsgGrant { +func (c *chainClient) BuildGenericAuthz(granter, grantee, msgtype string, expireIn time.Time) *authztypes.MsgGrant { authz := authztypes.NewGenericAuthorization(msgtype) authzAny := codectypes.UnsafePackAny(authz) return &authztypes.MsgGrant{ @@ -1134,7 +1183,7 @@ var ( BatchUpdateOrdersAuthz = ExchangeAuthz("/" + proto.MessageName(&exchangetypes.BatchUpdateOrdersAuthz{})) ) -func (c *chainClient) BuildExchangeAuthz(granter string, grantee string, authzType ExchangeAuthz, subaccountId string, markets []string, expireIn time.Time) *authztypes.MsgGrant { +func (c *chainClient) BuildExchangeAuthz(granter, grantee string, authzType ExchangeAuthz, subaccountId string, markets []string, expireIn time.Time) *authztypes.MsgGrant { var typedAuthzAny codectypes.Any var typedAuthzBytes []byte switch authzType { @@ -1309,7 +1358,7 @@ func (c *chainClient) StreamEventOrderFailWithWebsocket(sender string, websocket } } -func (c *chainClient) StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIds []string, orderbookCh chan exchangetypes.Orderbook) { +func (c *chainClient) StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIDs []string, orderbookCh chan exchangetypes.Orderbook) { var cometbftClient *rpchttp.HTTP var err error @@ -1331,11 +1380,11 @@ func (c *chainClient) StreamOrderbookUpdateEvents(orderbookType OrderbookType, m } }() - c.StreamOrderbookUpdateEventsWithWebsocket(orderbookType, marketIds, cometbftClient, orderbookCh) + c.StreamOrderbookUpdateEventsWithWebsocket(orderbookType, marketIDs, cometbftClient, orderbookCh) } -func (c *chainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIds []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) { +func (c *chainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIDs []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) { filter := fmt.Sprintf("tm.event='NewBlock' AND %s EXISTS", orderbookType) eventCh, err := websocket.Subscribe(context.Background(), "OrderbookUpdate", filter, 10000) if err != nil { @@ -1343,9 +1392,9 @@ func (c *chainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType Ord } // turn array into map for convenient lookup - marketIdsMap := map[string]bool{} - for _, id := range marketIds { - marketIdsMap[id] = true + marketIDsMap := map[string]bool{} + for _, id := range marketIDs { + marketIDsMap[id] = true } filteredOrderbookUpdateCh := make(chan exchangetypes.Orderbook, 10000) @@ -1363,7 +1412,7 @@ func (c *chainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType Ord for _, ob := range allOrderbookUpdates { id := ethcommon.BytesToHash(ob.MarketId).String() - if marketIdsMap[id] { + if marketIDsMap[id] { filteredOrderbookUpdateCh <- ob } } @@ -1386,14 +1435,17 @@ func (c *chainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType Ord } func (c *chainClient) GetTx(ctx context.Context, txHash string) (*txtypes.GetTxResponse, error) { - return c.txClient.GetTx(ctx, &txtypes.GetTxRequest{ + req := &txtypes.GetTxRequest{ Hash: txHash, - }) + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.txClient.GetTx, req) + + return res, err } func (c *chainClient) ChainStream(ctx context.Context, req chainstreamtypes.StreamRequest) (chainstreamtypes.Stream_StreamClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.chainStreamClient.Stream(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ChainCookieAssistant, c.chainStreamClient.Stream, &req) + if err != nil { fmt.Println(err) return nil, err @@ -1408,7 +1460,9 @@ func (c *chainClient) FetchContractInfo(ctx context.Context, address string) (*w req := &wasmtypes.QueryContractInfoRequest{ Address: address, } - return c.wasmQueryClient.ContractInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.ContractInfo, req) + + return res, err } func (c *chainClient) FetchContractHistory(ctx context.Context, address string, pagination *query.PageRequest) (*wasmtypes.QueryContractHistoryResponse, error) { @@ -1416,7 +1470,9 @@ func (c *chainClient) FetchContractHistory(ctx context.Context, address string, Address: address, Pagination: pagination, } - return c.wasmQueryClient.ContractHistory(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.ContractHistory, req) + + return res, err } func (c *chainClient) FetchContractsByCode(ctx context.Context, codeId uint64, pagination *query.PageRequest) (*wasmtypes.QueryContractsByCodeResponse, error) { @@ -1424,7 +1480,9 @@ func (c *chainClient) FetchContractsByCode(ctx context.Context, codeId uint64, p CodeId: codeId, Pagination: pagination, } - return c.wasmQueryClient.ContractsByCode(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.ContractsByCode, req) + + return res, err } func (c *chainClient) FetchAllContractsState(ctx context.Context, address string, pagination *query.PageRequest) (*wasmtypes.QueryAllContractStateResponse, error) { @@ -1432,7 +1490,9 @@ func (c *chainClient) FetchAllContractsState(ctx context.Context, address string Address: address, Pagination: pagination, } - return c.wasmQueryClient.AllContractState(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.AllContractState, req) + + return res, err } func (c *chainClient) RawContractState( @@ -1440,13 +1500,13 @@ func (c *chainClient) RawContractState( contractAddress string, queryData []byte, ) (*wasmtypes.QueryRawContractStateResponse, error) { - return c.wasmQueryClient.RawContractState( - ctx, - &wasmtypes.QueryRawContractStateRequest{ - Address: contractAddress, - QueryData: queryData, - }, - ) + req := &wasmtypes.QueryRawContractStateRequest{ + Address: contractAddress, + QueryData: queryData, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.RawContractState, req) + + return res, err } func (c *chainClient) SmartContractState( @@ -1454,34 +1514,40 @@ func (c *chainClient) SmartContractState( contractAddress string, queryData []byte, ) (*wasmtypes.QuerySmartContractStateResponse, error) { - return c.wasmQueryClient.SmartContractState( - ctx, - &wasmtypes.QuerySmartContractStateRequest{ - Address: contractAddress, - QueryData: queryData, - }, - ) + req := &wasmtypes.QuerySmartContractStateRequest{ + Address: contractAddress, + QueryData: queryData, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.SmartContractState, req) + + return res, err } func (c *chainClient) FetchCode(ctx context.Context, codeId uint64) (*wasmtypes.QueryCodeResponse, error) { req := &wasmtypes.QueryCodeRequest{ CodeId: codeId, } - return c.wasmQueryClient.Code(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.Code, req) + + return res, err } func (c *chainClient) FetchCodes(ctx context.Context, pagination *query.PageRequest) (*wasmtypes.QueryCodesResponse, error) { req := &wasmtypes.QueryCodesRequest{ Pagination: pagination, } - return c.wasmQueryClient.Codes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.Codes, req) + + return res, err } func (c *chainClient) FetchPinnedCodes(ctx context.Context, pagination *query.PageRequest) (*wasmtypes.QueryPinnedCodesResponse, error) { req := &wasmtypes.QueryPinnedCodesRequest{ Pagination: pagination, } - return c.wasmQueryClient.PinnedCodes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.PinnedCodes, req) + + return res, err } func (c *chainClient) FetchContractsByCreator(ctx context.Context, creator string, pagination *query.PageRequest) (*wasmtypes.QueryContractsByCreatorResponse, error) { @@ -1489,12 +1555,14 @@ func (c *chainClient) FetchContractsByCreator(ctx context.Context, creator strin CreatorAddress: creator, Pagination: pagination, } - return c.wasmQueryClient.ContractsByCreator(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.wasmQueryClient.ContractsByCreator, req) + + return res, err } // Tokenfactory module -func (c *chainClient) FetchDenomAuthorityMetadata(ctx context.Context, creator string, subDenom string) (*tokenfactorytypes.QueryDenomAuthorityMetadataResponse, error) { +func (c *chainClient) FetchDenomAuthorityMetadata(ctx context.Context, creator, subDenom string) (*tokenfactorytypes.QueryDenomAuthorityMetadataResponse, error) { req := &tokenfactorytypes.QueryDenomAuthorityMetadataRequest{ Creator: creator, } @@ -1503,7 +1571,9 @@ func (c *chainClient) FetchDenomAuthorityMetadata(ctx context.Context, creator s req.SubDenom = subDenom } - return c.tokenfactoryQueryClient.DenomAuthorityMetadata(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tokenfactoryQueryClient.DenomAuthorityMetadata, req) + + return res, err } func (c *chainClient) FetchDenomsFromCreator(ctx context.Context, creator string) (*tokenfactorytypes.QueryDenomsFromCreatorResponse, error) { @@ -1511,13 +1581,17 @@ func (c *chainClient) FetchDenomsFromCreator(ctx context.Context, creator string Creator: creator, } - return c.tokenfactoryQueryClient.DenomsFromCreator(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tokenfactoryQueryClient.DenomsFromCreator, req) + + return res, err } func (c *chainClient) FetchTokenfactoryModuleState(ctx context.Context) (*tokenfactorytypes.QueryModuleStateResponse, error) { req := &tokenfactorytypes.QueryModuleStateRequest{} - return c.tokenfactoryQueryClient.TokenfactoryModuleState(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tokenfactoryQueryClient.TokenfactoryModuleState, req) + + return res, err } type DerivativeOrderData struct { @@ -1551,65 +1625,83 @@ func (c *chainClient) FetchValidatorDistributionInfo(ctx context.Context, valida req := &distributiontypes.QueryValidatorDistributionInfoRequest{ ValidatorAddress: validatorAddress, } - return c.distributionQueryClient.ValidatorDistributionInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.ValidatorDistributionInfo, req) + + return res, err } func (c *chainClient) FetchValidatorOutstandingRewards(ctx context.Context, validatorAddress string) (*distributiontypes.QueryValidatorOutstandingRewardsResponse, error) { req := &distributiontypes.QueryValidatorOutstandingRewardsRequest{ ValidatorAddress: validatorAddress, } - return c.distributionQueryClient.ValidatorOutstandingRewards(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.ValidatorOutstandingRewards, req) + + return res, err } func (c *chainClient) FetchValidatorCommission(ctx context.Context, validatorAddress string) (*distributiontypes.QueryValidatorCommissionResponse, error) { req := &distributiontypes.QueryValidatorCommissionRequest{ ValidatorAddress: validatorAddress, } - return c.distributionQueryClient.ValidatorCommission(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.ValidatorCommission, req) + + return res, err } -func (c *chainClient) FetchValidatorSlashes(ctx context.Context, validatorAddress string, startingHeight uint64, endingHeight uint64, pagination *query.PageRequest) (*distributiontypes.QueryValidatorSlashesResponse, error) { +func (c *chainClient) FetchValidatorSlashes(ctx context.Context, validatorAddress string, startingHeight, endingHeight uint64, pagination *query.PageRequest) (*distributiontypes.QueryValidatorSlashesResponse, error) { req := &distributiontypes.QueryValidatorSlashesRequest{ ValidatorAddress: validatorAddress, StartingHeight: startingHeight, EndingHeight: endingHeight, Pagination: pagination, } - return c.distributionQueryClient.ValidatorSlashes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.ValidatorSlashes, req) + + return res, err } -func (c *chainClient) FetchDelegationRewards(ctx context.Context, delegatorAddress string, validatorAddress string) (*distributiontypes.QueryDelegationRewardsResponse, error) { +func (c *chainClient) FetchDelegationRewards(ctx context.Context, delegatorAddress, validatorAddress string) (*distributiontypes.QueryDelegationRewardsResponse, error) { req := &distributiontypes.QueryDelegationRewardsRequest{ DelegatorAddress: delegatorAddress, ValidatorAddress: validatorAddress, } - return c.distributionQueryClient.DelegationRewards(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.DelegationRewards, req) + + return res, err } func (c *chainClient) FetchDelegationTotalRewards(ctx context.Context, delegatorAddress string) (*distributiontypes.QueryDelegationTotalRewardsResponse, error) { req := &distributiontypes.QueryDelegationTotalRewardsRequest{ DelegatorAddress: delegatorAddress, } - return c.distributionQueryClient.DelegationTotalRewards(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.DelegationTotalRewards, req) + + return res, err } func (c *chainClient) FetchDelegatorValidators(ctx context.Context, delegatorAddress string) (*distributiontypes.QueryDelegatorValidatorsResponse, error) { req := &distributiontypes.QueryDelegatorValidatorsRequest{ DelegatorAddress: delegatorAddress, } - return c.distributionQueryClient.DelegatorValidators(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.DelegatorValidators, req) + + return res, err } func (c *chainClient) FetchDelegatorWithdrawAddress(ctx context.Context, delegatorAddress string) (*distributiontypes.QueryDelegatorWithdrawAddressResponse, error) { req := &distributiontypes.QueryDelegatorWithdrawAddressRequest{ DelegatorAddress: delegatorAddress, } - return c.distributionQueryClient.DelegatorWithdrawAddress(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.DelegatorWithdrawAddress, req) + + return res, err } func (c *chainClient) FetchCommunityPool(ctx context.Context) (*distributiontypes.QueryCommunityPoolResponse, error) { req := &distributiontypes.QueryCommunityPoolRequest{} - return c.distributionQueryClient.CommunityPool(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.distributionQueryClient.CommunityPool, req) + + return res, err } // Chain exchange module @@ -1617,91 +1709,115 @@ func (c *chainClient) FetchSubaccountDeposits(ctx context.Context, subaccountId req := &exchangetypes.QuerySubaccountDepositsRequest{ SubaccountId: subaccountId, } - return c.exchangeQueryClient.SubaccountDeposits(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountDeposits, req) + + return res, err } -func (c *chainClient) FetchSubaccountDeposit(ctx context.Context, subaccountId string, denom string) (*exchangetypes.QuerySubaccountDepositResponse, error) { +func (c *chainClient) FetchSubaccountDeposit(ctx context.Context, subaccountId, denom string) (*exchangetypes.QuerySubaccountDepositResponse, error) { req := &exchangetypes.QuerySubaccountDepositRequest{ SubaccountId: subaccountId, Denom: denom, } - return c.exchangeQueryClient.SubaccountDeposit(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountDeposit, req) + + return res, err } func (c *chainClient) FetchExchangeBalances(ctx context.Context) (*exchangetypes.QueryExchangeBalancesResponse, error) { req := &exchangetypes.QueryExchangeBalancesRequest{} - return c.exchangeQueryClient.ExchangeBalances(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.ExchangeBalances, req) + + return res, err } func (c *chainClient) FetchAggregateVolume(ctx context.Context, account string) (*exchangetypes.QueryAggregateVolumeResponse, error) { req := &exchangetypes.QueryAggregateVolumeRequest{ Account: account, } - return c.exchangeQueryClient.AggregateVolume(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AggregateVolume, req) + + return res, err } -func (c *chainClient) FetchAggregateVolumes(ctx context.Context, accounts []string, marketIds []string) (*exchangetypes.QueryAggregateVolumesResponse, error) { +func (c *chainClient) FetchAggregateVolumes(ctx context.Context, accounts, marketIDs []string) (*exchangetypes.QueryAggregateVolumesResponse, error) { req := &exchangetypes.QueryAggregateVolumesRequest{ Accounts: accounts, - MarketIds: marketIds, + MarketIds: marketIDs, } - return c.exchangeQueryClient.AggregateVolumes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AggregateVolumes, req) + + return res, err } func (c *chainClient) FetchAggregateMarketVolume(ctx context.Context, marketId string) (*exchangetypes.QueryAggregateMarketVolumeResponse, error) { req := &exchangetypes.QueryAggregateMarketVolumeRequest{ MarketId: marketId, } - return c.exchangeQueryClient.AggregateMarketVolume(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AggregateMarketVolume, req) + + return res, err } -func (c *chainClient) FetchAggregateMarketVolumes(ctx context.Context, marketIds []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) { +func (c *chainClient) FetchAggregateMarketVolumes(ctx context.Context, marketIDs []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) { req := &exchangetypes.QueryAggregateMarketVolumesRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } - return c.exchangeQueryClient.AggregateMarketVolumes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AggregateMarketVolumes, req) + + return res, err } func (c *chainClient) FetchDenomDecimal(ctx context.Context, denom string) (*exchangetypes.QueryDenomDecimalResponse, error) { req := &exchangetypes.QueryDenomDecimalRequest{ Denom: denom, } - return c.exchangeQueryClient.DenomDecimal(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DenomDecimal, req) + + return res, err } func (c *chainClient) FetchDenomDecimals(ctx context.Context, denoms []string) (*exchangetypes.QueryDenomDecimalsResponse, error) { req := &exchangetypes.QueryDenomDecimalsRequest{ Denoms: denoms, } - return c.exchangeQueryClient.DenomDecimals(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DenomDecimals, req) + + return res, err } -func (c *chainClient) FetchChainSpotMarkets(ctx context.Context, status string, marketIds []string) (*exchangetypes.QuerySpotMarketsResponse, error) { +func (c *chainClient) FetchChainSpotMarkets(ctx context.Context, status string, marketIDs []string) (*exchangetypes.QuerySpotMarketsResponse, error) { req := &exchangetypes.QuerySpotMarketsRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } if status != "" { req.Status = status } - return c.exchangeQueryClient.SpotMarkets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SpotMarkets, req) + + return res, err } func (c *chainClient) FetchChainSpotMarket(ctx context.Context, marketId string) (*exchangetypes.QuerySpotMarketResponse, error) { req := &exchangetypes.QuerySpotMarketRequest{ MarketId: marketId, } - return c.exchangeQueryClient.SpotMarket(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SpotMarket, req) + + return res, err } -func (c *chainClient) FetchChainFullSpotMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) { +func (c *chainClient) FetchChainFullSpotMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) { req := &exchangetypes.QueryFullSpotMarketsRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, WithMidPriceAndTob: withMidPriceAndTob, } if status != "" { req.Status = status } - return c.exchangeQueryClient.FullSpotMarkets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FullSpotMarkets, req) + + return res, err } func (c *chainClient) FetchChainFullSpotMarket(ctx context.Context, marketId string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketResponse, error) { @@ -1709,10 +1825,12 @@ func (c *chainClient) FetchChainFullSpotMarket(ctx context.Context, marketId str MarketId: marketId, WithMidPriceAndTob: withMidPriceAndTob, } - return c.exchangeQueryClient.FullSpotMarket(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FullSpotMarket, req) + + return res, err } -func (c *chainClient) FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional sdk.Dec, limitCumulativeQuantity sdk.Dec) (*exchangetypes.QuerySpotOrderbookResponse, error) { +func (c *chainClient) FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional, limitCumulativeQuantity sdkmath.LegacyDec) (*exchangetypes.QuerySpotOrderbookResponse, error) { req := &exchangetypes.QuerySpotOrderbookRequest{ MarketId: marketId, Limit: limit, @@ -1720,271 +1838,347 @@ func (c *chainClient) FetchChainSpotOrderbook(ctx context.Context, marketId stri LimitCumulativeNotional: &limitCumulativeNotional, LimitCumulativeQuantity: &limitCumulativeQuantity, } - return c.exchangeQueryClient.SpotOrderbook(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SpotOrderbook, req) + + return res, err } -func (c *chainClient) FetchChainTraderSpotOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { +func (c *chainClient) FetchChainTraderSpotOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { req := &exchangetypes.QueryTraderSpotOrdersRequest{ MarketId: marketId, SubaccountId: subaccountId, } - return c.exchangeQueryClient.TraderSpotOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TraderSpotOrders, req) + + return res, err } -func (c *chainClient) FetchChainAccountAddressSpotOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressSpotOrdersResponse, error) { +func (c *chainClient) FetchChainAccountAddressSpotOrders(ctx context.Context, marketId, address string) (*exchangetypes.QueryAccountAddressSpotOrdersResponse, error) { req := &exchangetypes.QueryAccountAddressSpotOrdersRequest{ MarketId: marketId, AccountAddress: address, } - return c.exchangeQueryClient.AccountAddressSpotOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AccountAddressSpotOrders, req) + + return res, err } -func (c *chainClient) FetchChainSpotOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QuerySpotOrdersByHashesResponse, error) { +func (c *chainClient) FetchChainSpotOrdersByHashes(ctx context.Context, marketId, subaccountId string, orderHashes []string) (*exchangetypes.QuerySpotOrdersByHashesResponse, error) { req := &exchangetypes.QuerySpotOrdersByHashesRequest{ MarketId: marketId, SubaccountId: subaccountId, OrderHashes: orderHashes, } - return c.exchangeQueryClient.SpotOrdersByHashes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SpotOrdersByHashes, req) + + return res, err } -func (c *chainClient) FetchChainSubaccountOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountOrdersResponse, error) { +func (c *chainClient) FetchChainSubaccountOrders(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountOrdersResponse, error) { req := &exchangetypes.QuerySubaccountOrdersRequest{ SubaccountId: subaccountId, MarketId: marketId, } - return c.exchangeQueryClient.SubaccountOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountOrders, req) + + return res, err } -func (c *chainClient) FetchChainTraderSpotTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { +func (c *chainClient) FetchChainTraderSpotTransientOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { req := &exchangetypes.QueryTraderSpotOrdersRequest{ MarketId: marketId, SubaccountId: subaccountId, } - return c.exchangeQueryClient.TraderSpotTransientOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TraderSpotTransientOrders, req) + + return res, err } func (c *chainClient) FetchSpotMidPriceAndTOB(ctx context.Context, marketId string) (*exchangetypes.QuerySpotMidPriceAndTOBResponse, error) { req := &exchangetypes.QuerySpotMidPriceAndTOBRequest{ MarketId: marketId, } - return c.exchangeQueryClient.SpotMidPriceAndTOB(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SpotMidPriceAndTOB, req) + + return res, err } func (c *chainClient) FetchDerivativeMidPriceAndTOB(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMidPriceAndTOBResponse, error) { req := &exchangetypes.QueryDerivativeMidPriceAndTOBRequest{ MarketId: marketId, } - return c.exchangeQueryClient.DerivativeMidPriceAndTOB(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeMidPriceAndTOB, req) + + return res, err } -func (c *chainClient) FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdk.Dec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) { +func (c *chainClient) FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdkmath.LegacyDec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) { req := &exchangetypes.QueryDerivativeOrderbookRequest{ MarketId: marketId, Limit: limit, LimitCumulativeNotional: &limitCumulativeNotional, } - return c.exchangeQueryClient.DerivativeOrderbook(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeOrderbook, req) + + return res, err } -func (c *chainClient) FetchChainTraderDerivativeOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { +func (c *chainClient) FetchChainTraderDerivativeOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { req := &exchangetypes.QueryTraderDerivativeOrdersRequest{ MarketId: marketId, SubaccountId: subaccountId, } - return c.exchangeQueryClient.TraderDerivativeOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TraderDerivativeOrders, req) + + return res, err } -func (c *chainClient) FetchChainAccountAddressDerivativeOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressDerivativeOrdersResponse, error) { +func (c *chainClient) FetchChainAccountAddressDerivativeOrders(ctx context.Context, marketId, address string) (*exchangetypes.QueryAccountAddressDerivativeOrdersResponse, error) { req := &exchangetypes.QueryAccountAddressDerivativeOrdersRequest{ MarketId: marketId, AccountAddress: address, } - return c.exchangeQueryClient.AccountAddressDerivativeOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.AccountAddressDerivativeOrders, req) + + return res, err } -func (c *chainClient) FetchChainDerivativeOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QueryDerivativeOrdersByHashesResponse, error) { +func (c *chainClient) FetchChainDerivativeOrdersByHashes(ctx context.Context, marketId, subaccountId string, orderHashes []string) (*exchangetypes.QueryDerivativeOrdersByHashesResponse, error) { req := &exchangetypes.QueryDerivativeOrdersByHashesRequest{ MarketId: marketId, SubaccountId: subaccountId, OrderHashes: orderHashes, } - return c.exchangeQueryClient.DerivativeOrdersByHashes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeOrdersByHashes, req) + + return res, err } -func (c *chainClient) FetchChainTraderDerivativeTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { +func (c *chainClient) FetchChainTraderDerivativeTransientOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { req := &exchangetypes.QueryTraderDerivativeOrdersRequest{ MarketId: marketId, SubaccountId: subaccountId, } - return c.exchangeQueryClient.TraderDerivativeTransientOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TraderDerivativeTransientOrders, req) + + return res, err } -func (c *chainClient) FetchChainDerivativeMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) { +func (c *chainClient) FetchChainDerivativeMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) { req := &exchangetypes.QueryDerivativeMarketsRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, WithMidPriceAndTob: withMidPriceAndTob, } if status != "" { req.Status = status } - return c.exchangeQueryClient.DerivativeMarkets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeMarkets, req) + + return res, err } func (c *chainClient) FetchChainDerivativeMarket(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMarketResponse, error) { req := &exchangetypes.QueryDerivativeMarketRequest{ MarketId: marketId, } - return c.exchangeQueryClient.DerivativeMarket(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeMarket, req) + + return res, err } func (c *chainClient) FetchDerivativeMarketAddress(ctx context.Context, marketId string) (*exchangetypes.QueryDerivativeMarketAddressResponse, error) { req := &exchangetypes.QueryDerivativeMarketAddressRequest{ MarketId: marketId, } - return c.exchangeQueryClient.DerivativeMarketAddress(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.DerivativeMarketAddress, req) + + return res, err } func (c *chainClient) FetchSubaccountTradeNonce(ctx context.Context, subaccountId string) (*exchangetypes.QuerySubaccountTradeNonceResponse, error) { req := &exchangetypes.QuerySubaccountTradeNonceRequest{ SubaccountId: subaccountId, } - return c.exchangeQueryClient.SubaccountTradeNonce(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountTradeNonce, req) + + return res, err } func (c *chainClient) FetchChainPositions(ctx context.Context) (*exchangetypes.QueryPositionsResponse, error) { req := &exchangetypes.QueryPositionsRequest{} - return c.exchangeQueryClient.Positions(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.Positions, req) + + return res, err } func (c *chainClient) FetchChainSubaccountPositions(ctx context.Context, subaccountId string) (*exchangetypes.QuerySubaccountPositionsResponse, error) { req := &exchangetypes.QuerySubaccountPositionsRequest{ SubaccountId: subaccountId, } - return c.exchangeQueryClient.SubaccountPositions(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountPositions, req) + + return res, err } -func (c *chainClient) FetchChainSubaccountPositionInMarket(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountPositionInMarketResponse, error) { +func (c *chainClient) FetchChainSubaccountPositionInMarket(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountPositionInMarketResponse, error) { req := &exchangetypes.QuerySubaccountPositionInMarketRequest{ SubaccountId: subaccountId, MarketId: marketId, } - return c.exchangeQueryClient.SubaccountPositionInMarket(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountPositionInMarket, req) + + return res, err } -func (c *chainClient) FetchChainSubaccountEffectivePositionInMarket(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountEffectivePositionInMarketResponse, error) { +func (c *chainClient) FetchChainSubaccountEffectivePositionInMarket(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountEffectivePositionInMarketResponse, error) { req := &exchangetypes.QuerySubaccountEffectivePositionInMarketRequest{ SubaccountId: subaccountId, MarketId: marketId, } - return c.exchangeQueryClient.SubaccountEffectivePositionInMarket(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountEffectivePositionInMarket, req) + + return res, err } func (c *chainClient) FetchChainPerpetualMarketInfo(ctx context.Context, marketId string) (*exchangetypes.QueryPerpetualMarketInfoResponse, error) { req := &exchangetypes.QueryPerpetualMarketInfoRequest{ MarketId: marketId, } - return c.exchangeQueryClient.PerpetualMarketInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.PerpetualMarketInfo, req) + + return res, err } func (c *chainClient) FetchChainExpiryFuturesMarketInfo(ctx context.Context, marketId string) (*exchangetypes.QueryExpiryFuturesMarketInfoResponse, error) { req := &exchangetypes.QueryExpiryFuturesMarketInfoRequest{ MarketId: marketId, } - return c.exchangeQueryClient.ExpiryFuturesMarketInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.ExpiryFuturesMarketInfo, req) + + return res, err } func (c *chainClient) FetchChainPerpetualMarketFunding(ctx context.Context, marketId string) (*exchangetypes.QueryPerpetualMarketFundingResponse, error) { req := &exchangetypes.QueryPerpetualMarketFundingRequest{ MarketId: marketId, } - return c.exchangeQueryClient.PerpetualMarketFunding(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.PerpetualMarketFunding, req) + + return res, err } func (c *chainClient) FetchSubaccountOrderMetadata(ctx context.Context, subaccountId string) (*exchangetypes.QuerySubaccountOrderMetadataResponse, error) { req := &exchangetypes.QuerySubaccountOrderMetadataRequest{ SubaccountId: subaccountId, } - return c.exchangeQueryClient.SubaccountOrderMetadata(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.SubaccountOrderMetadata, req) + + return res, err } func (c *chainClient) FetchTradeRewardPoints(ctx context.Context, accounts []string) (*exchangetypes.QueryTradeRewardPointsResponse, error) { req := &exchangetypes.QueryTradeRewardPointsRequest{ Accounts: accounts, } - return c.exchangeQueryClient.TradeRewardPoints(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TradeRewardPoints, req) + + return res, err } func (c *chainClient) FetchPendingTradeRewardPoints(ctx context.Context, accounts []string) (*exchangetypes.QueryTradeRewardPointsResponse, error) { req := &exchangetypes.QueryTradeRewardPointsRequest{ Accounts: accounts, } - return c.exchangeQueryClient.PendingTradeRewardPoints(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.PendingTradeRewardPoints, req) + + return res, err } func (c *chainClient) FetchTradeRewardCampaign(ctx context.Context) (*exchangetypes.QueryTradeRewardCampaignResponse, error) { req := &exchangetypes.QueryTradeRewardCampaignRequest{} - return c.exchangeQueryClient.TradeRewardCampaign(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TradeRewardCampaign, req) + + return res, err } func (c *chainClient) FetchFeeDiscountAccountInfo(ctx context.Context, account string) (*exchangetypes.QueryFeeDiscountAccountInfoResponse, error) { req := &exchangetypes.QueryFeeDiscountAccountInfoRequest{ Account: account, } - return c.exchangeQueryClient.FeeDiscountAccountInfo(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FeeDiscountAccountInfo, req) + + return res, err } func (c *chainClient) FetchFeeDiscountSchedule(ctx context.Context) (*exchangetypes.QueryFeeDiscountScheduleResponse, error) { req := &exchangetypes.QueryFeeDiscountScheduleRequest{} - return c.exchangeQueryClient.FeeDiscountSchedule(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FeeDiscountSchedule, req) + + return res, err } func (c *chainClient) FetchBalanceMismatches(ctx context.Context, dustFactor int64) (*exchangetypes.QueryBalanceMismatchesResponse, error) { req := &exchangetypes.QueryBalanceMismatchesRequest{ DustFactor: dustFactor, } - return c.exchangeQueryClient.BalanceMismatches(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.BalanceMismatches, req) + + return res, err } func (c *chainClient) FetchBalanceWithBalanceHolds(ctx context.Context) (*exchangetypes.QueryBalanceWithBalanceHoldsResponse, error) { req := &exchangetypes.QueryBalanceWithBalanceHoldsRequest{} - return c.exchangeQueryClient.BalanceWithBalanceHolds(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.BalanceWithBalanceHolds, req) + + return res, err } func (c *chainClient) FetchFeeDiscountTierStatistics(ctx context.Context) (*exchangetypes.QueryFeeDiscountTierStatisticsResponse, error) { req := &exchangetypes.QueryFeeDiscountTierStatisticsRequest{} - return c.exchangeQueryClient.FeeDiscountTierStatistics(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.FeeDiscountTierStatistics, req) + + return res, err } func (c *chainClient) FetchMitoVaultInfos(ctx context.Context) (*exchangetypes.MitoVaultInfosResponse, error) { req := &exchangetypes.MitoVaultInfosRequest{} - return c.exchangeQueryClient.MitoVaultInfos(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.MitoVaultInfos, req) + + return res, err } func (c *chainClient) FetchMarketIDFromVault(ctx context.Context, vaultAddress string) (*exchangetypes.QueryMarketIDFromVaultResponse, error) { req := &exchangetypes.QueryMarketIDFromVaultRequest{ VaultAddress: vaultAddress, } - return c.exchangeQueryClient.QueryMarketIDFromVault(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.QueryMarketIDFromVault, req) + + return res, err } func (c *chainClient) FetchHistoricalTradeRecords(ctx context.Context, marketId string) (*exchangetypes.QueryHistoricalTradeRecordsResponse, error) { req := &exchangetypes.QueryHistoricalTradeRecordsRequest{ MarketId: marketId, } - return c.exchangeQueryClient.HistoricalTradeRecords(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.HistoricalTradeRecords, req) + + return res, err } func (c *chainClient) FetchIsOptedOutOfRewards(ctx context.Context, account string) (*exchangetypes.QueryIsOptedOutOfRewardsResponse, error) { req := &exchangetypes.QueryIsOptedOutOfRewardsRequest{ Account: account, } - return c.exchangeQueryClient.IsOptedOutOfRewards(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.IsOptedOutOfRewards, req) + + return res, err } func (c *chainClient) FetchOptedOutOfRewardsAccounts(ctx context.Context) (*exchangetypes.QueryOptedOutOfRewardsAccountsResponse, error) { req := &exchangetypes.QueryOptedOutOfRewardsAccountsRequest{} - return c.exchangeQueryClient.OptedOutOfRewardsAccounts(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.OptedOutOfRewardsAccounts, req) + + return res, err } func (c *chainClient) FetchMarketVolatility(ctx context.Context, marketId string, tradeHistoryOptions *exchangetypes.TradeHistoryOptions) (*exchangetypes.QueryMarketVolatilityResponse, error) { @@ -1992,7 +2186,9 @@ func (c *chainClient) FetchMarketVolatility(ctx context.Context, marketId string MarketId: marketId, TradeHistoryOptions: tradeHistoryOptions, } - return c.exchangeQueryClient.MarketVolatility(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.MarketVolatility, req) + + return res, err } func (c *chainClient) FetchChainBinaryOptionsMarkets(ctx context.Context, status string) (*exchangetypes.QueryBinaryMarketsResponse, error) { @@ -2000,20 +2196,458 @@ func (c *chainClient) FetchChainBinaryOptionsMarkets(ctx context.Context, status if status != "" { req.Status = status } - return c.exchangeQueryClient.BinaryOptionsMarkets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.BinaryOptionsMarkets, req) + + return res, err } -func (c *chainClient) FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) { +func (c *chainClient) FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) { req := &exchangetypes.QueryTraderDerivativeConditionalOrdersRequest{ SubaccountId: subaccountId, MarketId: marketId, } - return c.exchangeQueryClient.TraderDerivativeConditionalOrders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.TraderDerivativeConditionalOrders, req) + + return res, err } func (c *chainClient) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Context, marketId string) (*exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse, error) { req := &exchangetypes.QueryMarketAtomicExecutionFeeMultiplierRequest{ MarketId: marketId, } - return c.exchangeQueryClient.MarketAtomicExecutionFeeMultiplier(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.exchangeQueryClient.MarketAtomicExecutionFeeMultiplier, req) + + return res, err +} + +// Tendermint module + +func (c *chainClient) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { + req := &cmtservice.GetNodeInfoRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetNodeInfo, req) + + return res, err +} + +func (c *chainClient) FetchSyncing(ctx context.Context) (*cmtservice.GetSyncingResponse, error) { + req := &cmtservice.GetSyncingRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetSyncing, req) + + return res, err +} + +func (c *chainClient) FetchLatestBlock(ctx context.Context) (*cmtservice.GetLatestBlockResponse, error) { + req := &cmtservice.GetLatestBlockRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetLatestBlock, req) + + return res, err +} + +func (c *chainClient) FetchBlockByHeight(ctx context.Context, height int64) (*cmtservice.GetBlockByHeightResponse, error) { + req := &cmtservice.GetBlockByHeightRequest{ + Height: height, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetBlockByHeight, req) + + return res, err +} + +func (c *chainClient) FetchLatestValidatorSet(ctx context.Context) (*cmtservice.GetLatestValidatorSetResponse, error) { + req := &cmtservice.GetLatestValidatorSetRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetLatestValidatorSet, req) + + return res, err +} + +func (c *chainClient) FetchValidatorSetByHeight(ctx context.Context, height int64, pagination *query.PageRequest) (*cmtservice.GetValidatorSetByHeightResponse, error) { + req := &cmtservice.GetValidatorSetByHeightRequest{ + Height: height, + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.GetValidatorSetByHeight, req) + + return res, err +} + +func (c *chainClient) ABCIQuery(ctx context.Context, path string, data []byte, height int64, prove bool) (*cmtservice.ABCIQueryResponse, error) { + req := &cmtservice.ABCIQueryRequest{ + Path: path, + Data: data, + Height: height, + Prove: prove, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.tendermintQueryClient.ABCIQuery, req) + + return res, err +} + +// IBC Transfer module +func (c *chainClient) FetchDenomTrace(ctx context.Context, hash string) (*ibctransfertypes.QueryDenomTraceResponse, error) { + req := &ibctransfertypes.QueryDenomTraceRequest{ + Hash: hash, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcTransferQueryClient.DenomTrace, req) + + return res, err +} + +func (c *chainClient) FetchDenomTraces(ctx context.Context, pagination *query.PageRequest) (*ibctransfertypes.QueryDenomTracesResponse, error) { + req := &ibctransfertypes.QueryDenomTracesRequest{ + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcTransferQueryClient.DenomTraces, req) + + return res, err +} + +func (c *chainClient) FetchDenomHash(ctx context.Context, trace string) (*ibctransfertypes.QueryDenomHashResponse, error) { + req := &ibctransfertypes.QueryDenomHashRequest{ + Trace: trace, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcTransferQueryClient.DenomHash, req) + + return res, err +} + +func (c *chainClient) FetchEscrowAddress(ctx context.Context, portId, channelId string) (*ibctransfertypes.QueryEscrowAddressResponse, error) { + req := &ibctransfertypes.QueryEscrowAddressRequest{ + PortId: portId, + ChannelId: channelId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcTransferQueryClient.EscrowAddress, req) + + return res, err +} + +func (c *chainClient) FetchTotalEscrowForDenom(ctx context.Context, denom string) (*ibctransfertypes.QueryTotalEscrowForDenomResponse, error) { + req := &ibctransfertypes.QueryTotalEscrowForDenomRequest{ + Denom: denom, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcTransferQueryClient.TotalEscrowForDenom, req) + + return res, err +} + +// IBC Core Channel module +func (c *chainClient) FetchIBCChannel(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryChannelResponse, error) { + req := &ibcchanneltypes.QueryChannelRequest{ + PortId: portId, + ChannelId: channelId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.Channel, req) + + return res, err +} + +func (c *chainClient) FetchIBCChannels(ctx context.Context, pagination *query.PageRequest) (*ibcchanneltypes.QueryChannelsResponse, error) { + req := &ibcchanneltypes.QueryChannelsRequest{ + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.Channels, req) + + return res, err +} + +func (c *chainClient) FetchIBCConnectionChannels(ctx context.Context, connection string, pagination *query.PageRequest) (*ibcchanneltypes.QueryConnectionChannelsResponse, error) { + req := &ibcchanneltypes.QueryConnectionChannelsRequest{ + Connection: connection, + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.ConnectionChannels, req) + + return res, err +} + +func (c *chainClient) FetchIBCChannelClientState(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryChannelClientStateResponse, error) { + req := &ibcchanneltypes.QueryChannelClientStateRequest{ + PortId: portId, + ChannelId: channelId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.ChannelClientState, req) + + return res, err +} + +func (c *chainClient) FetchIBCChannelConsensusState(ctx context.Context, portId, channelId string, revisionNumber, revisionHeight uint64) (*ibcchanneltypes.QueryChannelConsensusStateResponse, error) { + req := &ibcchanneltypes.QueryChannelConsensusStateRequest{ + PortId: portId, + ChannelId: channelId, + RevisionNumber: revisionNumber, + RevisionHeight: revisionHeight, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.ChannelConsensusState, req) + + return res, err +} + +func (c *chainClient) FetchIBCPacketCommitment(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketCommitmentResponse, error) { + req := &ibcchanneltypes.QueryPacketCommitmentRequest{ + PortId: portId, + ChannelId: channelId, + Sequence: sequence, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.PacketCommitment, req) + + return res, err +} + +func (c *chainClient) FetchIBCPacketCommitments(ctx context.Context, portId, channelId string, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketCommitmentsResponse, error) { + req := &ibcchanneltypes.QueryPacketCommitmentsRequest{ + PortId: portId, + ChannelId: channelId, + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.PacketCommitments, req) + + return res, err +} + +func (c *chainClient) FetchIBCPacketReceipt(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketReceiptResponse, error) { + req := &ibcchanneltypes.QueryPacketReceiptRequest{ + PortId: portId, + ChannelId: channelId, + Sequence: sequence, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.PacketReceipt, req) + + return res, err +} + +func (c *chainClient) FetchIBCPacketAcknowledgement(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketAcknowledgementResponse, error) { + req := &ibcchanneltypes.QueryPacketAcknowledgementRequest{ + PortId: portId, + ChannelId: channelId, + Sequence: sequence, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.PacketAcknowledgement, req) + + return res, err +} + +func (c *chainClient) FetchIBCPacketAcknowledgements(ctx context.Context, portId, channelId string, packetCommitmentSequences []uint64, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketAcknowledgementsResponse, error) { + req := &ibcchanneltypes.QueryPacketAcknowledgementsRequest{ + PortId: portId, + ChannelId: channelId, + Pagination: pagination, + PacketCommitmentSequences: packetCommitmentSequences, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.PacketAcknowledgements, req) + + return res, err +} + +func (c *chainClient) FetchIBCUnreceivedPackets(ctx context.Context, portId, channelId string, packetCommitmentSequences []uint64) (*ibcchanneltypes.QueryUnreceivedPacketsResponse, error) { + req := &ibcchanneltypes.QueryUnreceivedPacketsRequest{ + PortId: portId, + ChannelId: channelId, + PacketCommitmentSequences: packetCommitmentSequences, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.UnreceivedPackets, req) + + return res, err +} + +func (c *chainClient) FetchIBCUnreceivedAcks(ctx context.Context, portId, channelId string, packetAckSequences []uint64) (*ibcchanneltypes.QueryUnreceivedAcksResponse, error) { + req := &ibcchanneltypes.QueryUnreceivedAcksRequest{ + PortId: portId, + ChannelId: channelId, + PacketAckSequences: packetAckSequences, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.UnreceivedAcks, req) + + return res, err +} + +func (c *chainClient) FetchIBCNextSequenceReceive(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryNextSequenceReceiveResponse, error) { + req := &ibcchanneltypes.QueryNextSequenceReceiveRequest{ + PortId: portId, + ChannelId: channelId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcChannelQueryClient.NextSequenceReceive, req) + + return res, err +} + +// IBC Core Chain module +func (c *chainClient) FetchIBCClientState(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStateResponse, error) { + req := &ibcclienttypes.QueryClientStateRequest{ + ClientId: clientId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ClientState, req) + + return res, err +} + +func (c *chainClient) FetchIBCClientStates(ctx context.Context, pagination *query.PageRequest) (*ibcclienttypes.QueryClientStatesResponse, error) { + req := &ibcclienttypes.QueryClientStatesRequest{ + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ClientStates, req) + + return res, err +} + +func (c *chainClient) FetchIBCConsensusState(ctx context.Context, clientId string, revisionNumber, revisionHeight uint64, latestHeight bool) (*ibcclienttypes.QueryConsensusStateResponse, error) { + req := &ibcclienttypes.QueryConsensusStateRequest{ + ClientId: clientId, + RevisionNumber: revisionNumber, + RevisionHeight: revisionHeight, + LatestHeight: latestHeight, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ConsensusState, req) + + return res, err +} + +func (c *chainClient) FetchIBCConsensusStates(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStatesResponse, error) { + req := &ibcclienttypes.QueryConsensusStatesRequest{ + ClientId: clientId, + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ConsensusStates, req) + + return res, err +} + +func (c *chainClient) FetchIBCConsensusStateHeights(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStateHeightsResponse, error) { + req := &ibcclienttypes.QueryConsensusStateHeightsRequest{ + ClientId: clientId, + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ConsensusStateHeights, req) + + return res, err +} + +func (c *chainClient) FetchIBCClientStatus(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStatusResponse, error) { + req := &ibcclienttypes.QueryClientStatusRequest{ + ClientId: clientId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ClientStatus, req) + + return res, err +} + +func (c *chainClient) FetchIBCClientParams(ctx context.Context) (*ibcclienttypes.QueryClientParamsResponse, error) { + req := &ibcclienttypes.QueryClientParamsRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.ClientParams, req) + + return res, err +} + +func (c *chainClient) FetchIBCUpgradedClientState(ctx context.Context) (*ibcclienttypes.QueryUpgradedClientStateResponse, error) { + req := &ibcclienttypes.QueryUpgradedClientStateRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.UpgradedClientState, req) + + return res, err +} + +func (c *chainClient) FetchIBCUpgradedConsensusState(ctx context.Context) (*ibcclienttypes.QueryUpgradedConsensusStateResponse, error) { + req := &ibcclienttypes.QueryUpgradedConsensusStateRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcClientQueryClient.UpgradedConsensusState, req) + + return res, err +} + +// IBC Core Connection module +func (c *chainClient) FetchIBCConnection(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionResponse, error) { + req := &ibcconnectiontypes.QueryConnectionRequest{ + ConnectionId: connectionId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.Connection, req) + + return res, err +} + +func (c *chainClient) FetchIBCConnections(ctx context.Context, pagination *query.PageRequest) (*ibcconnectiontypes.QueryConnectionsResponse, error) { + req := &ibcconnectiontypes.QueryConnectionsRequest{ + Pagination: pagination, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.Connections, req) + + return res, err +} + +func (c *chainClient) FetchIBCClientConnections(ctx context.Context, clientId string) (*ibcconnectiontypes.QueryClientConnectionsResponse, error) { + req := &ibcconnectiontypes.QueryClientConnectionsRequest{ + ClientId: clientId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.ClientConnections, req) + + return res, err +} + +func (c *chainClient) FetchIBCConnectionClientState(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionClientStateResponse, error) { + req := &ibcconnectiontypes.QueryConnectionClientStateRequest{ + ConnectionId: connectionId, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.ConnectionClientState, req) + + return res, err +} + +func (c *chainClient) FetchIBCConnectionConsensusState(ctx context.Context, connectionId string, revisionNumber, revisionHeight uint64) (*ibcconnectiontypes.QueryConnectionConsensusStateResponse, error) { + req := &ibcconnectiontypes.QueryConnectionConsensusStateRequest{ + ConnectionId: connectionId, + RevisionNumber: revisionNumber, + RevisionHeight: revisionHeight, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.ConnectionConsensusState, req) + + return res, err +} + +func (c *chainClient) FetchIBCConnectionParams(ctx context.Context) (*ibcconnectiontypes.QueryConnectionParamsResponse, error) { + req := &ibcconnectiontypes.QueryConnectionParamsRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.ibcConnectionQueryClient.ConnectionParams, req) + + return res, err +} + +// Permissions module + +func (c *chainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { + req := &permissionstypes.QueryAllNamespacesRequest{} + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AllNamespaces, req) + + return res, err +} + +func (c *chainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { + req := &permissionstypes.QueryNamespaceByDenomRequest{ + Denom: denom, + IncludeRoles: includeRoles, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.NamespaceByDenom, req) + + return res, err +} + +func (c *chainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { + req := &permissionstypes.QueryAddressRolesRequest{ + Denom: denom, + Address: address, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressRoles, req) + + return res, err +} + +func (c *chainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { + req := &permissionstypes.QueryAddressesByRoleRequest{ + Denom: denom, + Role: role, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.AddressesByRole, req) + + return res, err +} + +func (c *chainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { + req := &permissionstypes.QueryVouchersForAddressRequest{ + Address: address, + } + res, err := common.ExecuteCall(ctx, c.network.ChainCookieAssistant, c.permissionsQueryClient.VouchersForAddress, req) + + return res, err } diff --git a/client/chain/chain_test.go b/client/chain/chain_test.go index ed55ed2a..0016f37f 100644 --- a/client/chain/chain_test.go +++ b/client/chain/chain_test.go @@ -39,6 +39,8 @@ func createClient(senderAddress cosmtypes.AccAddress, cosmosKeyring keyring.Keyr } clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + // configure Keyring as nil to avoid the account initialization request when running unit tests + clientCtx.Keyring = nil chainClient, err := NewChainClient( clientCtx, @@ -50,7 +52,7 @@ func createClient(senderAddress cosmtypes.AccAddress, cosmosKeyring keyring.Keyr } func TestDefaultSubaccount(t *testing.T) { - network := common.LoadNetwork("testnet", "lb") + network := common.LoadNetwork("devnet", "lb") senderAddress, cosmosKeyring, err := accountForTests() if err != nil { @@ -73,7 +75,7 @@ func TestDefaultSubaccount(t *testing.T) { } func TestGetSubaccountWithIndex(t *testing.T) { - network := common.LoadNetwork("testnet", "lb") + network := common.LoadNetwork("devnet", "lb") senderAddress, cosmosKeyring, err := accountForTests() if err != nil { diff --git a/client/chain/chain_test_support.go b/client/chain/chain_test_support.go index 5ae0cfb6..1d8df620 100644 --- a/client/chain/chain_test_support.go +++ b/client/chain/chain_test_support.go @@ -5,14 +5,17 @@ import ( "errors" "time" - distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" - tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" + sdkmath "cosmossdk.io/math" - wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" + "github.com/cosmos/cosmos-sdk/client/grpc/cmtservice" + "google.golang.org/grpc" + wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" chainstreamtypes "github.com/InjectiveLabs/sdk-go/chain/stream/types" + tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" "github.com/InjectiveLabs/sdk-go/client/common" rpchttp "github.com/cometbft/cometbft/rpc/client/http" "github.com/cosmos/cosmos-sdk/client" @@ -22,8 +25,12 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibcclienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" + ibcconnectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types" + ibcchanneltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types" eth "github.com/ethereum/go-ethereum/common" - "google.golang.org/grpc" ) type MockChainClient struct { @@ -46,7 +53,7 @@ func (c *MockChainClient) ClientContext() client.Context { return client.Context{} } -func (c *MockChainClient) GetAccNonce() (accNum uint64, accSeq uint64) { +func (c *MockChainClient) GetAccNonce() (accNum, accSeq uint64) { return 1, 2 } @@ -63,7 +70,7 @@ func (c *MockChainClient) SyncBroadcastMsg(msgs ...sdk.Msg) (*txtypes.BroadcastT } func (c *MockChainClient) BuildSignedTx(clientCtx client.Context, accNum, accSeq, initialGas uint64, msg ...sdk.Msg) ([]byte, error) { - return *new([]byte), nil + return []byte(nil), nil } func (c *MockChainClient) SyncBroadcastSignedTx(tyBytes []byte) (*txtypes.BroadcastTxResponse, error) { @@ -82,7 +89,7 @@ func (c *MockChainClient) GetBankBalances(ctx context.Context, address string) ( return &banktypes.QueryAllBalancesResponse{}, nil } -func (c *MockChainClient) GetBankBalance(ctx context.Context, address string, denom string) (*banktypes.QueryBalanceResponse, error) { +func (c *MockChainClient) GetBankBalance(ctx context.Context, address, denom string) (*banktypes.QueryBalanceResponse, error) { return &banktypes.QueryBalanceResponse{}, nil } @@ -90,7 +97,7 @@ func (c *MockChainClient) GetBankSpendableBalances(ctx context.Context, address return &banktypes.QuerySpendableBalancesResponse{}, nil } -func (c *MockChainClient) GetBankSpendableBalancesByDenom(ctx context.Context, address string, denom string) (*banktypes.QuerySpendableBalanceByDenomResponse, error) { +func (c *MockChainClient) GetBankSpendableBalancesByDenom(ctx context.Context, address, denom string) (*banktypes.QuerySpendableBalanceByDenomResponse, error) { return &banktypes.QuerySpendableBalanceByDenomResponse{}, nil } @@ -137,11 +144,11 @@ func (c *MockChainClient) GetAccount(ctx context.Context, address string) (*auth return &authtypes.QueryAccountResponse{}, nil } -func (c *MockChainClient) BuildGenericAuthz(granter string, grantee string, msgtype string, expireIn time.Time) *authztypes.MsgGrant { +func (c *MockChainClient) BuildGenericAuthz(granter, grantee, msgtype string, expireIn time.Time) *authztypes.MsgGrant { return &authztypes.MsgGrant{} } -func (c *MockChainClient) BuildExchangeAuthz(granter string, grantee string, authzType ExchangeAuthz, subaccountId string, markets []string, expireIn time.Time) *authztypes.MsgGrant { +func (c *MockChainClient) BuildExchangeAuthz(granter, grantee string, authzType ExchangeAuthz, subaccountId string, markets []string, expireIn time.Time) *authztypes.MsgGrant { return &authztypes.MsgGrant{} } @@ -209,10 +216,10 @@ func (c *MockChainClient) StreamEventOrderFail(sender string, failEventCh chan m func (c *MockChainClient) StreamEventOrderFailWithWebsocket(sender string, websocket *rpchttp.HTTP, failEventCh chan map[string]uint) { } -func (c *MockChainClient) StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIds []string, orderbookCh chan exchangetypes.Orderbook) { +func (c *MockChainClient) StreamOrderbookUpdateEvents(orderbookType OrderbookType, marketIDs []string, orderbookCh chan exchangetypes.Orderbook) { } -func (c *MockChainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIds []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) { +func (c *MockChainClient) StreamOrderbookUpdateEventsWithWebsocket(orderbookType OrderbookType, marketIDs []string, websocket *rpchttp.HTTP, orderbookCh chan exchangetypes.Orderbook) { } func (c *MockChainClient) ChainStream(ctx context.Context, req chainstreamtypes.StreamRequest) (chainstreamtypes.Stream_StreamClient, error) { @@ -277,7 +284,7 @@ func (c *MockChainClient) FetchContractsByCreator(ctx context.Context, creator s return &wasmtypes.QueryContractsByCreatorResponse{}, nil } -func (c *MockChainClient) FetchDenomAuthorityMetadata(ctx context.Context, creator string, subDenom string) (*tokenfactorytypes.QueryDenomAuthorityMetadataResponse, error) { +func (c *MockChainClient) FetchDenomAuthorityMetadata(ctx context.Context, creator, subDenom string) (*tokenfactorytypes.QueryDenomAuthorityMetadataResponse, error) { return &tokenfactorytypes.QueryDenomAuthorityMetadataResponse{}, nil } @@ -302,11 +309,11 @@ func (c *MockChainClient) FetchValidatorCommission(ctx context.Context, validato return &distributiontypes.QueryValidatorCommissionResponse{}, nil } -func (c *MockChainClient) FetchValidatorSlashes(ctx context.Context, validatorAddress string, startingHeight uint64, endingHeight uint64, pagination *query.PageRequest) (*distributiontypes.QueryValidatorSlashesResponse, error) { +func (c *MockChainClient) FetchValidatorSlashes(ctx context.Context, validatorAddress string, startingHeight, endingHeight uint64, pagination *query.PageRequest) (*distributiontypes.QueryValidatorSlashesResponse, error) { return &distributiontypes.QueryValidatorSlashesResponse{}, nil } -func (c *MockChainClient) FetchDelegationRewards(ctx context.Context, delegatorAddress string, validatorAddress string) (*distributiontypes.QueryDelegationRewardsResponse, error) { +func (c *MockChainClient) FetchDelegationRewards(ctx context.Context, delegatorAddress, validatorAddress string) (*distributiontypes.QueryDelegationRewardsResponse, error) { return &distributiontypes.QueryDelegationRewardsResponse{}, nil } @@ -331,7 +338,7 @@ func (c *MockChainClient) FetchSubaccountDeposits(ctx context.Context, subaccoun return &exchangetypes.QuerySubaccountDepositsResponse{}, nil } -func (c *MockChainClient) FetchSubaccountDeposit(ctx context.Context, subaccountId string, denom string) (*exchangetypes.QuerySubaccountDepositResponse, error) { +func (c *MockChainClient) FetchSubaccountDeposit(ctx context.Context, subaccountId, denom string) (*exchangetypes.QuerySubaccountDepositResponse, error) { return &exchangetypes.QuerySubaccountDepositResponse{}, nil } @@ -343,7 +350,7 @@ func (c *MockChainClient) FetchAggregateVolume(ctx context.Context, account stri return &exchangetypes.QueryAggregateVolumeResponse{}, nil } -func (c *MockChainClient) FetchAggregateVolumes(ctx context.Context, accounts []string, marketIds []string) (*exchangetypes.QueryAggregateVolumesResponse, error) { +func (c *MockChainClient) FetchAggregateVolumes(ctx context.Context, accounts, marketIDs []string) (*exchangetypes.QueryAggregateVolumesResponse, error) { return &exchangetypes.QueryAggregateVolumesResponse{}, nil } @@ -351,7 +358,7 @@ func (c *MockChainClient) FetchAggregateMarketVolume(ctx context.Context, market return &exchangetypes.QueryAggregateMarketVolumeResponse{}, nil } -func (c *MockChainClient) FetchAggregateMarketVolumes(ctx context.Context, marketIds []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) { +func (c *MockChainClient) FetchAggregateMarketVolumes(ctx context.Context, marketIDs []string) (*exchangetypes.QueryAggregateMarketVolumesResponse, error) { return &exchangetypes.QueryAggregateMarketVolumesResponse{}, nil } @@ -363,7 +370,7 @@ func (c *MockChainClient) FetchDenomDecimals(ctx context.Context, denoms []strin return &exchangetypes.QueryDenomDecimalsResponse{}, nil } -func (c *MockChainClient) FetchChainSpotMarkets(ctx context.Context, status string, marketIds []string) (*exchangetypes.QuerySpotMarketsResponse, error) { +func (c *MockChainClient) FetchChainSpotMarkets(ctx context.Context, status string, marketIDs []string) (*exchangetypes.QuerySpotMarketsResponse, error) { return &exchangetypes.QuerySpotMarketsResponse{}, nil } @@ -371,7 +378,7 @@ func (c *MockChainClient) FetchChainSpotMarket(ctx context.Context, marketId str return &exchangetypes.QuerySpotMarketResponse{}, nil } -func (c *MockChainClient) FetchChainFullSpotMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) { +func (c *MockChainClient) FetchChainFullSpotMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryFullSpotMarketsResponse, error) { return &exchangetypes.QueryFullSpotMarketsResponse{}, nil } @@ -379,27 +386,27 @@ func (c *MockChainClient) FetchChainFullSpotMarket(ctx context.Context, marketId return &exchangetypes.QueryFullSpotMarketResponse{}, nil } -func (c *MockChainClient) FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional sdk.Dec, limitCumulativeQuantity sdk.Dec) (*exchangetypes.QuerySpotOrderbookResponse, error) { +func (c *MockChainClient) FetchChainSpotOrderbook(ctx context.Context, marketId string, limit uint64, orderSide exchangetypes.OrderSide, limitCumulativeNotional, limitCumulativeQuantity sdkmath.LegacyDec) (*exchangetypes.QuerySpotOrderbookResponse, error) { return &exchangetypes.QuerySpotOrderbookResponse{}, nil } -func (c *MockChainClient) FetchChainTraderSpotOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { +func (c *MockChainClient) FetchChainTraderSpotOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { return &exchangetypes.QueryTraderSpotOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainAccountAddressSpotOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressSpotOrdersResponse, error) { +func (c *MockChainClient) FetchChainAccountAddressSpotOrders(ctx context.Context, marketId, address string) (*exchangetypes.QueryAccountAddressSpotOrdersResponse, error) { return &exchangetypes.QueryAccountAddressSpotOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainSpotOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QuerySpotOrdersByHashesResponse, error) { +func (c *MockChainClient) FetchChainSpotOrdersByHashes(ctx context.Context, marketId, subaccountId string, orderHashes []string) (*exchangetypes.QuerySpotOrdersByHashesResponse, error) { return &exchangetypes.QuerySpotOrdersByHashesResponse{}, nil } -func (c *MockChainClient) FetchChainSubaccountOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountOrdersResponse, error) { +func (c *MockChainClient) FetchChainSubaccountOrders(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountOrdersResponse, error) { return &exchangetypes.QuerySubaccountOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainTraderSpotTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { +func (c *MockChainClient) FetchChainTraderSpotTransientOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderSpotOrdersResponse, error) { return &exchangetypes.QueryTraderSpotOrdersResponse{}, nil } @@ -411,27 +418,27 @@ func (c *MockChainClient) FetchDerivativeMidPriceAndTOB(ctx context.Context, mar return &exchangetypes.QueryDerivativeMidPriceAndTOBResponse{}, nil } -func (c *MockChainClient) FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdk.Dec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) { +func (c *MockChainClient) FetchChainDerivativeOrderbook(ctx context.Context, marketId string, limit uint64, limitCumulativeNotional sdkmath.LegacyDec) (*exchangetypes.QueryDerivativeOrderbookResponse, error) { return &exchangetypes.QueryDerivativeOrderbookResponse{}, nil } -func (c *MockChainClient) FetchChainTraderDerivativeOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { +func (c *MockChainClient) FetchChainTraderDerivativeOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { return &exchangetypes.QueryTraderDerivativeOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainAccountAddressDerivativeOrders(ctx context.Context, marketId string, address string) (*exchangetypes.QueryAccountAddressDerivativeOrdersResponse, error) { +func (c *MockChainClient) FetchChainAccountAddressDerivativeOrders(ctx context.Context, marketId, address string) (*exchangetypes.QueryAccountAddressDerivativeOrdersResponse, error) { return &exchangetypes.QueryAccountAddressDerivativeOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainDerivativeOrdersByHashes(ctx context.Context, marketId string, subaccountId string, orderHashes []string) (*exchangetypes.QueryDerivativeOrdersByHashesResponse, error) { +func (c *MockChainClient) FetchChainDerivativeOrdersByHashes(ctx context.Context, marketId, subaccountId string, orderHashes []string) (*exchangetypes.QueryDerivativeOrdersByHashesResponse, error) { return &exchangetypes.QueryDerivativeOrdersByHashesResponse{}, nil } -func (c *MockChainClient) FetchChainTraderDerivativeTransientOrders(ctx context.Context, marketId string, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { +func (c *MockChainClient) FetchChainTraderDerivativeTransientOrders(ctx context.Context, marketId, subaccountId string) (*exchangetypes.QueryTraderDerivativeOrdersResponse, error) { return &exchangetypes.QueryTraderDerivativeOrdersResponse{}, nil } -func (c *MockChainClient) FetchChainDerivativeMarkets(ctx context.Context, status string, marketIds []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) { +func (c *MockChainClient) FetchChainDerivativeMarkets(ctx context.Context, status string, marketIDs []string, withMidPriceAndTob bool) (*exchangetypes.QueryDerivativeMarketsResponse, error) { return &exchangetypes.QueryDerivativeMarketsResponse{}, nil } @@ -455,11 +462,11 @@ func (c *MockChainClient) FetchChainSubaccountPositions(ctx context.Context, sub return &exchangetypes.QuerySubaccountPositionsResponse{}, nil } -func (c *MockChainClient) FetchChainSubaccountPositionInMarket(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountPositionInMarketResponse, error) { +func (c *MockChainClient) FetchChainSubaccountPositionInMarket(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountPositionInMarketResponse, error) { return &exchangetypes.QuerySubaccountPositionInMarketResponse{}, nil } -func (c *MockChainClient) FetchChainSubaccountEffectivePositionInMarket(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QuerySubaccountEffectivePositionInMarketResponse, error) { +func (c *MockChainClient) FetchChainSubaccountEffectivePositionInMarket(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QuerySubaccountEffectivePositionInMarketResponse, error) { return &exchangetypes.QuerySubaccountEffectivePositionInMarketResponse{}, nil } @@ -539,10 +546,198 @@ func (c *MockChainClient) FetchChainBinaryOptionsMarkets(ctx context.Context, st return &exchangetypes.QueryBinaryMarketsResponse{}, nil } -func (c *MockChainClient) FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId string, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) { +func (c *MockChainClient) FetchTraderDerivativeConditionalOrders(ctx context.Context, subaccountId, marketId string) (*exchangetypes.QueryTraderDerivativeConditionalOrdersResponse, error) { return &exchangetypes.QueryTraderDerivativeConditionalOrdersResponse{}, nil } func (c *MockChainClient) FetchMarketAtomicExecutionFeeMultiplier(ctx context.Context, marketId string) (*exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse, error) { return &exchangetypes.QueryMarketAtomicExecutionFeeMultiplierResponse{}, nil } + +// Tendermint module + +func (c *MockChainClient) FetchNodeInfo(ctx context.Context) (*cmtservice.GetNodeInfoResponse, error) { + return &cmtservice.GetNodeInfoResponse{}, nil +} + +func (c *MockChainClient) FetchSyncing(ctx context.Context) (*cmtservice.GetSyncingResponse, error) { + return &cmtservice.GetSyncingResponse{}, nil +} + +func (c *MockChainClient) FetchLatestBlock(ctx context.Context) (*cmtservice.GetLatestBlockResponse, error) { + return &cmtservice.GetLatestBlockResponse{}, nil +} + +func (c *MockChainClient) FetchBlockByHeight(ctx context.Context, height int64) (*cmtservice.GetBlockByHeightResponse, error) { + return &cmtservice.GetBlockByHeightResponse{}, nil +} + +func (c *MockChainClient) FetchLatestValidatorSet(ctx context.Context) (*cmtservice.GetLatestValidatorSetResponse, error) { + return &cmtservice.GetLatestValidatorSetResponse{}, nil +} + +func (c *MockChainClient) FetchValidatorSetByHeight(ctx context.Context, height int64, pagination *query.PageRequest) (*cmtservice.GetValidatorSetByHeightResponse, error) { + return &cmtservice.GetValidatorSetByHeightResponse{}, nil +} + +func (c *MockChainClient) ABCIQuery(ctx context.Context, path string, data []byte, height int64, prove bool) (*cmtservice.ABCIQueryResponse, error) { + return &cmtservice.ABCIQueryResponse{}, nil +} + +// IBC Transfer module +func (c *MockChainClient) FetchDenomTrace(ctx context.Context, hash string) (*ibctransfertypes.QueryDenomTraceResponse, error) { + return &ibctransfertypes.QueryDenomTraceResponse{}, nil +} + +func (c *MockChainClient) FetchDenomTraces(ctx context.Context, pagination *query.PageRequest) (*ibctransfertypes.QueryDenomTracesResponse, error) { + return &ibctransfertypes.QueryDenomTracesResponse{}, nil +} + +func (c *MockChainClient) FetchDenomHash(ctx context.Context, trace string) (*ibctransfertypes.QueryDenomHashResponse, error) { + return &ibctransfertypes.QueryDenomHashResponse{}, nil +} + +func (c *MockChainClient) FetchEscrowAddress(ctx context.Context, portId, channelId string) (*ibctransfertypes.QueryEscrowAddressResponse, error) { + return &ibctransfertypes.QueryEscrowAddressResponse{}, nil +} + +func (c *MockChainClient) FetchTotalEscrowForDenom(ctx context.Context, denom string) (*ibctransfertypes.QueryTotalEscrowForDenomResponse, error) { + return &ibctransfertypes.QueryTotalEscrowForDenomResponse{}, nil +} + +// IBC Core Channel module +func (c *MockChainClient) FetchIBCChannel(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryChannelResponse, error) { + return &ibcchanneltypes.QueryChannelResponse{}, nil +} + +func (c *MockChainClient) FetchIBCChannels(ctx context.Context, pagination *query.PageRequest) (*ibcchanneltypes.QueryChannelsResponse, error) { + return &ibcchanneltypes.QueryChannelsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConnectionChannels(ctx context.Context, connection string, pagination *query.PageRequest) (*ibcchanneltypes.QueryConnectionChannelsResponse, error) { + return &ibcchanneltypes.QueryConnectionChannelsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCChannelClientState(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryChannelClientStateResponse, error) { + return &ibcchanneltypes.QueryChannelClientStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCChannelConsensusState(ctx context.Context, portId, channelId string, revisionNumber, revisionHeight uint64) (*ibcchanneltypes.QueryChannelConsensusStateResponse, error) { + return &ibcchanneltypes.QueryChannelConsensusStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCPacketCommitment(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketCommitmentResponse, error) { + return &ibcchanneltypes.QueryPacketCommitmentResponse{}, nil +} + +func (c *MockChainClient) FetchIBCPacketCommitments(ctx context.Context, portId, channelId string, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketCommitmentsResponse, error) { + return &ibcchanneltypes.QueryPacketCommitmentsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCPacketReceipt(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketReceiptResponse, error) { + return &ibcchanneltypes.QueryPacketReceiptResponse{}, nil +} + +func (c *MockChainClient) FetchIBCPacketAcknowledgement(ctx context.Context, portId, channelId string, sequence uint64) (*ibcchanneltypes.QueryPacketAcknowledgementResponse, error) { + return &ibcchanneltypes.QueryPacketAcknowledgementResponse{}, nil +} + +func (c *MockChainClient) FetchIBCPacketAcknowledgements(ctx context.Context, portId, channelId string, packetCommitmentSequences []uint64, pagination *query.PageRequest) (*ibcchanneltypes.QueryPacketAcknowledgementsResponse, error) { + return &ibcchanneltypes.QueryPacketAcknowledgementsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCUnreceivedPackets(ctx context.Context, portId, channelId string, packetCommitmentSequences []uint64) (*ibcchanneltypes.QueryUnreceivedPacketsResponse, error) { + return &ibcchanneltypes.QueryUnreceivedPacketsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCUnreceivedAcks(ctx context.Context, portId, channelId string, packetAckSequences []uint64) (*ibcchanneltypes.QueryUnreceivedAcksResponse, error) { + return &ibcchanneltypes.QueryUnreceivedAcksResponse{}, nil +} + +func (c *MockChainClient) FetchIBCNextSequenceReceive(ctx context.Context, portId, channelId string) (*ibcchanneltypes.QueryNextSequenceReceiveResponse, error) { + return &ibcchanneltypes.QueryNextSequenceReceiveResponse{}, nil +} + +// IBC Core Chain module +func (c *MockChainClient) FetchIBCClientState(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStateResponse, error) { + return &ibcclienttypes.QueryClientStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCClientStates(ctx context.Context, pagination *query.PageRequest) (*ibcclienttypes.QueryClientStatesResponse, error) { + return &ibcclienttypes.QueryClientStatesResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConsensusState(ctx context.Context, clientId string, revisionNumber, revisionHeight uint64, latestHeight bool) (*ibcclienttypes.QueryConsensusStateResponse, error) { + return &ibcclienttypes.QueryConsensusStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConsensusStates(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStatesResponse, error) { + return &ibcclienttypes.QueryConsensusStatesResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConsensusStateHeights(ctx context.Context, clientId string, pagination *query.PageRequest) (*ibcclienttypes.QueryConsensusStateHeightsResponse, error) { + return &ibcclienttypes.QueryConsensusStateHeightsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCClientStatus(ctx context.Context, clientId string) (*ibcclienttypes.QueryClientStatusResponse, error) { + return &ibcclienttypes.QueryClientStatusResponse{}, nil +} + +func (c *MockChainClient) FetchIBCClientParams(ctx context.Context) (*ibcclienttypes.QueryClientParamsResponse, error) { + return &ibcclienttypes.QueryClientParamsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCUpgradedClientState(ctx context.Context) (*ibcclienttypes.QueryUpgradedClientStateResponse, error) { + return &ibcclienttypes.QueryUpgradedClientStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCUpgradedConsensusState(ctx context.Context) (*ibcclienttypes.QueryUpgradedConsensusStateResponse, error) { + return &ibcclienttypes.QueryUpgradedConsensusStateResponse{}, nil +} + +// IBC Core Connection module +func (c *MockChainClient) FetchIBCConnection(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionResponse, error) { + return &ibcconnectiontypes.QueryConnectionResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConnections(ctx context.Context, pagination *query.PageRequest) (*ibcconnectiontypes.QueryConnectionsResponse, error) { + return &ibcconnectiontypes.QueryConnectionsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCClientConnections(ctx context.Context, clientId string) (*ibcconnectiontypes.QueryClientConnectionsResponse, error) { + return &ibcconnectiontypes.QueryClientConnectionsResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConnectionClientState(ctx context.Context, connectionId string) (*ibcconnectiontypes.QueryConnectionClientStateResponse, error) { + return &ibcconnectiontypes.QueryConnectionClientStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConnectionConsensusState(ctx context.Context, connectionId string, revisionNumber, revisionHeight uint64) (*ibcconnectiontypes.QueryConnectionConsensusStateResponse, error) { + return &ibcconnectiontypes.QueryConnectionConsensusStateResponse{}, nil +} + +func (c *MockChainClient) FetchIBCConnectionParams(ctx context.Context) (*ibcconnectiontypes.QueryConnectionParamsResponse, error) { + return &ibcconnectiontypes.QueryConnectionParamsResponse{}, nil +} + +// Permissions module + +func (c *MockChainClient) FetchAllNamespaces(ctx context.Context) (*permissionstypes.QueryAllNamespacesResponse, error) { + return &permissionstypes.QueryAllNamespacesResponse{}, nil +} + +func (c *MockChainClient) FetchNamespaceByDenom(ctx context.Context, denom string, includeRoles bool) (*permissionstypes.QueryNamespaceByDenomResponse, error) { + return &permissionstypes.QueryNamespaceByDenomResponse{}, nil +} + +func (c *MockChainClient) FetchAddressRoles(ctx context.Context, denom, address string) (*permissionstypes.QueryAddressRolesResponse, error) { + return &permissionstypes.QueryAddressRolesResponse{}, nil +} + +func (c *MockChainClient) FetchAddressesByRole(ctx context.Context, denom, role string) (*permissionstypes.QueryAddressesByRoleResponse, error) { + return &permissionstypes.QueryAddressesByRoleResponse{}, nil +} + +func (c *MockChainClient) FetchVouchersForAddress(ctx context.Context, address string) (*permissionstypes.QueryVouchersForAddressResponse, error) { + return &permissionstypes.QueryVouchersForAddressResponse{}, nil +} diff --git a/client/chain/context.go b/client/chain/context.go index ec54769d..efaf985a 100644 --- a/client/chain/context.go +++ b/client/chain/context.go @@ -3,6 +3,10 @@ package chain import ( "os" + "cosmossdk.io/x/tx/signing" + "github.com/cosmos/cosmos-sdk/codec/address" + "github.com/cosmos/gogoproto/proto" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/types" @@ -25,6 +29,9 @@ import ( chaintypes "github.com/InjectiveLabs/sdk-go/chain/types" wasmx "github.com/InjectiveLabs/sdk-go/chain/wasmx/types" + evidencetypes "cosmossdk.io/x/evidence/types" + feegranttypes "cosmossdk.io/x/feegrant" + upgradetypes "cosmossdk.io/x/upgrade/types" cosmostypes "github.com/cosmos/cosmos-sdk/types" signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -33,25 +40,41 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - feegranttypes "github.com/cosmos/cosmos-sdk/x/feegrant" govv1types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" paramproposaltypes "github.com/cosmos/cosmos-sdk/x/params/types/proposal" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" - ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" - ibcapplicationtypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" - ibccoretypes "github.com/cosmos/ibc-go/v7/modules/core/types" - ibclightclienttypes "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" - ibctenderminttypes "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + icatypes "github.com/cosmos/ibc-go/v8/modules/apps/27-interchain-accounts/types" + ibcfeetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types" + ibcapplicationtypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + ibccoretypes "github.com/cosmos/ibc-go/v8/modules/core/types" + ibclightclienttypes "github.com/cosmos/ibc-go/v8/modules/light-clients/06-solomachine" + ibctenderminttypes "github.com/cosmos/ibc-go/v8/modules/light-clients/07-tendermint" ) +// NewInterfaceRegistry returns a new InterfaceRegistry +func NewInterfaceRegistry() types.InterfaceRegistry { + registry, err := types.NewInterfaceRegistryWithOptions(types.InterfaceRegistryOptions{ + ProtoFiles: proto.HybridResolver, + SigningOptions: signing.Options{ + AddressCodec: address.Bech32Codec{ + Bech32Prefix: cosmostypes.GetConfig().GetBech32AccountAddrPrefix(), + }, + ValidatorAddressCodec: address.Bech32Codec{ + Bech32Prefix: cosmostypes.GetConfig().GetBech32ValidatorAddrPrefix(), + }, + }, + }) + if err != nil { + panic(err) + } + return registry +} + // NewTxConfig initializes new Cosmos TxConfig with certain signModes enabled. func NewTxConfig(signModes []signingtypes.SignMode) client.TxConfig { - interfaceRegistry := types.NewInterfaceRegistry() + interfaceRegistry := NewInterfaceRegistry() keyscodec.RegisterInterfaces(interfaceRegistry) std.RegisterInterfaces(interfaceRegistry) exchange.RegisterInterfaces(interfaceRegistry) @@ -98,7 +121,7 @@ func NewClientContext( ) (client.Context, error) { clientCtx := client.Context{} - interfaceRegistry := types.NewInterfaceRegistry() + interfaceRegistry := NewInterfaceRegistry() keyscodec.RegisterInterfaces(interfaceRegistry) std.RegisterInterfaces(interfaceRegistry) exchange.RegisterInterfaces(interfaceRegistry) @@ -205,12 +228,12 @@ func newContext( } if keyInfo.PubKey != nil { - address, err := keyInfo.GetAddress() + keyInfoAddress, err := keyInfo.GetAddress() if err != nil { panic(err) } clientCtx = clientCtx.WithKeyring(kb) - clientCtx = clientCtx.WithFromAddress(address) + clientCtx = clientCtx.WithFromAddress(keyInfoAddress) clientCtx = clientCtx.WithFromName(keyInfo.Name) clientCtx = clientCtx.WithFrom(keyInfo.Name) } diff --git a/client/chain/keys.go b/client/chain/keys.go index f23a380b..c29d8bd4 100644 --- a/client/chain/keys.go +++ b/client/chain/keys.go @@ -9,7 +9,6 @@ import ( "path/filepath" "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" cosmcrypto "github.com/cosmos/cosmos-sdk/crypto" "github.com/cosmos/cosmos-sdk/crypto/keyring" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -36,7 +35,7 @@ func InitCosmosKeyring( cosmosUseLedger bool, ) (cosmtypes.AccAddress, keyring.Keyring, error) { switch { - case len(cosmosPrivKey) > 0: + case cosmosPrivKey != "": if cosmosUseLedger { err := errors.New("cannot combine ledger and privkey options") return emptyCosmosAddress, nil, err @@ -48,7 +47,7 @@ func InitCosmosKeyring( return emptyCosmosAddress, nil, err } - // Specfic to Injective chain with Ethermint keys + // Specific to Injective chain with Ethermint keys // Should be secp256k1.PrivKey for generic Cosmos chain cosmosAccPk := ðsecp256k1.PrivKey{ Key: pkBytes, @@ -59,7 +58,7 @@ func InitCosmosKeyring( var keyName string // check that if cosmos 'From' specified separately, it must match the provided privkey, - if len(cosmosKeyFrom) > 0 { + if cosmosKeyFrom != "" { addressFrom, err := cosmtypes.AccAddressFromBech32(cosmosKeyFrom) if err == nil { if !bytes.Equal(addressFrom.Bytes(), addressFromPk.Bytes()) { @@ -72,7 +71,7 @@ func InitCosmosKeyring( } } - if len(keyName) == 0 { + if keyName == "" { keyName = defaultKeyringKeyName } @@ -80,7 +79,7 @@ func InitCosmosKeyring( kb, err := KeyringForPrivKey(keyName, cosmosAccPk) return addressFromPk, kb, err - case len(cosmosKeyFrom) > 0: + case cosmosKeyFrom != "": var fromIsAddress bool addressFrom, err := cosmtypes.AccAddressFromBech32(cosmosKeyFrom) if err == nil { @@ -88,7 +87,7 @@ func InitCosmosKeyring( } var passReader io.Reader = os.Stdin - if len(cosmosKeyPassphrase) > 0 { + if cosmosKeyPassphrase != "" { passReader = newPassReader(cosmosKeyPassphrase) } @@ -190,7 +189,7 @@ func (r *passReader) Read(p []byte) (n int, err error) { } func getCryptoCodec() *codec.ProtoCodec { - registry := types.NewInterfaceRegistry() + registry := NewInterfaceRegistry() crypto_cdc.RegisterInterfaces(registry) return codec.NewProtoCodec(registry) } diff --git a/client/chain/markets_assistant.go b/client/chain/markets_assistant.go index 10b2b188..a01635bd 100644 --- a/client/chain/markets_assistant.go +++ b/client/chain/markets_assistant.go @@ -21,6 +21,15 @@ import ( var legacyMarketAssistantLazyInitialization sync.Once var legacyMarketAssistant MarketsAssistant +type TokenMetadata interface { + GetName() string + GetAddress() string + GetSymbol() string + GetLogo() string + GetDecimals() int32 + GetUpdatedAt() int64 +} + type MarketsAssistant struct { tokensBySymbol map[string]core.Token tokensByDenom map[string]core.Token @@ -112,22 +121,20 @@ func NewMarketsAssistant(networkName string) (MarketsAssistant, error) { assistant.derivativeMarkets[market.Id] = market } - } else { - if sectionName != "DEFAULT" { - tokenDecimals, _ := section.Key("decimals").Int() - newToken := core.Token{ - Name: sectionName, - Symbol: sectionName, - Denom: section.Key("peggy_denom").String(), - Address: "", - Decimals: int32(tokenDecimals), - Logo: "", - Updated: -1, - } - - assistant.tokensByDenom[newToken.Denom] = newToken - assistant.tokensBySymbol[newToken.Symbol] = newToken + } else if sectionName != "DEFAULT" { + tokenDecimals, _ := section.Key("decimals").Int() + newToken := core.Token{ + Name: sectionName, + Symbol: sectionName, + Denom: section.Key("peggy_denom").String(), + Address: "", + Decimals: int32(tokenDecimals), + Logo: "", + Updated: -1, } + + assistant.tokensByDenom[newToken.Denom] = newToken + assistant.tokensBySymbol[newToken.Symbol] = newToken } } } @@ -140,6 +147,18 @@ func NewMarketsAssistant(networkName string) (MarketsAssistant, error) { func NewMarketsAssistantInitializedFromChain(ctx context.Context, exchangeClient exchange.ExchangeClient) (MarketsAssistant, error) { assistant := newMarketsAssistant() + + officialTokens, err := core.LoadTokens(exchangeClient.GetNetwork().OfficialTokensListURL) + if err == nil { + for i := range officialTokens { + tokenMetadata := officialTokens[i] + if tokenMetadata.Denom != "" { + // add tokens to the assistant ensuring all of them get assigned a unique symbol + tokenRepresentation(tokenMetadata.GetSymbol(), tokenMetadata, tokenMetadata.Denom, &assistant) + } + } + } + spotMarketsRequest := spotExchangePB.MarketsRequest{ MarketStatus: "active", } @@ -150,40 +169,42 @@ func NewMarketsAssistantInitializedFromChain(ctx context.Context, exchangeClient } for _, marketInfo := range spotMarkets.GetMarkets() { - if len(marketInfo.GetBaseTokenMeta().GetSymbol()) > 0 && len(marketInfo.GetQuoteTokenMeta().GetSymbol()) > 0 { - var baseTokenSymbol, quoteTokenSymbol string - if strings.Contains(marketInfo.GetTicker(), "/") { - baseAndQuote := strings.Split(marketInfo.GetTicker(), "/") - baseTokenSymbol, quoteTokenSymbol = baseAndQuote[0], baseAndQuote[1] - } else { - baseTokenSymbol = marketInfo.GetBaseTokenMeta().GetSymbol() - quoteTokenSymbol = marketInfo.GetQuoteTokenMeta().GetSymbol() - } + if marketInfo.GetBaseTokenMeta().GetSymbol() == "" || marketInfo.GetQuoteTokenMeta().GetSymbol() == "" { + continue + } - baseToken := spotTokenRepresentation(baseTokenSymbol, marketInfo.GetBaseTokenMeta(), marketInfo.GetBaseDenom(), &assistant) - quoteToken := spotTokenRepresentation(quoteTokenSymbol, marketInfo.GetQuoteTokenMeta(), marketInfo.GetQuoteDenom(), &assistant) - - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetServiceProviderFee()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize()) - - market := core.SpotMarket{ - Id: marketInfo.GetMarketId(), - Status: marketInfo.GetMarketStatus(), - Ticker: marketInfo.GetTicker(), - BaseToken: baseToken, - QuoteToken: quoteToken, - MakerFeeRate: makerFeeRate, - TakerFeeRate: takerFeeRate, - ServiceProviderFee: serviceProviderFee, - MinPriceTickSize: minPriceTickSize, - MinQuantityTickSize: minQuantityTickSize, - } + var baseTokenSymbol, quoteTokenSymbol string + if strings.Contains(marketInfo.GetTicker(), "/") { + baseAndQuote := strings.Split(marketInfo.GetTicker(), "/") + baseTokenSymbol, quoteTokenSymbol = baseAndQuote[0], baseAndQuote[1] + } else { + baseTokenSymbol = marketInfo.GetBaseTokenMeta().GetSymbol() + quoteTokenSymbol = marketInfo.GetQuoteTokenMeta().GetSymbol() + } - assistant.spotMarkets[market.Id] = market + baseToken := tokenRepresentation(baseTokenSymbol, marketInfo.GetBaseTokenMeta(), marketInfo.GetBaseDenom(), &assistant) + quoteToken := tokenRepresentation(quoteTokenSymbol, marketInfo.GetQuoteTokenMeta(), marketInfo.GetQuoteDenom(), &assistant) + + makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate()) + takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate()) + serviceProviderFee := decimal.RequireFromString(marketInfo.GetServiceProviderFee()) + minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize()) + + market := core.SpotMarket{ + Id: marketInfo.GetMarketId(), + Status: marketInfo.GetMarketStatus(), + Ticker: marketInfo.GetTicker(), + BaseToken: baseToken, + QuoteToken: quoteToken, + MakerFeeRate: makerFeeRate, + TakerFeeRate: takerFeeRate, + ServiceProviderFee: serviceProviderFee, + MinPriceTickSize: minPriceTickSize, + MinQuantityTickSize: minQuantityTickSize, } + + assistant.spotMarkets[market.Id] = market } derivativeMarketsRequest := derivativeExchangePB.MarketsRequest{ @@ -196,39 +217,41 @@ func NewMarketsAssistantInitializedFromChain(ctx context.Context, exchangeClient } for _, marketInfo := range derivativeMarkets.GetMarkets() { - if len(marketInfo.GetQuoteTokenMeta().GetSymbol()) > 0 { - quoteTokenSymbol := marketInfo.GetQuoteTokenMeta().GetSymbol() - - quoteToken := derivativeTokenRepresentation(quoteTokenSymbol, marketInfo.GetQuoteTokenMeta(), marketInfo.GetQuoteDenom(), &assistant) - - initialMarginRatio := decimal.RequireFromString(marketInfo.GetInitialMarginRatio()) - maintenanceMarginRatio := decimal.RequireFromString(marketInfo.GetMaintenanceMarginRatio()) - makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate()) - takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate()) - serviceProviderFee := decimal.RequireFromString(marketInfo.GetServiceProviderFee()) - minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize()) - minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize()) - - market := core.DerivativeMarket{ - Id: marketInfo.GetMarketId(), - Status: marketInfo.GetMarketStatus(), - Ticker: marketInfo.GetTicker(), - OracleBase: marketInfo.GetOracleBase(), - OracleQuote: marketInfo.GetOracleQuote(), - OracleType: marketInfo.GetOracleType(), - OracleScaleFactor: marketInfo.GetOracleScaleFactor(), - InitialMarginRatio: initialMarginRatio, - MaintenanceMarginRatio: maintenanceMarginRatio, - QuoteToken: quoteToken, - MakerFeeRate: makerFeeRate, - TakerFeeRate: takerFeeRate, - ServiceProviderFee: serviceProviderFee, - MinPriceTickSize: minPriceTickSize, - MinQuantityTickSize: minQuantityTickSize, - } + if marketInfo.GetQuoteTokenMeta().GetSymbol() == "" { + continue + } - assistant.derivativeMarkets[market.Id] = market + quoteTokenSymbol := marketInfo.GetQuoteTokenMeta().GetSymbol() + + quoteToken := tokenRepresentation(quoteTokenSymbol, marketInfo.GetQuoteTokenMeta(), marketInfo.GetQuoteDenom(), &assistant) + + initialMarginRatio := decimal.RequireFromString(marketInfo.GetInitialMarginRatio()) + maintenanceMarginRatio := decimal.RequireFromString(marketInfo.GetMaintenanceMarginRatio()) + makerFeeRate := decimal.RequireFromString(marketInfo.GetMakerFeeRate()) + takerFeeRate := decimal.RequireFromString(marketInfo.GetTakerFeeRate()) + serviceProviderFee := decimal.RequireFromString(marketInfo.GetServiceProviderFee()) + minPriceTickSize := decimal.RequireFromString(marketInfo.GetMinPriceTickSize()) + minQuantityTickSize := decimal.RequireFromString(marketInfo.GetMinQuantityTickSize()) + + market := core.DerivativeMarket{ + Id: marketInfo.GetMarketId(), + Status: marketInfo.GetMarketStatus(), + Ticker: marketInfo.GetTicker(), + OracleBase: marketInfo.GetOracleBase(), + OracleQuote: marketInfo.GetOracleQuote(), + OracleType: marketInfo.GetOracleType(), + OracleScaleFactor: marketInfo.GetOracleScaleFactor(), + InitialMarginRatio: initialMarginRatio, + MaintenanceMarginRatio: maintenanceMarginRatio, + QuoteToken: quoteToken, + MakerFeeRate: makerFeeRate, + TakerFeeRate: takerFeeRate, + ServiceProviderFee: serviceProviderFee, + MinPriceTickSize: minPriceTickSize, + MinQuantityTickSize: minQuantityTickSize, } + + assistant.derivativeMarkets[market.Id] = market } return assistant, nil @@ -245,7 +268,7 @@ func NewMarketsAssistantWithAllTokens(ctx context.Context, exchangeClient exchan return assistant, nil } -func uniqueSymbol(symbol string, denom string, tokenMetaSymbol string, tokenMetaName string, assistant MarketsAssistant) string { +func uniqueSymbol(symbol, denom, tokenMetaSymbol, tokenMetaName string, assistant MarketsAssistant) string { uniqueSymbol := denom _, isSymbolPresent := assistant.tokensBySymbol[symbol] if isSymbolPresent { @@ -265,30 +288,7 @@ func uniqueSymbol(symbol string, denom string, tokenMetaSymbol string, tokenMeta return uniqueSymbol } -func spotTokenRepresentation(symbol string, tokenMeta *spotExchangePB.TokenMeta, denom string, assistant *MarketsAssistant) core.Token { - _, isPresent := assistant.tokensByDenom[denom] - - if !isPresent { - uniqueSymbol := uniqueSymbol(symbol, denom, tokenMeta.GetSymbol(), tokenMeta.GetName(), *assistant) - - newToken := core.Token{ - Name: tokenMeta.GetName(), - Symbol: symbol, - Denom: denom, - Address: tokenMeta.GetAddress(), - Decimals: tokenMeta.GetDecimals(), - Logo: tokenMeta.GetLogo(), - Updated: tokenMeta.GetUpdatedAt(), - } - - assistant.tokensByDenom[denom] = newToken - assistant.tokensBySymbol[uniqueSymbol] = newToken - } - - return assistant.tokensByDenom[denom] -} - -func derivativeTokenRepresentation(symbol string, tokenMeta *derivativeExchangePB.TokenMeta, denom string, assistant *MarketsAssistant) core.Token { +func tokenRepresentation(symbol string, tokenMeta TokenMetadata, denom string, assistant *MarketsAssistant) core.Token { _, isPresent := assistant.tokensByDenom[denom] if !isPresent { @@ -343,7 +343,8 @@ func (assistant MarketsAssistant) initializeTokensFromChainDenoms(ctx context.Co denomsMetadata = append(denomsMetadata, result.GetMetadatas()...) } - for _, denomMetadata := range denomsMetadata { + for i := range denomsMetadata { + denomMetadata := denomsMetadata[i] symbol := denomMetadata.GetSymbol() denom := denomMetadata.GetBase() diff --git a/client/chain/markets_assistant_test.go b/client/chain/markets_assistant_test.go index 12ffb0bd..a2e5dc26 100644 --- a/client/chain/markets_assistant_test.go +++ b/client/chain/markets_assistant_test.go @@ -2,9 +2,13 @@ package chain import ( "context" + "net/http" + "net/http/httptest" "strings" "testing" + "github.com/InjectiveLabs/sdk-go/client/common" + "github.com/InjectiveLabs/sdk-go/client/exchange" derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" spotExchangePB "github.com/InjectiveLabs/sdk-go/exchange/spot_exchange_rpc/pb" @@ -13,7 +17,17 @@ import ( ) func TestMarketAssistantCreationUsingMarketsFromExchange(t *testing.T) { + httpServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte("[]")) + })) + defer httpServer.Close() + + network := common.NewNetwork() + network.OfficialTokensListURL = httpServer.URL + mockExchange := exchange.MockExchangeClient{} + mockExchange.Network = network var spotMarketInfos []*spotExchangePB.SpotMarketInfo var derivativeMarketInfos []*derivativeExchangePB.DerivativeMarketInfo injUsdtSpotMarketInfo := createINJUSDTSpotMarketInfo() @@ -74,7 +88,17 @@ func TestMarketAssistantCreationUsingMarketsFromExchange(t *testing.T) { } func TestMarketAssistantCreationWithAllTokens(t *testing.T) { + httpServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte("[]")) + })) + defer httpServer.Close() + + network := common.NewNetwork() + network.OfficialTokensListURL = httpServer.URL + mockExchange := exchange.MockExchangeClient{} + mockExchange.Network = network mockChain := MockChainClient{} smartDenomMetadata := createSmartDenomMetadata() diff --git a/client/chain/tx_factory.go b/client/chain/tx_factory.go index e70fef12..ec7e8284 100644 --- a/client/chain/tx_factory.go +++ b/client/chain/tx_factory.go @@ -14,5 +14,6 @@ func NewTxFactory(clientCtx client.Context) tx.Factory { WithSimulateAndExecute(true). WithGasAdjustment(1.5). WithChainID(clientCtx.ChainID). - WithSignMode(signing.SignMode_SIGN_MODE_DIRECT) + WithSignMode(signing.SignMode_SIGN_MODE_DIRECT). + WithFromName(clientCtx.GetFromName()) } diff --git a/client/common/api_request_assistant.go b/client/common/api_request_assistant.go new file mode 100644 index 00000000..1dd4acee --- /dev/null +++ b/client/common/api_request_assistant.go @@ -0,0 +1,37 @@ +package common + +import ( + "context" + + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" +) + +type APICall[Q any, R any] func(ctx context.Context, in *Q, opts ...grpc.CallOption) (*R, error) +type APIStreamCall[Q any, S grpc.ClientStream] func(ctx context.Context, in *Q, opts ...grpc.CallOption) (S, error) + +func ExecuteCall[Q any, R any](ctx context.Context, cookieAssistant CookieAssistant, call APICall[Q, R], in *Q) (*R, error) { + var header metadata.MD + localCtx := metadata.NewOutgoingContext(ctx, cookieAssistant.RealMetadata()) + + response, err := call(localCtx, in, grpc.Header(&header)) + + cookieAssistant.ProcessResponseMetadata(header) + + return response, err +} + +func ExecuteStreamCall[Q any, S grpc.ClientStream](ctx context.Context, cookieAssistant CookieAssistant, call APIStreamCall[Q, S], in *Q) (S, error) { + localCtx := metadata.NewOutgoingContext(ctx, cookieAssistant.RealMetadata()) + + stream, callError := call(localCtx, in) + + if callError == nil { + header, err := stream.Header() + if err == nil { + cookieAssistant.ProcessResponseMetadata(header) + } + } + + return stream, callError +} diff --git a/client/common/network.go b/client/common/network.go index ec50a01b..4714f997 100644 --- a/client/common/network.go +++ b/client/common/network.go @@ -15,7 +15,9 @@ import ( ) const ( - SessionRenewalOffset = 2 * time.Minute + MainnetTokensListURL = "https://github.com/InjectiveLabs/injective-lists/raw/master/tokens/mainnet.json" // nolint:gosec // not credentials, just the link to the public tokens list + TestnetTokensListURL = "https://github.com/InjectiveLabs/injective-lists/raw/master/tokens/testnet.json" // nolint:gosec // not credentials, just the link to the public tokens list + DevnetTokensListURL = "https://github.com/InjectiveLabs/injective-lists/raw/master/tokens/devnet.json" // nolint:gosec // not credentials, just the link to the public tokens list ) func cookieByName(cookies []*http.Cookie, key string) *http.Cookie { @@ -41,6 +43,8 @@ func (provider *MetadataProvider) metadata() metadata.MD { type CookieAssistant interface { Metadata(provider MetadataProvider) (string, error) + RealMetadata() metadata.MD + ProcessResponseMetadata(header metadata.MD) } type ExpiringCookieAssistant struct { @@ -62,7 +66,7 @@ func (assistant *ExpiringCookieAssistant) initializeCookie(provider MetadataProv } func (assistant *ExpiringCookieAssistant) checkCookieExpiration() { - //borrow http request to parse cookie + // borrow http request to parse cookie header := http.Header{} header.Add("Cookie", assistant.cookie) request := http.Request{Header: header} @@ -74,7 +78,7 @@ func (assistant *ExpiringCookieAssistant) checkCookieExpiration() { if err == nil { timestampDiff := time.Until(expirationTime) - if timestampDiff < SessionRenewalOffset { + if timestampDiff < 0 { assistant.cookie = "" } } @@ -95,6 +99,22 @@ func (assistant *ExpiringCookieAssistant) Metadata(provider MetadataProvider) (s return cookie, nil } +func (assistant *ExpiringCookieAssistant) RealMetadata() metadata.MD { + newMetadata := metadata.Pairs() + assistant.checkCookieExpiration() + if assistant.cookie != "" { + newMetadata.Append("cookie", assistant.cookie) + } + return newMetadata +} + +func (assistant *ExpiringCookieAssistant) ProcessResponseMetadata(header metadata.MD) { + cookieInfo := header.Get("set-cookie") + if len(cookieInfo) > 0 { + assistant.cookie = cookieInfo[0] + } +} + func TestnetKubernetesCookieAssistant() ExpiringCookieAssistant { assistant := ExpiringCookieAssistant{} assistant.expirationKey = "Expires" @@ -138,45 +158,72 @@ func (assistant *BareMetalLoadBalancedCookieAssistant) Metadata(provider Metadat return assistant.cookie, nil } +func (assistant *BareMetalLoadBalancedCookieAssistant) RealMetadata() metadata.MD { + newMetadata := metadata.Pairs() + if assistant.cookie != "" { + newMetadata.Append("cookie", assistant.cookie) + } + return newMetadata +} + +func (assistant *BareMetalLoadBalancedCookieAssistant) ProcessResponseMetadata(header metadata.MD) { + cookieInfo := header.Get("set-cookie") + if len(cookieInfo) > 0 { + assistant.cookie = cookieInfo[0] + } +} + type DisabledCookieAssistant struct{} func (assistant *DisabledCookieAssistant) Metadata(provider MetadataProvider) (string, error) { return "", nil } +func (assistant *DisabledCookieAssistant) RealMetadata() metadata.MD { + return metadata.Pairs() +} + +func (assistant *DisabledCookieAssistant) ProcessResponseMetadata(header metadata.MD) {} + type Network struct { LcdEndpoint string TmEndpoint string ChainGrpcEndpoint string ChainStreamGrpcEndpoint string - ChainTlsCert credentials.TransportCredentials + ChainTLSCert credentials.TransportCredentials ExchangeGrpcEndpoint string ExplorerGrpcEndpoint string - ExchangeTlsCert credentials.TransportCredentials - ExplorerTlsCert credentials.TransportCredentials + ExchangeTLSCert credentials.TransportCredentials + ExplorerTLSCert credentials.TransportCredentials ChainId string - Fee_denom string + FeeDenom string Name string - chainCookieAssistant CookieAssistant - exchangeCookieAssistant CookieAssistant - explorerCookieAssistant CookieAssistant -} - -func (network *Network) ChainMetadata(provider MetadataProvider) (string, error) { - return network.chainCookieAssistant.Metadata(provider) -} - -func (network *Network) ExchangeMetadata(provider MetadataProvider) (string, error) { - return network.exchangeCookieAssistant.Metadata(provider) -} - -func (network *Network) ExplorerMetadata(provider MetadataProvider) (string, error) { - return network.explorerCookieAssistant.Metadata(provider) + ChainCookieAssistant CookieAssistant + ExchangeCookieAssistant CookieAssistant + ExplorerCookieAssistant CookieAssistant + OfficialTokensListURL string } -func LoadNetwork(name string, node string) Network { +func LoadNetwork(name, node string) Network { switch name { + case "local": + return Network{ + LcdEndpoint: "http://localhost:10337", + TmEndpoint: "http://localhost:26657", + ChainGrpcEndpoint: "tcp://localhost:9900", + ChainStreamGrpcEndpoint: "tcp://localhost:9999", + ExchangeGrpcEndpoint: "tcp://localhost:9910", + ExplorerGrpcEndpoint: "tcp://localhost:9911", + ChainId: "injective-1", + FeeDenom: "inj", + Name: "local", + ChainCookieAssistant: &DisabledCookieAssistant{}, + ExchangeCookieAssistant: &DisabledCookieAssistant{}, + ExplorerCookieAssistant: &DisabledCookieAssistant{}, + OfficialTokensListURL: MainnetTokensListURL, + } + case "devnet-1": return Network{ LcdEndpoint: "https://devnet-1.lcd.injective.dev", @@ -186,11 +233,12 @@ func LoadNetwork(name string, node string) Network { ExchangeGrpcEndpoint: "tcp://devnet-1.api.injective.dev:9910", ExplorerGrpcEndpoint: "tcp://devnet-1.api.injective.dev:9911", ChainId: "injective-777", - Fee_denom: "inj", + FeeDenom: "inj", Name: "devnet-1", - chainCookieAssistant: &DisabledCookieAssistant{}, - exchangeCookieAssistant: &DisabledCookieAssistant{}, - explorerCookieAssistant: &DisabledCookieAssistant{}, + ChainCookieAssistant: &DisabledCookieAssistant{}, + ExchangeCookieAssistant: &DisabledCookieAssistant{}, + ExplorerCookieAssistant: &DisabledCookieAssistant{}, + OfficialTokensListURL: DevnetTokensListURL, } case "devnet": return Network{ @@ -201,11 +249,12 @@ func LoadNetwork(name string, node string) Network { ExchangeGrpcEndpoint: "tcp://devnet.injective.dev:9910", ExplorerGrpcEndpoint: "tcp://devnet.api.injective.dev:9911", ChainId: "injective-777", - Fee_denom: "inj", + FeeDenom: "inj", Name: "devnet", - chainCookieAssistant: &DisabledCookieAssistant{}, - exchangeCookieAssistant: &DisabledCookieAssistant{}, - explorerCookieAssistant: &DisabledCookieAssistant{}, + ChainCookieAssistant: &DisabledCookieAssistant{}, + ExchangeCookieAssistant: &DisabledCookieAssistant{}, + ExplorerCookieAssistant: &DisabledCookieAssistant{}, + OfficialTokensListURL: DevnetTokensListURL, } case "testnet": validNodes := []string{"lb", "sentry"} @@ -214,7 +263,7 @@ func LoadNetwork(name string, node string) Network { } var lcdEndpoint, tmEndpoint, chainGrpcEndpoint, chainStreamGrpcEndpoint, exchangeGrpcEndpoint, explorerGrpcEndpoint string - var chainTlsCert, exchangeTlsCert, explorerTlsCert credentials.TransportCredentials + var chainTLSCert, exchangeTLSCert, explorerTLSCert credentials.TransportCredentials var chainCookieAssistant, exchangeCookieAssistant, explorerCookieAssistant CookieAssistant if node == "lb" { lcdEndpoint = "https://testnet.sentry.lcd.injective.network:443" @@ -223,9 +272,9 @@ func LoadNetwork(name string, node string) Network { chainStreamGrpcEndpoint = "testnet.sentry.chain.stream.injective.network:443" exchangeGrpcEndpoint = "testnet.sentry.exchange.grpc.injective.network:443" explorerGrpcEndpoint = "testnet.sentry.explorer.grpc.injective.network:443" - chainTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - exchangeTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - explorerTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + chainTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + exchangeTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + explorerTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) chainCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} exchangeCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} explorerCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} @@ -236,9 +285,9 @@ func LoadNetwork(name string, node string) Network { chainStreamGrpcEndpoint = "testnet.chain.stream.injective.network:443" exchangeGrpcEndpoint = "testnet.exchange.grpc.injective.network:443" explorerGrpcEndpoint = "testnet.explorer.grpc.injective.network:443" - chainTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - exchangeTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - explorerTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + chainTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + exchangeTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + explorerTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) chainCookieAssistant = &DisabledCookieAssistant{} exchangeCookieAssistant = &DisabledCookieAssistant{} explorerCookieAssistant = &DisabledCookieAssistant{} @@ -249,17 +298,18 @@ func LoadNetwork(name string, node string) Network { TmEndpoint: tmEndpoint, ChainGrpcEndpoint: chainGrpcEndpoint, ChainStreamGrpcEndpoint: chainStreamGrpcEndpoint, - ChainTlsCert: chainTlsCert, + ChainTLSCert: chainTLSCert, ExchangeGrpcEndpoint: exchangeGrpcEndpoint, - ExchangeTlsCert: exchangeTlsCert, + ExchangeTLSCert: exchangeTLSCert, ExplorerGrpcEndpoint: explorerGrpcEndpoint, - ExplorerTlsCert: explorerTlsCert, + ExplorerTLSCert: explorerTLSCert, ChainId: "injective-888", - Fee_denom: "inj", + FeeDenom: "inj", Name: "testnet", - chainCookieAssistant: chainCookieAssistant, - exchangeCookieAssistant: exchangeCookieAssistant, - explorerCookieAssistant: explorerCookieAssistant, + ChainCookieAssistant: chainCookieAssistant, + ExchangeCookieAssistant: exchangeCookieAssistant, + ExplorerCookieAssistant: explorerCookieAssistant, + OfficialTokensListURL: TestnetTokensListURL, } case "mainnet": validNodes := []string{"lb"} @@ -267,7 +317,7 @@ func LoadNetwork(name string, node string) Network { panic(fmt.Sprintf("invalid node %s for %s", node, name)) } var lcdEndpoint, tmEndpoint, chainGrpcEndpoint, chainStreamGrpcEndpoint, exchangeGrpcEndpoint, explorerGrpcEndpoint string - var chainTlsCert, exchangeTlsCert, explorerTlsCert credentials.TransportCredentials + var chainTLSCert, exchangeTLSCert, explorerTLSCert credentials.TransportCredentials var chainCookieAssistant, exchangeCookieAssistant, explorerCookieAssistant CookieAssistant lcdEndpoint = "https://sentry.lcd.injective.network" @@ -276,9 +326,9 @@ func LoadNetwork(name string, node string) Network { chainStreamGrpcEndpoint = "sentry.chain.stream.injective.network:443" exchangeGrpcEndpoint = "sentry.exchange.grpc.injective.network:443" explorerGrpcEndpoint = "sentry.explorer.grpc.injective.network:443" - chainTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - exchangeTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) - explorerTlsCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + chainTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + exchangeTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) + explorerTLSCert = credentials.NewServerTLSFromCert(&tls.Certificate{}) chainCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} exchangeCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} explorerCookieAssistant = &BareMetalLoadBalancedCookieAssistant{} @@ -288,30 +338,33 @@ func LoadNetwork(name string, node string) Network { TmEndpoint: tmEndpoint, ChainGrpcEndpoint: chainGrpcEndpoint, ChainStreamGrpcEndpoint: chainStreamGrpcEndpoint, - ChainTlsCert: chainTlsCert, + ChainTLSCert: chainTLSCert, ExchangeGrpcEndpoint: exchangeGrpcEndpoint, - ExchangeTlsCert: exchangeTlsCert, + ExchangeTLSCert: exchangeTLSCert, ExplorerGrpcEndpoint: explorerGrpcEndpoint, - ExplorerTlsCert: explorerTlsCert, + ExplorerTLSCert: explorerTLSCert, ChainId: "injective-1", - Fee_denom: "inj", + FeeDenom: "inj", Name: "mainnet", - chainCookieAssistant: chainCookieAssistant, - exchangeCookieAssistant: exchangeCookieAssistant, - explorerCookieAssistant: explorerCookieAssistant, + ChainCookieAssistant: chainCookieAssistant, + ExchangeCookieAssistant: exchangeCookieAssistant, + ExplorerCookieAssistant: explorerCookieAssistant, + OfficialTokensListURL: MainnetTokensListURL, } - } - return Network{} + default: + panic(fmt.Sprintf("invalid network %s", name)) + } } // NewNetwork returns a new Network instance with all cookie assistants disabled. // It can be used to setup a custom environment from scratch. func NewNetwork() Network { return Network{ - chainCookieAssistant: &DisabledCookieAssistant{}, - exchangeCookieAssistant: &DisabledCookieAssistant{}, - explorerCookieAssistant: &DisabledCookieAssistant{}, + ChainCookieAssistant: &DisabledCookieAssistant{}, + ExchangeCookieAssistant: &DisabledCookieAssistant{}, + ExplorerCookieAssistant: &DisabledCookieAssistant{}, + OfficialTokensListURL: MainnetTokensListURL, } } @@ -339,8 +392,8 @@ func Connect(protoAddr string) (net.Conn, error) { // ProtocolAndAddress splits an address into the protocol and address components. // For instance, "tcp://127.0.0.1:8080" will be split into "tcp" and "127.0.0.1:8080". // If the address has no protocol prefix, the default is "tcp". -func ProtocolAndAddress(listenAddr string) (string, string) { - protocol, address := "tcp", listenAddr +func ProtocolAndAddress(listenAddr string) (protocol, address string) { + protocol, address = "tcp", listenAddr parts := strings.SplitN(address, "://", 2) if len(parts) == 2 { protocol, address = parts[0], parts[1] diff --git a/client/common/network_test.go b/client/common/network_test.go index 235c580e..3006b35e 100644 --- a/client/common/network_test.go +++ b/client/common/network_test.go @@ -10,227 +10,120 @@ import ( func TestMainnetKubernetesLoadBalancedCookieAssistant(t *testing.T) { assistant := MainnetKubernetesCookieAssistant() - expectedCookie := "GCLB=CMOO2-DdvKWMqQE; path=/; HttpOnly; expires=Sat, 16-Sep-2023 18:26:00 GMT" + expectedCookie := fmt.Sprintf("GCLB=CMOO2-DdvKWMqQE; path=/; HttpOnly; expires=%s", time.Now().Add(5*time.Hour).Format("Mon, 02-Jan-2006 15:04:05 MST")) - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", expectedCookie) - return md - } - - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) + localMetadata := metadata.Pairs("set-cookie", expectedCookie) - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } + assistant.ProcessResponseMetadata(localMetadata) + assistantMetadata := assistant.RealMetadata() + cookieInfo := assistantMetadata.Get("cookie") - if cookie != expectedCookie { - t.Fatalf("The parsed cookie is different than the expected cookie") + if len(cookieInfo) > 0 { + cookie := cookieInfo[0] + if cookie != expectedCookie { + t.Fatalf("The parsed cookie is different than the expected cookie") + } + } else { + t.Fatalf("The cookie was not parsed") } } func TestMainnetKubernetesLoadBalancedCookieAssistantRemovesExpiredCookie(t *testing.T) { assistant := MainnetKubernetesCookieAssistant() tt := time.Now() - closeExpirationTime := tt.Add(30 * time.Second) + closeExpirationTime := tt.Add(-30 * time.Second) - soonToExpireCookie := fmt.Sprintf( + expiredCookie := fmt.Sprintf( "GCLB=CMOO2-DdvKWMqQE; path=/; HttpOnly; expires=%s", closeExpirationTime.Format("Mon, 02-Jan-2006 15:04:05 MST"), ) - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", soonToExpireCookie) - return md - } - - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) - - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != soonToExpireCookie { - t.Fatalf("The parsed cookie is different than the expected cookie") - } - - nextExpirationTime := tt.Add(5 * time.Minute) - secondCookie := fmt.Sprintf( - "GCLB=CMOO2-DdvKWMqQE; path=/; HttpOnly; expires=%s", - nextExpirationTime.Format("Mon, 02-Jan-2006 15:04:05 MST"), - ) - - providerFunc = func() metadata.MD { - md := metadata.Pairs("set-cookie", secondCookie) - return md - } - - provider = NewMetadataProvider(providerFunc) - cookie, err = assistant.Metadata(provider) + localMetadata := metadata.Pairs("set-cookie", expiredCookie) - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } + assistant.ProcessResponseMetadata(localMetadata) + cookieInfo := assistant.RealMetadata() - if cookie != secondCookie { + if len(cookieInfo) > 0 { t.Fatalf("The expired cookie was not removed") } - farFutureTime := tt.Add(5 * time.Hour) - notRequiredCookie := fmt.Sprintf( - "GCLB=CMOO2-DdvKWMqQE; path=/; HttpOnly; expires=%s", - farFutureTime.Format("Mon, 02-Jan-2006 15:04:05 MST"), - ) - - providerFunc = func() metadata.MD { - md := metadata.Pairs("set-cookie", notRequiredCookie) - return md - } - - provider = NewMetadataProvider(providerFunc) - cookie, err = assistant.Metadata(provider) - - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != secondCookie { - t.Fatalf("The cookie assistant removed a cookie that was not expired") - } - } func TestTestnetKubernetesLoadBalancedCookieAssistant(t *testing.T) { assistant := TestnetKubernetesCookieAssistant() - expectedCookie := "grpc-cookie=d97c7a00bcb7bc8b69b26fb0303b60d4; Expires=Sun, 17-Sep-23 13:18:08 GMT; Max-Age=172800; Path=/; Secure; HttpOnly" + expectedCookie := fmt.Sprintf( + "grpc-cookie=d97c7a00bcb7bc8b69b26fb0303b60d4; Expires=%s; Max-Age=172800; Path=/; Secure; HttpOnly", + time.Now().Add(5*time.Hour).Format("Mon, 02-Jan-06 15:04:05 MST"), + ) - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", expectedCookie) - return md - } + localMetadata := metadata.Pairs("set-cookie", expectedCookie) - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) + assistant.ProcessResponseMetadata(localMetadata) + assistantMetadata := assistant.RealMetadata() + cookieInfo := assistantMetadata.Get("cookie") - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != expectedCookie { - t.Fatalf("The parsed cookie is different than the expected cookie") + if len(cookieInfo) > 0 { + cookie := cookieInfo[0] + if cookie != expectedCookie { + t.Fatalf("The parsed cookie is different than the expected cookie") + } + } else { + t.Fatalf("The cookie was not parsed") } } func TestTestnetKubernetesLoadBalancedCookieAssistantRemovesExpiredCookie(t *testing.T) { assistant := TestnetKubernetesCookieAssistant() tt := time.Now() - closeExpirationTime := tt.Add(30 * time.Second) + closeExpirationTime := tt.Add(-30 * time.Second) - soonToExpireCookie := fmt.Sprintf( + expiredCookie := fmt.Sprintf( "grpc-cookie=d97c7a00bcb7bc8b69b26fb0303b60d4; Expires=%s; Max-Age=172800; Path=/; Secure; HttpOnly", closeExpirationTime.Format("Mon, 02-Jan-06 15:04:05 MST"), ) - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", soonToExpireCookie) - return md - } - - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) - - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } + localMetadata := metadata.Pairs("set-cookie", expiredCookie) - if cookie != soonToExpireCookie { - t.Fatalf("The parsed cookie is different than the expected cookie") - } + assistant.ProcessResponseMetadata(localMetadata) + cookieInfo := assistant.RealMetadata() - nextExpirationTime := tt.Add(5 * time.Minute) - secondCookie := fmt.Sprintf( - "grpc-cookie=d97c7a00bcb7bc8b69b26fb0303b60d4; Expires=%s; Max-Age=172800; Path=/; Secure; HttpOnly", - nextExpirationTime.Format("Mon, 02-Jan-06 15:04:05 MST"), - ) - - providerFunc = func() metadata.MD { - md := metadata.Pairs("set-cookie", secondCookie) - return md - } - - provider = NewMetadataProvider(providerFunc) - cookie, err = assistant.Metadata(provider) - - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != secondCookie { + if len(cookieInfo) > 0 { t.Fatalf("The expired cookie was not removed") } - farFutureTime := tt.Add(5 * time.Hour) - notRequiredCookie := fmt.Sprintf( - "grpc-cookie=d97c7a00bcb7bc8b69b26fb0303b60d4; Expires=%s; Max-Age=172800; Path=/; Secure; HttpOnly", - farFutureTime.Format("Mon, 02-Jan-06 15:04:05 MST"), - ) - - providerFunc = func() metadata.MD { - md := metadata.Pairs("set-cookie", notRequiredCookie) - return md - } - - provider = NewMetadataProvider(providerFunc) - cookie, err = assistant.Metadata(provider) - - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != secondCookie { - t.Fatalf("The cookie assistant removed a cookie that was not expired") - } - } func TestBareMetalLoadBalancedCookieAssistant(t *testing.T) { assistant := BareMetalLoadBalancedCookieAssistant{} expectedCookie := "lb=706c9476f31159d415afe3e9172972618b8ab99455c2daa799199540e6d31a1a; Path=/" - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", expectedCookie) - return md - } + localMetadata := metadata.Pairs("set-cookie", expectedCookie) - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) + assistant.ProcessResponseMetadata(localMetadata) + assistantMetadata := assistant.RealMetadata() + cookieInfo := assistantMetadata.Get("cookie") - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } - - if cookie != expectedCookie { - t.Fatalf("The parsed cookie is different than the expected cookie") + if len(cookieInfo) > 0 { + cookie := cookieInfo[0] + if cookie != expectedCookie { + t.Fatalf("The parsed cookie is different than the expected cookie") + } + } else { + t.Fatalf("The cookie was not parsed") } } func TestDisabledCookieAssistant(t *testing.T) { assistant := DisabledCookieAssistant{} providedCookie := "lb=706c9476f31159d415afe3e9172972618b8ab99455c2daa799199540e6d31a1a; Path=/" - providerFunc := func() metadata.MD { - md := metadata.Pairs("set-cookie", providedCookie) - return md - } - provider := NewMetadataProvider(providerFunc) - cookie, err := assistant.Metadata(provider) + localMetadata := metadata.Pairs("set-cookie", providedCookie) - if err != nil { - t.Errorf("Error parsing the cookie string %v", err) - } + assistant.ProcessResponseMetadata(localMetadata) + assistantMetadata := assistant.RealMetadata() + cookieInfo := assistantMetadata.Get("cookie") - if cookie != "" { - t.Fatalf("The parsed cookie is different than the expected cookie") + if len(cookieInfo) > 0 { + t.Fatalf("The disabled cookie assistant should not return any cookie") } } diff --git a/client/common/options.go b/client/common/options.go index 59706cd1..17526a59 100644 --- a/client/common/options.go +++ b/client/common/options.go @@ -19,15 +19,18 @@ func init() { } type ClientOptions struct { - GasPrices string - TLSCert credentials.TransportCredentials - TxFactory *tx.Factory + GasPrices string + TLSCert credentials.TransportCredentials + TxFactory *tx.Factory + ShouldFixSequenceMismatch bool } type ClientOption func(opts *ClientOptions) error func DefaultClientOptions() *ClientOptions { - return &ClientOptions{} + return &ClientOptions{ + ShouldFixSequenceMismatch: true, + } } func OptionGasPrices(gasPrices string) ClientOption { @@ -48,7 +51,7 @@ func OptionTLSCert(tlsCert credentials.TransportCredentials) ClientOption { if tlsCert == nil { log.Infoln("client does not use grpc secure transport") } else { - log.Infoln("succesfully load server TLS cert") + log.Infoln("successfully load server TLS cert") } opts.TLSCert = tlsCert return nil diff --git a/client/common/util.go b/client/common/util.go index 7254ea51..80416fcb 100644 --- a/client/common/util.go +++ b/client/common/util.go @@ -25,7 +25,7 @@ func HexToBytes(str string) ([]byte, error) { return data, nil } -func LoadTlsCert(path string, serverName string) credentials.TransportCredentials { +func LoadTLSCert(path, serverName string) credentials.TransportCredentials { if path == "" { return nil } @@ -43,6 +43,7 @@ func LoadTlsCert(path string, serverName string) credentials.TransportCredential } // get domain from tcp://domain:port domain := strings.Split(serverName, ":")[1][2:] + // nolint:gosec // we ignore the MinVersion validation because it's not a security issue config := &tls.Config{ RootCAs: certPool, ServerName: domain, diff --git a/client/core/market.go b/client/core/market.go index e6f9fe88..3e6c273b 100644 --- a/client/core/market.go +++ b/client/core/market.go @@ -1,8 +1,8 @@ package core import ( + sdkmath "cosmossdk.io/math" "github.com/InjectiveLabs/sdk-go/client/common" - cosmtypes "github.com/cosmos/cosmos-sdk/types" "github.com/shopspring/decimal" ) @@ -21,37 +21,37 @@ type SpotMarket struct { MinQuantityTickSize decimal.Decimal } -func (spotMarket SpotMarket) QuantityToChainFormat(humanReadableValue decimal.Decimal) cosmtypes.Dec { +func (spotMarket SpotMarket) QuantityToChainFormat(humanReadableValue decimal.Decimal) sdkmath.LegacyDec { chainFormattedValue := humanReadableValue.Mul(decimal.New(1, spotMarket.BaseToken.Decimals)) quantizedValue := chainFormattedValue.DivRound(spotMarket.MinQuantityTickSize, 0).Mul(spotMarket.MinQuantityTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedValue.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedValue.String()) return valueInChainFormat } -func (spotMarket SpotMarket) PriceToChainFormat(humanReadableValue decimal.Decimal) cosmtypes.Dec { +func (spotMarket SpotMarket) PriceToChainFormat(humanReadableValue decimal.Decimal) sdkmath.LegacyDec { decimals := spotMarket.QuoteToken.Decimals - spotMarket.BaseToken.Decimals chainFormattedValue := humanReadableValue.Mul(decimal.New(1, decimals)) quantizedValue := chainFormattedValue.DivRound(spotMarket.MinPriceTickSize, 0).Mul(spotMarket.MinPriceTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedValue.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedValue.String()) return valueInChainFormat } -func (spotMarket SpotMarket) QuantityFromChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (spotMarket SpotMarket) QuantityFromChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return decimal.RequireFromString(chainValue.String()).Div(decimal.New(1, spotMarket.BaseToken.Decimals)) } -func (spotMarket SpotMarket) PriceFromChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (spotMarket SpotMarket) PriceFromChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { decimals := spotMarket.BaseToken.Decimals - spotMarket.QuoteToken.Decimals return decimal.RequireFromString(chainValue.String()).Mul(decimal.New(1, decimals)) } -func (spotMarket SpotMarket) QuantityFromExtendedChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (spotMarket SpotMarket) QuantityFromExtendedChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return common.RemoveExtraDecimals(spotMarket.QuantityFromChainFormat(chainValue), AdditionalChainFormatDecimals) } -func (spotMarket SpotMarket) PriceFromExtendedChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (spotMarket SpotMarket) PriceFromExtendedChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return common.RemoveExtraDecimals(spotMarket.PriceFromChainFormat(chainValue), AdditionalChainFormatDecimals) } @@ -73,33 +73,33 @@ type DerivativeMarket struct { MinQuantityTickSize decimal.Decimal } -func (derivativeMarket DerivativeMarket) QuantityToChainFormat(humanReadableValue decimal.Decimal) cosmtypes.Dec { +func (derivativeMarket DerivativeMarket) QuantityToChainFormat(humanReadableValue decimal.Decimal) sdkmath.LegacyDec { chainFormattedValue := humanReadableValue quantizedValue := chainFormattedValue.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedValue.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedValue.String()) return valueInChainFormat } -func (derivativeMarket DerivativeMarket) PriceToChainFormat(humanReadableValue decimal.Decimal) cosmtypes.Dec { +func (derivativeMarket DerivativeMarket) PriceToChainFormat(humanReadableValue decimal.Decimal) sdkmath.LegacyDec { decimals := derivativeMarket.QuoteToken.Decimals chainFormattedValue := humanReadableValue.Mul(decimal.New(1, decimals)) quantizedValue := chainFormattedValue.DivRound(derivativeMarket.MinPriceTickSize, 0).Mul(derivativeMarket.MinPriceTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedValue.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedValue.String()) return valueInChainFormat } -func (derivativeMarket DerivativeMarket) MarginToChainFormat(humanReadableValue decimal.Decimal) cosmtypes.Dec { +func (derivativeMarket DerivativeMarket) MarginToChainFormat(humanReadableValue decimal.Decimal) sdkmath.LegacyDec { decimals := derivativeMarket.QuoteToken.Decimals chainFormattedValue := humanReadableValue.Mul(decimal.New(1, decimals)) quantizedValue := chainFormattedValue.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedValue.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedValue.String()) return valueInChainFormat } -func (derivativeMarket DerivativeMarket) CalculateMarginInChainFormat(humanReadableQuantity decimal.Decimal, humanReadablePrice decimal.Decimal, leverage decimal.Decimal) cosmtypes.Dec { +func (derivativeMarket DerivativeMarket) CalculateMarginInChainFormat(humanReadableQuantity, humanReadablePrice, leverage decimal.Decimal) sdkmath.LegacyDec { chainFormattedQuantity := humanReadableQuantity chainFormattedPrice := humanReadablePrice.Mul(decimal.New(1, derivativeMarket.QuoteToken.Decimals)) @@ -107,33 +107,33 @@ func (derivativeMarket DerivativeMarket) CalculateMarginInChainFormat(humanReada // We are using the min_quantity_tick_size to quantize the margin because that is the way margin is validated // in the chain (it might be changed to a min_notional in the future) quantizedMargin := margin.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - valueInChainFormat, _ := cosmtypes.NewDecFromStr(quantizedMargin.String()) + valueInChainFormat, _ := sdkmath.LegacyNewDecFromStr(quantizedMargin.String()) return valueInChainFormat } -func (derivativeMarket DerivativeMarket) QuantityFromChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) QuantityFromChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return decimal.RequireFromString(chainValue.String()) } -func (derivativeMarket DerivativeMarket) PriceFromChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) PriceFromChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { decimals := -derivativeMarket.QuoteToken.Decimals return decimal.RequireFromString(chainValue.String()).Mul(decimal.New(1, decimals)) } -func (derivativeMarket DerivativeMarket) MarginFromChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) MarginFromChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { decimals := -derivativeMarket.QuoteToken.Decimals return decimal.RequireFromString(chainValue.String()).Mul(decimal.New(1, decimals)) } -func (derivativeMarket DerivativeMarket) QuantityFromExtendedChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) QuantityFromExtendedChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return common.RemoveExtraDecimals(derivativeMarket.QuantityFromChainFormat(chainValue), AdditionalChainFormatDecimals) } -func (derivativeMarket DerivativeMarket) PriceFromExtendedChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) PriceFromExtendedChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return common.RemoveExtraDecimals(derivativeMarket.PriceFromChainFormat(chainValue), AdditionalChainFormatDecimals) } -func (derivativeMarket DerivativeMarket) MarginFromExtendedChainFormat(chainValue cosmtypes.Dec) decimal.Decimal { +func (derivativeMarket DerivativeMarket) MarginFromExtendedChainFormat(chainValue sdkmath.LegacyDec) decimal.Decimal { return common.RemoveExtraDecimals(derivativeMarket.MarginFromChainFormat(chainValue), AdditionalChainFormatDecimals) } diff --git a/client/core/market_test.go b/client/core/market_test.go index d80b246a..733b8be8 100644 --- a/client/core/market_test.go +++ b/client/core/market_test.go @@ -3,7 +3,8 @@ package core import ( "testing" - "github.com/cosmos/cosmos-sdk/types" + sdkmath "cosmossdk.io/math" + "github.com/huandu/go-assert" "github.com/shopspring/decimal" ) @@ -73,7 +74,7 @@ func TestConvertQuantityToChainFormatForSpotMarket(t *testing.T) { chainValue := spotMarket.QuantityToChainFormat(originalQuantity) expectedValue := originalQuantity.Mul(decimal.New(1, spotMarket.BaseToken.Decimals)) quantizedValue := expectedValue.DivRound(spotMarket.MinQuantityTickSize, 0).Mul(spotMarket.MinQuantityTickSize) - quantizedChainFormatValue := types.MustNewDecFromStr(quantizedValue.String()) + quantizedChainFormatValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, quantizedChainFormatValue.Equal(chainValue)) } @@ -86,7 +87,7 @@ func TestConvertPriceToChainFormatForSpotMarket(t *testing.T) { priceDecimals := spotMarket.QuoteToken.Decimals - spotMarket.BaseToken.Decimals expectedValue := originalPrice.Mul(decimal.New(1, priceDecimals)) quantizedValue := expectedValue.DivRound(spotMarket.MinPriceTickSize, 0).Mul(spotMarket.MinPriceTickSize) - quantizedChainFormatValue := types.MustNewDecFromStr(quantizedValue.String()) + quantizedChainFormatValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, quantizedChainFormatValue.Equal(chainValue)) } @@ -96,7 +97,7 @@ func TestConvertQuantityFromChainFormatForSpotMarket(t *testing.T) { expectedQuantity := decimal.RequireFromString("123.456") chainFormatQuantity := expectedQuantity.Mul(decimal.New(1, spotMarket.BaseToken.Decimals)) - humanReadableQuantity := spotMarket.QuantityFromChainFormat(types.MustNewDecFromStr(chainFormatQuantity.String())) + humanReadableQuantity := spotMarket.QuantityFromChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatQuantity.String())) assert.Assert(t, expectedQuantity.Equal(humanReadableQuantity)) } @@ -107,7 +108,7 @@ func TestConvertPriceFromChainFormatForSpotMarket(t *testing.T) { priceDecimals := spotMarket.QuoteToken.Decimals - spotMarket.BaseToken.Decimals chainFormatPrice := expectedPrice.Mul(decimal.New(1, priceDecimals)) - humanReadablePrice := spotMarket.PriceFromChainFormat(types.MustNewDecFromStr(chainFormatPrice.String())) + humanReadablePrice := spotMarket.PriceFromChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatPrice.String())) assert.Assert(t, expectedPrice.Equal(humanReadablePrice)) } @@ -117,7 +118,7 @@ func TestConvertQuantityFromExtendedChainFormatForSpotMarket(t *testing.T) { expectedQuantity := decimal.RequireFromString("123.456") chainFormatQuantity := expectedQuantity.Mul(decimal.New(1, spotMarket.BaseToken.Decimals)).Mul(decimal.New(1, AdditionalChainFormatDecimals)) - humanReadableQuantity := spotMarket.QuantityFromExtendedChainFormat(types.MustNewDecFromStr(chainFormatQuantity.String())) + humanReadableQuantity := spotMarket.QuantityFromExtendedChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatQuantity.String())) assert.Assert(t, expectedQuantity.Equal(humanReadableQuantity)) } @@ -128,12 +129,12 @@ func TestConvertPriceFromExtendedChainFormatForSpotMarket(t *testing.T) { priceDecimals := spotMarket.QuoteToken.Decimals - spotMarket.BaseToken.Decimals chainFormatPrice := expectedPrice.Mul(decimal.New(1, priceDecimals)).Mul(decimal.New(1, AdditionalChainFormatDecimals)) - humanReadablePrice := spotMarket.PriceFromExtendedChainFormat(types.MustNewDecFromStr(chainFormatPrice.String())) + humanReadablePrice := spotMarket.PriceFromExtendedChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatPrice.String())) assert.Assert(t, expectedPrice.Equal(humanReadablePrice)) } -//Derivative markets tests +// Derivative markets tests func TestConvertQuantityToChainFormatForDerivativeMarket(t *testing.T) { derivativeMarket := createBTCUSDTPerpMarket() @@ -141,7 +142,7 @@ func TestConvertQuantityToChainFormatForDerivativeMarket(t *testing.T) { chainValue := derivativeMarket.QuantityToChainFormat(originalQuantity) quantizedValue := originalQuantity.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - quantizedChainFormatValue := types.MustNewDecFromStr(quantizedValue.String()) + quantizedChainFormatValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, quantizedChainFormatValue.Equal(chainValue)) } @@ -154,7 +155,7 @@ func TestConvertPriceToChainFormatForDerivativeMarket(t *testing.T) { priceDecimals := derivativeMarket.QuoteToken.Decimals expectedValue := originalPrice.Mul(decimal.New(1, priceDecimals)) quantizedValue := expectedValue.DivRound(derivativeMarket.MinPriceTickSize, 0).Mul(derivativeMarket.MinPriceTickSize) - quantizedChainFormatValue := types.MustNewDecFromStr(quantizedValue.String()) + quantizedChainFormatValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, quantizedChainFormatValue.Equal(chainValue)) } @@ -167,7 +168,7 @@ func TestConvertMarginToChainFormatForDerivativeMarket(t *testing.T) { marginDecimals := derivativeMarket.QuoteToken.Decimals expectedValue := originalPrice.Mul(decimal.New(1, marginDecimals)) quantizedValue := expectedValue.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - quantizedChainFormatValue := types.MustNewDecFromStr(quantizedValue.String()) + quantizedChainFormatValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, quantizedChainFormatValue.Equal(chainValue)) } @@ -182,7 +183,7 @@ func TestCalculateMarginInChainFormatForDerivativeMarket(t *testing.T) { decimals := derivativeMarket.QuoteToken.Decimals expectedValue := originalQuantity.Mul(originalPrice).Div(originalLeverage).Mul(decimal.New(1, decimals)) quantizedValue := expectedValue.DivRound(derivativeMarket.MinQuantityTickSize, 0).Mul(derivativeMarket.MinQuantityTickSize) - legacyDecimalQuantizedValue := types.MustNewDecFromStr(quantizedValue.String()) + legacyDecimalQuantizedValue := sdkmath.LegacyMustNewDecFromStr(quantizedValue.String()) assert.Assert(t, chainValue.Equal(legacyDecimalQuantizedValue)) } @@ -192,7 +193,7 @@ func TestConvertQuantityFromChainFormatForDerivativeMarket(t *testing.T) { expectedQuantity := decimal.RequireFromString("123.456") chainFormatQuantity := expectedQuantity - humanReadableQuantity := derivativeMarket.QuantityFromChainFormat(types.MustNewDecFromStr(chainFormatQuantity.String())) + humanReadableQuantity := derivativeMarket.QuantityFromChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatQuantity.String())) assert.Assert(t, expectedQuantity.Equal(humanReadableQuantity)) } @@ -203,7 +204,7 @@ func TestConvertPriceFromChainFormatForDerivativeMarket(t *testing.T) { priceDecimals := derivativeMarket.QuoteToken.Decimals chainFormatPrice := expectedPrice.Mul(decimal.New(1, priceDecimals)) - humanReadablePrice := derivativeMarket.PriceFromChainFormat(types.MustNewDecFromStr(chainFormatPrice.String())) + humanReadablePrice := derivativeMarket.PriceFromChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatPrice.String())) assert.Assert(t, expectedPrice.Equal(humanReadablePrice)) } @@ -214,7 +215,7 @@ func TestConvertMarginFromChainFormatForDerivativeMarket(t *testing.T) { marginDecimals := derivativeMarket.QuoteToken.Decimals chainFormatMargin := expectedMargin.Mul(decimal.New(1, marginDecimals)) - humanReadablePrice := derivativeMarket.MarginFromChainFormat(types.MustNewDecFromStr(chainFormatMargin.String())) + humanReadablePrice := derivativeMarket.MarginFromChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatMargin.String())) assert.Assert(t, expectedMargin.Equal(humanReadablePrice)) } @@ -224,7 +225,7 @@ func TestConvertQuantityFromExtendedChainFormatForDerivativeMarket(t *testing.T) expectedQuantity := decimal.RequireFromString("123.456") chainFormatQuantity := expectedQuantity.Mul(decimal.New(1, AdditionalChainFormatDecimals)) - humanReadableQuantity := derivativeMarket.QuantityFromExtendedChainFormat(types.MustNewDecFromStr(chainFormatQuantity.String())) + humanReadableQuantity := derivativeMarket.QuantityFromExtendedChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatQuantity.String())) assert.Assert(t, expectedQuantity.Equal(humanReadableQuantity)) } @@ -235,7 +236,7 @@ func TestConvertPriceFromExtendedChainFormatForDerivativeMarket(t *testing.T) { priceDecimals := derivativeMarket.QuoteToken.Decimals chainFormatPrice := expectedPrice.Mul(decimal.New(1, priceDecimals)).Mul(decimal.New(1, AdditionalChainFormatDecimals)) - humanReadablePrice := derivativeMarket.PriceFromExtendedChainFormat(types.MustNewDecFromStr(chainFormatPrice.String())) + humanReadablePrice := derivativeMarket.PriceFromExtendedChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatPrice.String())) assert.Assert(t, expectedPrice.Equal(humanReadablePrice)) } @@ -246,7 +247,7 @@ func TestConvertMarginFromExtendedChainFormatForDerivativeMarket(t *testing.T) { marginDecimals := derivativeMarket.QuoteToken.Decimals chainFormatMargin := expectedMargin.Mul(decimal.New(1, marginDecimals)).Mul(decimal.New(1, AdditionalChainFormatDecimals)) - humanReadablePrice := derivativeMarket.MarginFromExtendedChainFormat(types.MustNewDecFromStr(chainFormatMargin.String())) + humanReadablePrice := derivativeMarket.MarginFromExtendedChainFormat(sdkmath.LegacyMustNewDecFromStr(chainFormatMargin.String())) assert.Assert(t, expectedMargin.Equal(humanReadablePrice)) } diff --git a/client/core/tokens_file_loader.go b/client/core/tokens_file_loader.go new file mode 100644 index 00000000..a0263d21 --- /dev/null +++ b/client/core/tokens_file_loader.go @@ -0,0 +1,67 @@ +package core + +import ( + "encoding/json" + "fmt" + "net/http" +) + +type TokenMetadata struct { + Address string `json:"address"` + IsNative bool `json:"isNative"` + TokenVerification string `json:"tokenVerification"` + Decimals int32 `json:"decimals"` + CoinGeckoId string `json:"coinGeckoId"` + Name string `json:"name"` + Symbol string `json:"symbol"` + Logo string `json:"logo"` + Creator string `json:"creator"` + Denom string `json:"denom"` + TokenType string `json:"tokenType"` + ExternalLogo string `json:"externalLogo"` +} + +func (tm TokenMetadata) GetName() string { + return tm.Name +} + +func (tm TokenMetadata) GetAddress() string { + return tm.Address +} + +func (tm TokenMetadata) GetSymbol() string { + return tm.Symbol +} + +func (tm TokenMetadata) GetLogo() string { + return tm.Logo +} + +func (tm TokenMetadata) GetDecimals() int32 { + return tm.Decimals +} + +func (tm TokenMetadata) GetUpdatedAt() int64 { + return -1 +} + +// LoadTokens loads tokens from the given file URL +func LoadTokens(tokensFileURL string) ([]TokenMetadata, error) { + var tokensMetadata []TokenMetadata + response, err := http.Get(tokensFileURL) // nolint:gosec // we want the URL to be parameterizable + if err != nil { + return tokensMetadata, err + } + if 400 <= response.StatusCode { + return tokensMetadata, fmt.Errorf("failed to load tokens from %s: %s", tokensFileURL, response.Status) + } + defer response.Body.Close() + + decoder := json.NewDecoder(response.Body) + err = decoder.Decode(&tokensMetadata) + if err != nil { + return make([]TokenMetadata, 0), err + } + + return tokensMetadata, nil +} diff --git a/client/core/tokens_file_loader_test.go b/client/core/tokens_file_loader_test.go new file mode 100644 index 00000000..8fbc27cd --- /dev/null +++ b/client/core/tokens_file_loader_test.go @@ -0,0 +1,74 @@ +package core + +import ( + "encoding/json" + "fmt" + "net/http" + "net/http/httptest" + "testing" + + "gotest.tools/v3/assert" +) + +func TestLoadTokensFromUrl(t *testing.T) { + tokensMetadata := make([]TokenMetadata, 2) + tokensMetadata = append(tokensMetadata, TokenMetadata{ + Address: "", + IsNative: true, + Decimals: 9, + Symbol: "SOL", + Name: "Solana", + Logo: "https://imagedelivery.net/DYKOWp0iCc0sIkF-2e4dNw/2aa4deed-fa31-4d1a-ba0a-d698b84f3800/public", + Creator: "inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu", + CoinGeckoId: "solana", + Denom: "", + TokenType: "spl", + TokenVerification: "verified", + ExternalLogo: "solana.png", + }, + ) + tokensMetadata = append(tokensMetadata, TokenMetadata{ + Address: "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", + IsNative: false, + Decimals: 18, + Symbol: "WMATIC", + Name: "Wrapped Matic", + Logo: "https://imagedelivery.net/DYKOWp0iCc0sIkF-2e4dNw/0d061e1e-a746-4b19-1399-8187b8bb1700/public", + Creator: "inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0", + CoinGeckoId: "wmatic", + Denom: "0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270", + TokenType: "evm", + TokenVerification: "verified", + ExternalLogo: "polygon.png", + }, + ) + + metadataString, err := json.Marshal(tokensMetadata) + assert.NilError(t, err) + + httpServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + _, _ = w.Write(metadataString) + })) + defer httpServer.Close() + + loadedTokens, err := LoadTokens(httpServer.URL) + assert.NilError(t, err) + + assert.Equal(t, len(loadedTokens), len(tokensMetadata)) + + for i, metadata := range tokensMetadata { + assert.Equal(t, loadedTokens[i], metadata) + } +} + +func TestLoadTokensFromUrlReturnsNoTokensWhenRequestErrorHappens(t *testing.T) { + httpServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusNotFound) + })) + defer httpServer.Close() + + loadedTokens, err := LoadTokens(httpServer.URL) + assert.Error(t, err, fmt.Sprintf("failed to load tokens from %s: %v %s", httpServer.URL, http.StatusNotFound, http.StatusText(http.StatusNotFound))) + assert.Equal(t, len(loadedTokens), 0) +} diff --git a/client/exchange/exchange.go b/client/exchange/exchange.go index 17577000..cc4b3f3b 100644 --- a/client/exchange/exchange.go +++ b/client/exchange/exchange.go @@ -3,7 +3,6 @@ package exchange import ( "context" "fmt" - "time" "google.golang.org/grpc/credentials/insecure" @@ -11,14 +10,11 @@ import ( accountPB "github.com/InjectiveLabs/sdk-go/exchange/accounts_rpc/pb" auctionPB "github.com/InjectiveLabs/sdk-go/exchange/auction_rpc/pb" derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" - explorerPB "github.com/InjectiveLabs/sdk-go/exchange/explorer_rpc/pb" insurancePB "github.com/InjectiveLabs/sdk-go/exchange/insurance_rpc/pb" metaPB "github.com/InjectiveLabs/sdk-go/exchange/meta_rpc/pb" oraclePB "github.com/InjectiveLabs/sdk-go/exchange/oracle_rpc/pb" portfolioExchangePB "github.com/InjectiveLabs/sdk-go/exchange/portfolio_rpc/pb" spotExchangePB "github.com/InjectiveLabs/sdk-go/exchange/spot_exchange_rpc/pb" - "google.golang.org/grpc/metadata" - log "github.com/InjectiveLabs/suplog" "github.com/pkg/errors" "google.golang.org/grpc" @@ -28,11 +24,11 @@ type ExchangeClient interface { QueryClient() *grpc.ClientConn GetDerivativeMarket(ctx context.Context, marketId string) (*derivativeExchangePB.MarketResponse, error) GetDerivativeOrderbookV2(ctx context.Context, marketId string) (*derivativeExchangePB.OrderbookV2Response, error) - GetDerivativeOrderbooksV2(ctx context.Context, marketIds []string) (*derivativeExchangePB.OrderbooksV2Response, error) + GetDerivativeOrderbooksV2(ctx context.Context, marketIDs []string) (*derivativeExchangePB.OrderbooksV2Response, error) // StreamDerivativeOrderbook deprecated API - StreamDerivativeOrderbookV2(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) - StreamDerivativeOrderbookUpdate(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) - StreamDerivativeMarket(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) + StreamDerivativeOrderbookV2(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) + StreamDerivativeOrderbookUpdate(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) + StreamDerivativeMarket(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) GetDerivativeOrders(ctx context.Context, req *derivativeExchangePB.OrdersRequest) (*derivativeExchangePB.OrdersResponse, error) GetDerivativeMarkets(ctx context.Context, req *derivativeExchangePB.MarketsRequest) (*derivativeExchangePB.MarketsResponse, error) GetDerivativePositions(ctx context.Context, req *derivativeExchangePB.PositionsRequest) (*derivativeExchangePB.PositionsResponse, error) @@ -67,13 +63,13 @@ type ExchangeClient interface { GetRewards(ctx context.Context, req *accountPB.RewardsRequest) (*accountPB.RewardsResponse, error) GetSpotOrders(ctx context.Context, req *spotExchangePB.OrdersRequest) (*spotExchangePB.OrdersResponse, error) GetSpotOrderbookV2(ctx context.Context, marketId string) (*spotExchangePB.OrderbookV2Response, error) - GetSpotOrderbooksV2(ctx context.Context, marketIds []string) (*spotExchangePB.OrderbooksV2Response, error) + GetSpotOrderbooksV2(ctx context.Context, marketIDs []string) (*spotExchangePB.OrderbooksV2Response, error) // StreamSpotOrderbook deprecated API - StreamSpotOrderbookV2(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) - StreamSpotOrderbookUpdate(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) + StreamSpotOrderbookV2(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) + StreamSpotOrderbookUpdate(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) GetSpotMarkets(ctx context.Context, req *spotExchangePB.MarketsRequest) (*spotExchangePB.MarketsResponse, error) GetSpotMarket(ctx context.Context, marketId string) (*spotExchangePB.MarketResponse, error) - StreamSpotMarket(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) + StreamSpotMarket(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) StreamSpotOrders(ctx context.Context, req *spotExchangePB.StreamOrdersRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrdersClient, error) GetSpotTrades(ctx context.Context, req *spotExchangePB.TradesRequest) (*spotExchangePB.TradesResponse, error) GetSpotTradesV2(ctx context.Context, req *spotExchangePB.TradesV2Request) (*spotExchangePB.TradesV2Response, error) @@ -94,14 +90,15 @@ type ExchangeClient interface { GetInfo(ctx context.Context, req *metaPB.InfoRequest) (*metaPB.InfoResponse, error) GetVersion(ctx context.Context, req *metaPB.VersionRequest) (*metaPB.VersionResponse, error) Ping(ctx context.Context, req *metaPB.PingRequest) (*metaPB.PingResponse, error) + GetNetwork() common.Network Close() } func NewExchangeClient(network common.Network, options ...common.ClientOption) (ExchangeClient, error) { // process options opts := common.DefaultClientOptions() - if network.ChainTlsCert != nil { - options = append(options, common.OptionTLSCert(network.ExchangeTlsCert)) + if network.ChainTLSCert != nil { + options = append(options, common.OptionTLSCert(network.ExchangeTLSCert)) } for _, opt := range options { if err := opt(opts); err != nil { @@ -131,7 +128,6 @@ func NewExchangeClient(network common.Network, options ...common.ClientOption) ( conn: conn, metaClient: metaPB.NewInjectiveMetaRPCClient(conn), - explorerClient: explorerPB.NewInjectiveExplorerRPCClient(conn), accountClient: accountPB.NewInjectiveAccountsRPCClient(conn), auctionClient: auctionPB.NewInjectiveAuctionRPCClient(conn), oracleClient: oraclePB.NewInjectiveOracleRPCClient(conn), @@ -156,7 +152,6 @@ type exchangeClient struct { logger log.Logger metaClient metaPB.InjectiveMetaRPCClient - explorerClient explorerPB.InjectiveExplorerRPCClient accountClient accountPB.InjectiveAccountsRPCClient auctionClient auctionPB.InjectiveAuctionRPCClient oracleClient oraclePB.InjectiveOracleRPCClient @@ -166,22 +161,6 @@ type exchangeClient struct { portfolioExchangeClient portfolioExchangePB.InjectivePortfolioRPCClient } -func (c *exchangeClient) requestCookie() metadata.MD { - var header metadata.MD - req := metaPB.InfoRequest{Timestamp: time.Now().UnixMilli()} - _, err := c.metaClient.Info(context.Background(), &req, grpc.Header(&header)) - if err != nil { - panic(err) - } - return header -} - -func (c *exchangeClient) getCookie(ctx context.Context) context.Context { - provider := common.NewMetadataProvider(c.requestCookie) - cookie, _ := c.network.ExchangeMetadata(provider) - return metadata.AppendToOutgoingContext(ctx, "cookie", cookie) -} - func (c *exchangeClient) QueryClient() *grpc.ClientConn { return c.conn } @@ -189,8 +168,7 @@ func (c *exchangeClient) QueryClient() *grpc.ClientConn { // Derivatives RPC func (c *exchangeClient) GetDerivativeOrders(ctx context.Context, req *derivativeExchangePB.OrdersRequest) (*derivativeExchangePB.OrdersResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.Orders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.Orders, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.OrdersResponse{}, err @@ -201,8 +179,7 @@ func (c *exchangeClient) GetDerivativeOrders(ctx context.Context, req *derivativ // Deprecated: Use GetDerivativePositionsV2 instead. func (c *exchangeClient) GetDerivativePositions(ctx context.Context, req *derivativeExchangePB.PositionsRequest) (*derivativeExchangePB.PositionsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.Positions(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.Positions, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.PositionsResponse{}, err @@ -212,8 +189,7 @@ func (c *exchangeClient) GetDerivativePositions(ctx context.Context, req *deriva } func (c *exchangeClient) GetDerivativePositionsV2(ctx context.Context, req *derivativeExchangePB.PositionsV2Request) (*derivativeExchangePB.PositionsV2Response, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.PositionsV2(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.PositionsV2, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.PositionsV2Response{}, err @@ -223,8 +199,7 @@ func (c *exchangeClient) GetDerivativePositionsV2(ctx context.Context, req *deri } func (c *exchangeClient) GetDerivativeLiquidablePositions(ctx context.Context, req *derivativeExchangePB.LiquidablePositionsRequest) (*derivativeExchangePB.LiquidablePositionsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.LiquidablePositions(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.LiquidablePositions, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.LiquidablePositionsResponse{}, err @@ -238,8 +213,7 @@ func (c *exchangeClient) GetDerivativeOrderbookV2(ctx context.Context, marketId MarketId: marketId, } - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.OrderbookV2(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.OrderbookV2, &req) if err != nil { fmt.Println(err) return &derivativeExchangePB.OrderbookV2Response{}, err @@ -248,13 +222,12 @@ func (c *exchangeClient) GetDerivativeOrderbookV2(ctx context.Context, marketId return res, nil } -func (c *exchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIds []string) (*derivativeExchangePB.OrderbooksV2Response, error) { +func (c *exchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIDs []string) (*derivativeExchangePB.OrderbooksV2Response, error) { req := derivativeExchangePB.OrderbooksV2Request{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.OrderbooksV2(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.OrderbooksV2, &req) if err != nil { fmt.Println(err) return &derivativeExchangePB.OrderbooksV2Response{}, err @@ -263,13 +236,13 @@ func (c *exchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketId return res, nil } -func (c *exchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) { +func (c *exchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) { req := derivativeExchangePB.StreamOrderbookV2Request{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamOrderbookV2(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamOrderbookV2, &req) + if err != nil { fmt.Println(err) return nil, err @@ -278,13 +251,13 @@ func (c *exchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, market return stream, nil } -func (c *exchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) { +func (c *exchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) { req := derivativeExchangePB.StreamOrderbookUpdateRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamOrderbookUpdate(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamOrderbookUpdate, &req) + if err != nil { fmt.Println(err) return nil, err @@ -294,8 +267,7 @@ func (c *exchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, ma } func (c *exchangeClient) GetDerivativeMarkets(ctx context.Context, req *derivativeExchangePB.MarketsRequest) (*derivativeExchangePB.MarketsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.Markets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.Markets, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.MarketsResponse{}, err @@ -309,8 +281,7 @@ func (c *exchangeClient) GetDerivativeMarket(ctx context.Context, marketId strin MarketId: marketId, } - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.Market(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.Market, &req) if err != nil { fmt.Println(err) return &derivativeExchangePB.MarketResponse{}, err @@ -319,13 +290,13 @@ func (c *exchangeClient) GetDerivativeMarket(ctx context.Context, marketId strin return res, nil } -func (c *exchangeClient) StreamDerivativeMarket(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) { +func (c *exchangeClient) StreamDerivativeMarket(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) { req := derivativeExchangePB.StreamMarketRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamMarket(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamMarket, &req) + if err != nil { fmt.Println(err) return nil, err @@ -335,8 +306,8 @@ func (c *exchangeClient) StreamDerivativeMarket(ctx context.Context, marketIds [ } func (c *exchangeClient) StreamDerivativePositions(ctx context.Context, req *derivativeExchangePB.StreamPositionsRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamPositionsClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamPositions(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamPositions, req) + if err != nil { fmt.Println(err) return nil, err @@ -346,8 +317,8 @@ func (c *exchangeClient) StreamDerivativePositions(ctx context.Context, req *der } func (c *exchangeClient) StreamDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamOrders(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamOrders, req) + if err != nil { fmt.Println(err) return nil, err @@ -357,8 +328,7 @@ func (c *exchangeClient) StreamDerivativeOrders(ctx context.Context, req *deriva } func (c *exchangeClient) GetDerivativeTrades(ctx context.Context, req *derivativeExchangePB.TradesRequest) (*derivativeExchangePB.TradesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.Trades(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.Trades, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.TradesResponse{}, err @@ -368,8 +338,7 @@ func (c *exchangeClient) GetDerivativeTrades(ctx context.Context, req *derivativ } func (c *exchangeClient) GetDerivativeTradesV2(ctx context.Context, req *derivativeExchangePB.TradesV2Request) (*derivativeExchangePB.TradesV2Response, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.TradesV2(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.TradesV2, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.TradesV2Response{}, err @@ -379,8 +348,8 @@ func (c *exchangeClient) GetDerivativeTradesV2(ctx context.Context, req *derivat } func (c *exchangeClient) StreamDerivativeTrades(ctx context.Context, req *derivativeExchangePB.StreamTradesRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamTradesClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamTrades(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamTrades, req) + if err != nil { fmt.Println(err) return nil, err @@ -390,8 +359,8 @@ func (c *exchangeClient) StreamDerivativeTrades(ctx context.Context, req *deriva } func (c *exchangeClient) StreamDerivativeV2Trades(ctx context.Context, req *derivativeExchangePB.StreamTradesV2Request) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamTradesV2Client, error) { - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamTradesV2(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamTradesV2, req) + if err != nil { fmt.Println(err) return nil, err @@ -401,8 +370,8 @@ func (c *exchangeClient) StreamDerivativeV2Trades(ctx context.Context, req *deri } func (c *exchangeClient) GetSubaccountDerivativeOrdersList(ctx context.Context, req *derivativeExchangePB.SubaccountOrdersListRequest) (*derivativeExchangePB.SubaccountOrdersListResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.SubaccountOrdersList(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.SubaccountOrdersList, req) + if err != nil { fmt.Println(err) return &derivativeExchangePB.SubaccountOrdersListResponse{}, err @@ -412,8 +381,8 @@ func (c *exchangeClient) GetSubaccountDerivativeOrdersList(ctx context.Context, } func (c *exchangeClient) GetSubaccountDerivativeTradesList(ctx context.Context, req *derivativeExchangePB.SubaccountTradesListRequest) (*derivativeExchangePB.SubaccountTradesListResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.SubaccountTradesList(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.SubaccountTradesList, req) + if err != nil { fmt.Println(err) return &derivativeExchangePB.SubaccountTradesListResponse{}, err @@ -423,8 +392,7 @@ func (c *exchangeClient) GetSubaccountDerivativeTradesList(ctx context.Context, } func (c *exchangeClient) GetHistoricalDerivativeOrders(ctx context.Context, req *derivativeExchangePB.OrdersHistoryRequest) (*derivativeExchangePB.OrdersHistoryResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.OrdersHistory(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.OrdersHistory, req) if err != nil { return &derivativeExchangePB.OrdersHistoryResponse{}, err } @@ -433,8 +401,8 @@ func (c *exchangeClient) GetHistoricalDerivativeOrders(ctx context.Context, req } func (c *exchangeClient) StreamHistoricalDerivativeOrders(ctx context.Context, req *derivativeExchangePB.StreamOrdersHistoryRequest) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrdersHistoryClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.derivativeExchangeClient.StreamOrdersHistory(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.StreamOrdersHistory, req) + if err != nil { fmt.Println(err) return nil, err @@ -444,8 +412,7 @@ func (c *exchangeClient) StreamHistoricalDerivativeOrders(ctx context.Context, r } func (c *exchangeClient) GetDerivativeFundingPayments(ctx context.Context, req *derivativeExchangePB.FundingPaymentsRequest) (*derivativeExchangePB.FundingPaymentsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.FundingPayments(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.FundingPayments, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.FundingPaymentsResponse{}, err @@ -455,8 +422,7 @@ func (c *exchangeClient) GetDerivativeFundingPayments(ctx context.Context, req * } func (c *exchangeClient) GetDerivativeFundingRates(ctx context.Context, req *derivativeExchangePB.FundingRatesRequest) (*derivativeExchangePB.FundingRatesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.derivativeExchangeClient.FundingRates(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.derivativeExchangeClient.FundingRates, req) if err != nil { fmt.Println(err) return &derivativeExchangePB.FundingRatesResponse{}, err @@ -467,7 +433,7 @@ func (c *exchangeClient) GetDerivativeFundingRates(ctx context.Context, req *der // Oracle RPC -func (c *exchangeClient) GetPrice(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error) { +func (c *exchangeClient) GetPrice(ctx context.Context, baseSymbol, quoteSymbol, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error) { req := oraclePB.PriceRequest{ BaseSymbol: baseSymbol, QuoteSymbol: quoteSymbol, @@ -475,8 +441,8 @@ func (c *exchangeClient) GetPrice(ctx context.Context, baseSymbol string, quoteS OracleScaleFactor: oracleScaleFactor, } - ctx = c.getCookie(ctx) - res, err := c.oracleClient.Price(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.Price, &req) + if err != nil { fmt.Println(err) return &oraclePB.PriceResponse{}, err @@ -488,8 +454,7 @@ func (c *exchangeClient) GetPrice(ctx context.Context, baseSymbol string, quoteS func (c *exchangeClient) GetOracleList(ctx context.Context) (*oraclePB.OracleListResponse, error) { req := oraclePB.OracleListRequest{} - ctx = c.getCookie(ctx) - res, err := c.oracleClient.OracleList(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.OracleList, &req) if err != nil { fmt.Println(err) return &oraclePB.OracleListResponse{}, err @@ -498,15 +463,15 @@ func (c *exchangeClient) GetOracleList(ctx context.Context) (*oraclePB.OracleLis return res, nil } -func (c *exchangeClient) StreamPrices(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) { +func (c *exchangeClient) StreamPrices(ctx context.Context, baseSymbol, quoteSymbol, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) { req := oraclePB.StreamPricesRequest{ BaseSymbol: baseSymbol, QuoteSymbol: quoteSymbol, OracleType: oracleType, } - ctx = c.getCookie(ctx) - stream, err := c.oracleClient.StreamPrices(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.oracleClient.StreamPrices, &req) + if err != nil { fmt.Println(err) return nil, err @@ -522,8 +487,7 @@ func (c *exchangeClient) GetAuction(ctx context.Context, round int64) (*auctionP Round: round, } - ctx = c.getCookie(ctx) - res, err := c.auctionClient.AuctionEndpoint(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.auctionClient.AuctionEndpoint, &req) if err != nil { fmt.Println(err) return &auctionPB.AuctionEndpointResponse{}, err @@ -535,8 +499,7 @@ func (c *exchangeClient) GetAuction(ctx context.Context, round int64) (*auctionP func (c *exchangeClient) GetAuctions(ctx context.Context) (*auctionPB.AuctionsResponse, error) { req := auctionPB.AuctionsRequest{} - ctx = c.getCookie(ctx) - res, err := c.auctionClient.Auctions(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.auctionClient.Auctions, &req) if err != nil { fmt.Println(err) return &auctionPB.AuctionsResponse{}, err @@ -548,8 +511,8 @@ func (c *exchangeClient) GetAuctions(ctx context.Context) (*auctionPB.AuctionsRe func (c *exchangeClient) StreamBids(ctx context.Context) (auctionPB.InjectiveAuctionRPC_StreamBidsClient, error) { req := auctionPB.StreamBidsRequest{} - ctx = c.getCookie(ctx) - stream, err := c.auctionClient.StreamBids(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.auctionClient.StreamBids, &req) + if err != nil { fmt.Println(err) return nil, err @@ -565,8 +528,8 @@ func (c *exchangeClient) GetSubaccountsList(ctx context.Context, accountAddress AccountAddress: accountAddress, } - ctx = c.getCookie(ctx) - res, err := c.accountClient.SubaccountsList(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.SubaccountsList, &req) + if err != nil { fmt.Println(err) return &accountPB.SubaccountsListResponse{}, err @@ -575,14 +538,14 @@ func (c *exchangeClient) GetSubaccountsList(ctx context.Context, accountAddress return res, nil } -func (c *exchangeClient) GetSubaccountBalance(ctx context.Context, subaccountId string, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) { +func (c *exchangeClient) GetSubaccountBalance(ctx context.Context, subaccountId, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) { req := accountPB.SubaccountBalanceEndpointRequest{ SubaccountId: subaccountId, Denom: denom, } - ctx = c.getCookie(ctx) - res, err := c.accountClient.SubaccountBalanceEndpoint(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.SubaccountBalanceEndpoint, &req) + if err != nil { fmt.Println(err) return &accountPB.SubaccountBalanceEndpointResponse{}, err @@ -596,8 +559,8 @@ func (c *exchangeClient) StreamSubaccountBalance(ctx context.Context, subaccount SubaccountId: subaccountId, } - ctx = c.getCookie(ctx) - stream, err := c.accountClient.StreamSubaccountBalance(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.StreamSubaccountBalance, &req) + if err != nil { fmt.Println(err) return nil, err @@ -611,8 +574,8 @@ func (c *exchangeClient) GetSubaccountBalancesList(ctx context.Context, subaccou SubaccountId: subaccountId, } - ctx = c.getCookie(ctx) - res, err := c.accountClient.SubaccountBalancesList(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.SubaccountBalancesList, &req) + if err != nil { fmt.Println(err) return &accountPB.SubaccountBalancesListResponse{}, err @@ -622,8 +585,8 @@ func (c *exchangeClient) GetSubaccountBalancesList(ctx context.Context, subaccou } func (c *exchangeClient) GetSubaccountHistory(ctx context.Context, req *accountPB.SubaccountHistoryRequest) (*accountPB.SubaccountHistoryResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.accountClient.SubaccountHistory(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.SubaccountHistory, req) + if err != nil { fmt.Println(err) return &accountPB.SubaccountHistoryResponse{}, err @@ -633,8 +596,8 @@ func (c *exchangeClient) GetSubaccountHistory(ctx context.Context, req *accountP } func (c *exchangeClient) GetSubaccountOrderSummary(ctx context.Context, req *accountPB.SubaccountOrderSummaryRequest) (*accountPB.SubaccountOrderSummaryResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.accountClient.SubaccountOrderSummary(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.SubaccountOrderSummary, req) + if err != nil { fmt.Println(err) return &accountPB.SubaccountOrderSummaryResponse{}, err @@ -644,8 +607,7 @@ func (c *exchangeClient) GetSubaccountOrderSummary(ctx context.Context, req *acc } func (c *exchangeClient) GetOrderStates(ctx context.Context, req *accountPB.OrderStatesRequest) (*accountPB.OrderStatesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.accountClient.OrderStates(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.OrderStates, req) if err != nil { fmt.Println(err) return &accountPB.OrderStatesResponse{}, err @@ -659,8 +621,8 @@ func (c *exchangeClient) GetPortfolio(ctx context.Context, accountAddress string AccountAddress: accountAddress, } - ctx = c.getCookie(ctx) - res, err := c.accountClient.Portfolio(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.Portfolio, &req) + if err != nil { fmt.Println(err) return &accountPB.PortfolioResponse{}, err @@ -670,8 +632,8 @@ func (c *exchangeClient) GetPortfolio(ctx context.Context, accountAddress string } func (c *exchangeClient) GetRewards(ctx context.Context, req *accountPB.RewardsRequest) (*accountPB.RewardsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.accountClient.Rewards(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.accountClient.Rewards, req) + if err != nil { fmt.Println(err) return &accountPB.RewardsResponse{}, err @@ -683,8 +645,8 @@ func (c *exchangeClient) GetRewards(ctx context.Context, req *accountPB.RewardsR // Spot RPC func (c *exchangeClient) GetSpotOrders(ctx context.Context, req *spotExchangePB.OrdersRequest) (*spotExchangePB.OrdersResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.Orders(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.Orders, req) + if err != nil { fmt.Println(err) return &spotExchangePB.OrdersResponse{}, err @@ -698,8 +660,8 @@ func (c *exchangeClient) GetSpotOrderbookV2(ctx context.Context, marketId string MarketId: marketId, } - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.OrderbookV2(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.OrderbookV2, &req) + if err != nil { fmt.Println(err) return &spotExchangePB.OrderbookV2Response{}, err @@ -708,13 +670,13 @@ func (c *exchangeClient) GetSpotOrderbookV2(ctx context.Context, marketId string return res, nil } -func (c *exchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIds []string) (*spotExchangePB.OrderbooksV2Response, error) { +func (c *exchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIDs []string) (*spotExchangePB.OrderbooksV2Response, error) { req := spotExchangePB.OrderbooksV2Request{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.OrderbooksV2(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.OrderbooksV2, &req) + if err != nil { fmt.Println(err) return &spotExchangePB.OrderbooksV2Response{}, err @@ -723,13 +685,13 @@ func (c *exchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIds []st return res, nil } -func (c *exchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) { +func (c *exchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) { req := spotExchangePB.StreamOrderbookUpdateRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamOrderbookUpdate(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamOrderbookUpdate, &req) + if err != nil { fmt.Println(err) return nil, err @@ -738,13 +700,13 @@ func (c *exchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketId return stream, nil } -func (c *exchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) { +func (c *exchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) { req := spotExchangePB.StreamOrderbookV2Request{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamOrderbookV2(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamOrderbookV2, &req) + if err != nil { fmt.Println(err) return nil, err @@ -754,8 +716,8 @@ func (c *exchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIds [] } func (c *exchangeClient) GetSpotMarkets(ctx context.Context, req *spotExchangePB.MarketsRequest) (*spotExchangePB.MarketsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.Markets(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.Markets, req) + if err != nil { fmt.Println(err) return &spotExchangePB.MarketsResponse{}, err @@ -769,8 +731,8 @@ func (c *exchangeClient) GetSpotMarket(ctx context.Context, marketId string) (*s MarketId: marketId, } - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.Market(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.Market, &req) + if err != nil { fmt.Println(err) return &spotExchangePB.MarketResponse{}, err @@ -779,13 +741,13 @@ func (c *exchangeClient) GetSpotMarket(ctx context.Context, marketId string) (*s return res, nil } -func (c *exchangeClient) StreamSpotMarket(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) { +func (c *exchangeClient) StreamSpotMarket(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) { req := spotExchangePB.StreamMarketsRequest{ - MarketIds: marketIds, + MarketIds: marketIDs, } - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamMarkets(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamMarkets, &req) + if err != nil { fmt.Println(err) return nil, err @@ -795,8 +757,8 @@ func (c *exchangeClient) StreamSpotMarket(ctx context.Context, marketIds []strin } func (c *exchangeClient) StreamSpotOrders(ctx context.Context, req *spotExchangePB.StreamOrdersRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrdersClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamOrders(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamOrders, req) + if err != nil { fmt.Println(err) return nil, err @@ -806,8 +768,8 @@ func (c *exchangeClient) StreamSpotOrders(ctx context.Context, req *spotExchange } func (c *exchangeClient) GetSpotTrades(ctx context.Context, req *spotExchangePB.TradesRequest) (*spotExchangePB.TradesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.Trades(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.Trades, req) + if err != nil { fmt.Println(err) return &spotExchangePB.TradesResponse{}, err @@ -817,8 +779,8 @@ func (c *exchangeClient) GetSpotTrades(ctx context.Context, req *spotExchangePB. } func (c *exchangeClient) GetSpotTradesV2(ctx context.Context, req *spotExchangePB.TradesV2Request) (*spotExchangePB.TradesV2Response, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.TradesV2(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.TradesV2, req) + if err != nil { fmt.Println(err) return &spotExchangePB.TradesV2Response{}, err @@ -828,8 +790,8 @@ func (c *exchangeClient) GetSpotTradesV2(ctx context.Context, req *spotExchangeP } func (c *exchangeClient) StreamSpotTrades(ctx context.Context, req *spotExchangePB.StreamTradesRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamTradesClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamTrades(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamTrades, req) + if err != nil { fmt.Println(err) return nil, err @@ -839,8 +801,8 @@ func (c *exchangeClient) StreamSpotTrades(ctx context.Context, req *spotExchange } func (c *exchangeClient) StreamSpotTradesV2(ctx context.Context, req *spotExchangePB.StreamTradesV2Request) (spotExchangePB.InjectiveSpotExchangeRPC_StreamTradesV2Client, error) { - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamTradesV2(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamTradesV2, req) + if err != nil { fmt.Println(err) return nil, err @@ -850,8 +812,8 @@ func (c *exchangeClient) StreamSpotTradesV2(ctx context.Context, req *spotExchan } func (c *exchangeClient) GetSubaccountSpotOrdersList(ctx context.Context, req *spotExchangePB.SubaccountOrdersListRequest) (*spotExchangePB.SubaccountOrdersListResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.SubaccountOrdersList(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.SubaccountOrdersList, req) + if err != nil { fmt.Println(err) return &spotExchangePB.SubaccountOrdersListResponse{}, err @@ -861,8 +823,8 @@ func (c *exchangeClient) GetSubaccountSpotOrdersList(ctx context.Context, req *s } func (c *exchangeClient) GetSubaccountSpotTradesList(ctx context.Context, req *spotExchangePB.SubaccountTradesListRequest) (*spotExchangePB.SubaccountTradesListResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.SubaccountTradesList(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.SubaccountTradesList, req) + if err != nil { fmt.Println(err) return &spotExchangePB.SubaccountTradesListResponse{}, err @@ -872,8 +834,7 @@ func (c *exchangeClient) GetSubaccountSpotTradesList(ctx context.Context, req *s } func (c *exchangeClient) GetHistoricalSpotOrders(ctx context.Context, req *spotExchangePB.OrdersHistoryRequest) (*spotExchangePB.OrdersHistoryResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.spotExchangeClient.OrdersHistory(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.OrdersHistory, req) if err != nil { return &spotExchangePB.OrdersHistoryResponse{}, err } @@ -882,8 +843,8 @@ func (c *exchangeClient) GetHistoricalSpotOrders(ctx context.Context, req *spotE } func (c *exchangeClient) StreamHistoricalSpotOrders(ctx context.Context, req *spotExchangePB.StreamOrdersHistoryRequest) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrdersHistoryClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.spotExchangeClient.StreamOrdersHistory(ctx, req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.spotExchangeClient.StreamOrdersHistory, req) + if err != nil { fmt.Println(err) return nil, err @@ -893,8 +854,7 @@ func (c *exchangeClient) StreamHistoricalSpotOrders(ctx context.Context, req *sp } func (c *exchangeClient) GetInsuranceFunds(ctx context.Context, req *insurancePB.FundsRequest) (*insurancePB.FundsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.insuranceClient.Funds(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.insuranceClient.Funds, req) if err != nil { fmt.Println(err) return &insurancePB.FundsResponse{}, err @@ -904,8 +864,8 @@ func (c *exchangeClient) GetInsuranceFunds(ctx context.Context, req *insurancePB } func (c *exchangeClient) GetRedemptions(ctx context.Context, req *insurancePB.RedemptionsRequest) (*insurancePB.RedemptionsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.insuranceClient.Redemptions(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.insuranceClient.Redemptions, req) + if err != nil { fmt.Println(err) return &insurancePB.RedemptionsResponse{}, err @@ -915,8 +875,8 @@ func (c *exchangeClient) GetRedemptions(ctx context.Context, req *insurancePB.Re } func (c *exchangeClient) Ping(ctx context.Context, req *metaPB.PingRequest) (*metaPB.PingResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.metaClient.Ping(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.metaClient.Ping, req) + if err != nil { fmt.Println(err) return &metaPB.PingResponse{}, err @@ -926,8 +886,8 @@ func (c *exchangeClient) Ping(ctx context.Context, req *metaPB.PingRequest) (*me } func (c *exchangeClient) GetVersion(ctx context.Context, req *metaPB.VersionRequest) (*metaPB.VersionResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.metaClient.Version(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.metaClient.Version, req) + if err != nil { fmt.Println(err) return &metaPB.VersionResponse{}, err @@ -937,8 +897,7 @@ func (c *exchangeClient) GetVersion(ctx context.Context, req *metaPB.VersionRequ } func (c *exchangeClient) GetInfo(ctx context.Context, req *metaPB.InfoRequest) (*metaPB.InfoResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.metaClient.Info(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.metaClient.Info, req) if err != nil { fmt.Println(err) return &metaPB.InfoResponse{}, err @@ -950,8 +909,8 @@ func (c *exchangeClient) GetInfo(ctx context.Context, req *metaPB.InfoRequest) ( func (c *exchangeClient) StreamKeepalive(ctx context.Context) (metaPB.InjectiveMetaRPC_StreamKeepaliveClient, error) { req := metaPB.StreamKeepaliveRequest{} - ctx = c.getCookie(ctx) - stream, err := c.metaClient.StreamKeepalive(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.metaClient.StreamKeepalive, &req) + if err != nil { fmt.Println(err) return nil, err @@ -962,10 +921,10 @@ func (c *exchangeClient) StreamKeepalive(ctx context.Context) (metaPB.InjectiveM // Deprecated: Use GetAccountPortfolioBalances instead. func (c *exchangeClient) GetAccountPortfolio(ctx context.Context, accountAddress string) (*portfolioExchangePB.AccountPortfolioResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.portfolioExchangeClient.AccountPortfolio(ctx, &portfolioExchangePB.AccountPortfolioRequest{ + req := &portfolioExchangePB.AccountPortfolioRequest{ AccountAddress: accountAddress, - }) + } + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.portfolioExchangeClient.AccountPortfolio, req) if err != nil { fmt.Println(err) return &portfolioExchangePB.AccountPortfolioResponse{}, err @@ -975,10 +934,10 @@ func (c *exchangeClient) GetAccountPortfolio(ctx context.Context, accountAddress } func (c *exchangeClient) GetAccountPortfolioBalances(ctx context.Context, accountAddress string) (*portfolioExchangePB.AccountPortfolioBalancesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.portfolioExchangeClient.AccountPortfolioBalances(ctx, &portfolioExchangePB.AccountPortfolioBalancesRequest{ + req := &portfolioExchangePB.AccountPortfolioBalancesRequest{ AccountAddress: accountAddress, - }) + } + res, err := common.ExecuteCall(ctx, c.network.ExchangeCookieAssistant, c.portfolioExchangeClient.AccountPortfolioBalances, req) if err != nil { fmt.Println(err) return &portfolioExchangePB.AccountPortfolioBalancesResponse{}, err @@ -987,13 +946,14 @@ func (c *exchangeClient) GetAccountPortfolioBalances(ctx context.Context, accoun return res, nil } -func (c *exchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddress string, subaccountId, balanceType string) (portfolioExchangePB.InjectivePortfolioRPC_StreamAccountPortfolioClient, error) { - ctx = c.getCookie(ctx) - stream, err := c.portfolioExchangeClient.StreamAccountPortfolio(ctx, &portfolioExchangePB.StreamAccountPortfolioRequest{ +func (c *exchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddress, subaccountId, balanceType string) (portfolioExchangePB.InjectivePortfolioRPC_StreamAccountPortfolioClient, error) { + req := &portfolioExchangePB.StreamAccountPortfolioRequest{ AccountAddress: accountAddress, SubaccountId: subaccountId, Type: balanceType, - }) + } + stream, err := common.ExecuteStreamCall(ctx, c.network.ExchangeCookieAssistant, c.portfolioExchangeClient.StreamAccountPortfolio, req) + if err != nil { fmt.Println(err) return nil, err @@ -1002,6 +962,10 @@ func (c *exchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddr return stream, nil } +func (c *exchangeClient) GetNetwork() common.Network { + return c.network +} + func (c *exchangeClient) Close() { c.conn.Close() } diff --git a/client/exchange/exchange_test_support.go b/client/exchange/exchange_test_support.go index 2b37623a..5c31f5e8 100644 --- a/client/exchange/exchange_test_support.go +++ b/client/exchange/exchange_test_support.go @@ -4,6 +4,8 @@ import ( "context" "errors" + "github.com/InjectiveLabs/sdk-go/client/common" + accountPB "github.com/InjectiveLabs/sdk-go/exchange/accounts_rpc/pb" auctionPB "github.com/InjectiveLabs/sdk-go/exchange/auction_rpc/pb" derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" @@ -16,6 +18,7 @@ import ( ) type MockExchangeClient struct { + Network common.Network SpotMarketsResponses []*spotExchangePB.MarketsResponse DerivativeMarketsResponses []*derivativeExchangePB.MarketsResponse } @@ -33,19 +36,19 @@ func (e *MockExchangeClient) GetDerivativeOrderbookV2(ctx context.Context, marke return &derivativeExchangePB.OrderbookV2Response{}, nil } -func (e *MockExchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIds []string) (*derivativeExchangePB.OrderbooksV2Response, error) { +func (e *MockExchangeClient) GetDerivativeOrderbooksV2(ctx context.Context, marketIDs []string) (*derivativeExchangePB.OrderbooksV2Response, error) { return &derivativeExchangePB.OrderbooksV2Response{}, nil } -func (e *MockExchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) { +func (e *MockExchangeClient) StreamDerivativeOrderbookV2(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookV2Client, error) { return nil, nil } -func (e *MockExchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) { +func (e *MockExchangeClient) StreamDerivativeOrderbookUpdate(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamOrderbookUpdateClient, error) { return nil, nil } -func (e *MockExchangeClient) StreamDerivativeMarket(ctx context.Context, marketIds []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) { +func (e *MockExchangeClient) StreamDerivativeMarket(ctx context.Context, marketIDs []string) (derivativeExchangePB.InjectiveDerivativeExchangeRPC_StreamMarketClient, error) { return nil, nil } @@ -128,7 +131,7 @@ func (e *MockExchangeClient) GetDerivativeFundingRates(ctx context.Context, req return &derivativeExchangePB.FundingRatesResponse{}, nil } -func (e *MockExchangeClient) GetPrice(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error) { +func (e *MockExchangeClient) GetPrice(ctx context.Context, baseSymbol, quoteSymbol, oracleType string, oracleScaleFactor uint32) (*oraclePB.PriceResponse, error) { return &oraclePB.PriceResponse{}, nil } @@ -136,7 +139,7 @@ func (e *MockExchangeClient) GetOracleList(ctx context.Context) (*oraclePB.Oracl return &oraclePB.OracleListResponse{}, nil } -func (e *MockExchangeClient) StreamPrices(ctx context.Context, baseSymbol string, quoteSymbol string, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) { +func (e *MockExchangeClient) StreamPrices(ctx context.Context, baseSymbol, quoteSymbol, oracleType string) (oraclePB.InjectiveOracleRPC_StreamPricesClient, error) { return nil, nil } @@ -156,7 +159,7 @@ func (e *MockExchangeClient) GetSubaccountsList(ctx context.Context, accountAddr return &accountPB.SubaccountsListResponse{}, nil } -func (e *MockExchangeClient) GetSubaccountBalance(ctx context.Context, subaccountId string, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) { +func (e *MockExchangeClient) GetSubaccountBalance(ctx context.Context, subaccountId, denom string) (*accountPB.SubaccountBalanceEndpointResponse, error) { return &accountPB.SubaccountBalanceEndpointResponse{}, nil } @@ -196,15 +199,15 @@ func (e *MockExchangeClient) GetSpotOrderbookV2(ctx context.Context, marketId st return &spotExchangePB.OrderbookV2Response{}, nil } -func (e *MockExchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIds []string) (*spotExchangePB.OrderbooksV2Response, error) { +func (e *MockExchangeClient) GetSpotOrderbooksV2(ctx context.Context, marketIDs []string) (*spotExchangePB.OrderbooksV2Response, error) { return &spotExchangePB.OrderbooksV2Response{}, nil } -func (e *MockExchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) { +func (e *MockExchangeClient) StreamSpotOrderbookV2(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookV2Client, error) { return nil, nil } -func (e *MockExchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) { +func (e *MockExchangeClient) StreamSpotOrderbookUpdate(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamOrderbookUpdateClient, error) { return nil, nil } @@ -227,7 +230,7 @@ func (e *MockExchangeClient) GetSpotMarket(ctx context.Context, marketId string) return &spotExchangePB.MarketResponse{}, nil } -func (e *MockExchangeClient) StreamSpotMarket(ctx context.Context, marketIds []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) { +func (e *MockExchangeClient) StreamSpotMarket(ctx context.Context, marketIDs []string) (spotExchangePB.InjectiveSpotExchangeRPC_StreamMarketsClient, error) { return nil, nil } @@ -283,7 +286,7 @@ func (e *MockExchangeClient) GetAccountPortfolioBalances(ctx context.Context, ac return &portfolioExchangePB.AccountPortfolioBalancesResponse{}, nil } -func (e *MockExchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddress string, subaccountId, balanceType string) (portfolioExchangePB.InjectivePortfolioRPC_StreamAccountPortfolioClient, error) { +func (e *MockExchangeClient) StreamAccountPortfolio(ctx context.Context, accountAddress, subaccountId, balanceType string) (portfolioExchangePB.InjectivePortfolioRPC_StreamAccountPortfolioClient, error) { return nil, nil } @@ -303,6 +306,10 @@ func (e *MockExchangeClient) Ping(ctx context.Context, req *metaPB.PingRequest) return &metaPB.PingResponse{}, nil } +func (e *MockExchangeClient) GetNetwork() common.Network { + return e.Network +} + func (e *MockExchangeClient) Close() { } diff --git a/client/explorer/explorer.go b/client/explorer/explorer.go index 00c76fc6..2dbe8ce8 100644 --- a/client/explorer/explorer.go +++ b/client/explorer/explorer.go @@ -8,8 +8,6 @@ import ( "github.com/InjectiveLabs/sdk-go/client/common" explorerPB "github.com/InjectiveLabs/sdk-go/exchange/explorer_rpc/pb" - "google.golang.org/grpc/metadata" - log "github.com/InjectiveLabs/suplog" "github.com/pkg/errors" "google.golang.org/grpc" @@ -38,8 +36,8 @@ type ExplorerClient interface { func NewExplorerClient(network common.Network, options ...common.ClientOption) (ExplorerClient, error) { // process options opts := common.DefaultClientOptions() - if network.ChainTlsCert != nil { - options = append(options, common.OptionTLSCert(network.ExchangeTlsCert)) + if network.ChainTLSCert != nil { + options = append(options, common.OptionTLSCert(network.ExchangeTLSCert)) } for _, opt := range options { if err := opt(opts); err != nil { @@ -86,22 +84,6 @@ type explorerClient struct { explorerClient explorerPB.InjectiveExplorerRPCClient } -func (c *explorerClient) requestCookie() metadata.MD { - var header metadata.MD - req := explorerPB.GetTxsRequest{} - _, err := c.explorerClient.GetTxs(context.Background(), &req, grpc.Header(&header)) - if err != nil { - panic(err) - } - return header -} - -func (c *explorerClient) getCookie(ctx context.Context) context.Context { - provider := common.NewMetadataProvider(c.requestCookie) - cookie, _ := c.network.ExplorerMetadata(provider) - return metadata.AppendToOutgoingContext(ctx, "cookie", cookie) -} - func (c *explorerClient) QueryClient() *grpc.ClientConn { return c.conn } @@ -111,8 +93,8 @@ func (c *explorerClient) GetTxByTxHash(ctx context.Context, hash string) (*explo Hash: hash, } - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetTxByTxHash(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetTxByTxHash, &req) + if err != nil { fmt.Println(err) return &explorerPB.GetTxByTxHashResponse{}, err @@ -122,8 +104,8 @@ func (c *explorerClient) GetTxByTxHash(ctx context.Context, hash string) (*explo } func (c *explorerClient) GetAccountTxs(ctx context.Context, req *explorerPB.GetAccountTxsRequest) (*explorerPB.GetAccountTxsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetAccountTxs(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetAccountTxs, req) + if err != nil { fmt.Println(err) return &explorerPB.GetAccountTxsResponse{}, err @@ -135,8 +117,8 @@ func (c *explorerClient) GetAccountTxs(ctx context.Context, req *explorerPB.GetA func (c *explorerClient) GetBlocks(ctx context.Context) (*explorerPB.GetBlocksResponse, error) { req := explorerPB.GetBlocksRequest{} - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetBlocks(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetBlocks, &req) + if err != nil { fmt.Println(err) return &explorerPB.GetBlocksResponse{}, err @@ -150,8 +132,8 @@ func (c *explorerClient) GetBlock(ctx context.Context, blockHeight string) (*exp Id: blockHeight, } - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetBlock(ctx, &req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetBlock, &req) + if err != nil { fmt.Println(err) return &explorerPB.GetBlockResponse{}, err @@ -161,8 +143,8 @@ func (c *explorerClient) GetBlock(ctx context.Context, blockHeight string) (*exp } func (c *explorerClient) GetTxs(ctx context.Context, req *explorerPB.GetTxsRequest) (*explorerPB.GetTxsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetTxs(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetTxs, req) + if err != nil { fmt.Println(err) return &explorerPB.GetTxsResponse{}, err @@ -172,8 +154,8 @@ func (c *explorerClient) GetTxs(ctx context.Context, req *explorerPB.GetTxsReque } func (c *explorerClient) GetPeggyDeposits(ctx context.Context, req *explorerPB.GetPeggyDepositTxsRequest) (*explorerPB.GetPeggyDepositTxsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetPeggyDepositTxs(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetPeggyDepositTxs, req) + if err != nil { fmt.Println(err) return &explorerPB.GetPeggyDepositTxsResponse{}, err @@ -183,8 +165,8 @@ func (c *explorerClient) GetPeggyDeposits(ctx context.Context, req *explorerPB.G } func (c *explorerClient) GetPeggyWithdrawals(ctx context.Context, req *explorerPB.GetPeggyWithdrawalTxsRequest) (*explorerPB.GetPeggyWithdrawalTxsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetPeggyWithdrawalTxs(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetPeggyWithdrawalTxs, req) + if err != nil { fmt.Println(err) return &explorerPB.GetPeggyWithdrawalTxsResponse{}, err @@ -194,8 +176,8 @@ func (c *explorerClient) GetPeggyWithdrawals(ctx context.Context, req *explorerP } func (c *explorerClient) GetIBCTransfers(ctx context.Context, req *explorerPB.GetIBCTransferTxsRequest) (*explorerPB.GetIBCTransferTxsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetIBCTransferTxs(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetIBCTransferTxs, req) + if err != nil { fmt.Println(err) return &explorerPB.GetIBCTransferTxsResponse{}, err @@ -207,8 +189,8 @@ func (c *explorerClient) GetIBCTransfers(ctx context.Context, req *explorerPB.Ge func (c *explorerClient) StreamTxs(ctx context.Context) (explorerPB.InjectiveExplorerRPC_StreamTxsClient, error) { req := explorerPB.StreamTxsRequest{} - ctx = c.getCookie(ctx) - stream, err := c.explorerClient.StreamTxs(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.StreamTxs, &req) + if err != nil { fmt.Println(err) return nil, err @@ -220,8 +202,8 @@ func (c *explorerClient) StreamTxs(ctx context.Context) (explorerPB.InjectiveExp func (c *explorerClient) StreamBlocks(ctx context.Context) (explorerPB.InjectiveExplorerRPC_StreamBlocksClient, error) { req := explorerPB.StreamBlocksRequest{} - ctx = c.getCookie(ctx) - stream, err := c.explorerClient.StreamBlocks(ctx, &req) + stream, err := common.ExecuteStreamCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.StreamBlocks, &req) + if err != nil { fmt.Println(err) return nil, err @@ -231,8 +213,8 @@ func (c *explorerClient) StreamBlocks(ctx context.Context) (explorerPB.Injective } func (c *explorerClient) GetWasmCodes(ctx context.Context, req *explorerPB.GetWasmCodesRequest) (*explorerPB.GetWasmCodesResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetWasmCodes(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetWasmCodes, req) + if err != nil { fmt.Println(err) return &explorerPB.GetWasmCodesResponse{}, err @@ -242,8 +224,8 @@ func (c *explorerClient) GetWasmCodes(ctx context.Context, req *explorerPB.GetWa } func (c *explorerClient) GetWasmCodeByID(ctx context.Context, req *explorerPB.GetWasmCodeByIDRequest) (*explorerPB.GetWasmCodeByIDResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetWasmCodeByID(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetWasmCodeByID, req) + if err != nil { fmt.Println(err) return &explorerPB.GetWasmCodeByIDResponse{}, err @@ -253,8 +235,8 @@ func (c *explorerClient) GetWasmCodeByID(ctx context.Context, req *explorerPB.Ge } func (c *explorerClient) GetWasmContracts(ctx context.Context, req *explorerPB.GetWasmContractsRequest) (*explorerPB.GetWasmContractsResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetWasmContracts(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetWasmContracts, req) + if err != nil { fmt.Println(err) return &explorerPB.GetWasmContractsResponse{}, err @@ -264,8 +246,8 @@ func (c *explorerClient) GetWasmContracts(ctx context.Context, req *explorerPB.G } func (c *explorerClient) GetWasmContractByAddress(ctx context.Context, req *explorerPB.GetWasmContractByAddressRequest) (*explorerPB.GetWasmContractByAddressResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetWasmContractByAddress(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetWasmContractByAddress, req) + if err != nil { fmt.Println(err) return &explorerPB.GetWasmContractByAddressResponse{}, err @@ -275,8 +257,8 @@ func (c *explorerClient) GetWasmContractByAddress(ctx context.Context, req *expl } func (c *explorerClient) GetCW20Balance(ctx context.Context, req *explorerPB.GetCw20BalanceRequest) (*explorerPB.GetCw20BalanceResponse, error) { - ctx = c.getCookie(ctx) - res, err := c.explorerClient.GetCw20Balance(ctx, req) + res, err := common.ExecuteCall(ctx, c.network.ExplorerCookieAssistant, c.explorerClient.GetCw20Balance, req) + if err != nil { fmt.Println(err) return &explorerPB.GetCw20BalanceResponse{}, err diff --git a/client/metadata/assets/devnet-1.ini b/client/metadata/assets/devnet-1.ini index 62979d72..f01ccd09 100644 --- a/client/metadata/assets/devnet-1.ini +++ b/client/metadata/assets/devnet-1.ini @@ -164,10 +164,46 @@ min_display_quantity_tick_size = 0.00001 description = 'Devnet Spot PROJ/INJ' base = 18 quote = 18 -min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 -min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 +min_price_tick_size = 0.00000001 +min_display_price_tick_size = 0.00000001 +min_quantity_tick_size = 1000000000000000000000 +min_display_quantity_tick_size = 1000 + +[0x2d3b8d8833dda54a717adea9119134556848105fd6028e9a4a526e4e5a122a57] +description = 'Devnet Spot KIRA/INJ' +base = 6 +quote = 18 +min_price_tick_size = 10000 +min_display_price_tick_size = 0.00000001 +min_quantity_tick_size = 1000000000 +min_display_quantity_tick_size = 1000 + +[0x42edf70cc37e155e9b9f178e04e18999bc8c404bd7b638cc4cbf41da8ef45a21] +description = 'Devnet Spot QUNT/INJ' +base = 6 +quote = 18 +min_price_tick_size = 10000 +min_display_price_tick_size = 0.00000001 +min_quantity_tick_size = 1000000000 +min_display_quantity_tick_size = 1000 + +[0xc8fafa1fcab27e16da20e98b4dc9dda45320418c27db80663b21edac72f3b597] +description = 'Devnet Spot HDRO/INJ' +base = 6 +quote = 18 +min_price_tick_size = 1000000 +min_display_price_tick_size = 0.000001 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 1 + +[0xd166688623206f9931307285678e9ff17cecd80a27d7b781dd88cecfba3b1839] +description = 'Devnet Spot BLACK/INJ' +base = 6 +quote = 18 +min_price_tick_size = 1000000 +min_display_price_tick_size = 0.000001 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 1 [0x1422a13427d5eabd4d8de7907c8340f7e58cb15553a9fd4ad5c90406561886f9] description = 'Devnet Derivative COMP/USDT PERP' @@ -259,78 +295,1558 @@ min_display_price_tick_size = 0.0000000001 min_quantity_tick_size = 0.1 min_display_quantity_tick_size = 0.1 +[$ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien +decimals = 6 + +[$AOI] +peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi +decimals = 6 + +[$Babykira] +peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira +decimals = 6 + +[1INCH] +peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 +decimals = 18 + [AAVE] peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 decimals = 18 +[ALPHA] +peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u +decimals = 8 + +[ANDR] +peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E +decimals = 6 + [APE] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 +peggy_denom = peggy0x44d63c7FC48385b212aB397aB91A2637ec964634 +decimals = 18 + +[APP] +peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 +decimals = 18 + +[ARB] +peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 +decimals = 8 + +[ARBlegacy] +peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd +decimals = 8 + +[ASG] +peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 +decimals = 8 + +[ASTR] +peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x decimals = 18 +[ASTRO] +peggy_denom = ibc/E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89 +decimals = 6 + [ATOM] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom +decimals = 8 + +[AUTISM] +peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism +decimals = 6 + +[AVAX] +peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 +decimals = 8 + +[AXL] +peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 +decimals = 6 + +[AXS] +peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b +decimals = 18 + +[Alpha Coin] +peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B +decimals = 18 + +[Ape Coin] +peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 +decimals = 18 + +[Arbitrum] +peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 +decimals = 18 + +[Axelar] +peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc +decimals = 6 + +[BAMBOO] +peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo +decimals = 6 + +[BAND] +peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 +decimals = 18 + +[BAT] +peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF +decimals = 18 + +[BAYC] +peggy_denom = bayc +decimals = 18 + +[BEAST] +peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be +decimals = 6 + +[BINJ] +peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/binj +decimals = 18 + +[BITS] +peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits +decimals = 6 + +[BLACK] +peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black +decimals = 6 + +[BMOS] +peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E decimals = 6 [BNB] peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 decimals = 18 +[BODEN] +peggy_denom = boden +decimals = 9 + +[BONJO] +peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/bonjo +decimals = 6 + +[BONK] +peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch +decimals = 5 + +[BONUS] +peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF +decimals = 8 + +[BRETT] +peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett +decimals = 6 + +[BRZ] +peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk +decimals = 4 + +[BSKT] +peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 +decimals = 5 + +[BTC] +peggy_denom = btc +decimals = 8 + +[BULLS] +peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls +decimals = 6 + +[BUSD] +peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 +decimals = 18 + +[Babykira] +peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira +decimals = 6 + +[Basket] +peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 +decimals = 5 + +[Bird INJ] +peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj +decimals = 6 + +[BitSong] +peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 +decimals = 18 + +[Bonjo] +peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 +decimals = 18 + +[Brazilian Digital Token] +peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B +decimals = 4 + +[CAD] +peggy_denom = cad +decimals = 6 + +[CANTO] +peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 +decimals = 18 + +[CEL] +peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d +decimals = 4 + +[CELL] +peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 +decimals = 18 + [CHZ] +peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF +decimals = 18 + +[CHZlegacy] peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh decimals = 8 +[CLON] +peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 +decimals = 6 + +[COCK] +peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/cock +decimals = 6 + +[COKE] +peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke +decimals = 6 + +[COMP] +peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 +decimals = 18 + +[CRE] +peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 +decimals = 6 + +[CVR] +peggy_denom = peggy0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6 +decimals = 18 + +[Chiliz (legacy)] +peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +decimals = 8 + +[Cosmos] +peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 +decimals = 6 + +[DAI] +peggy_denom = peggy0x6b175474e89094c44da98b954eedeac495271d0f +decimals = 18 + +[DDL] +peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/ddl +decimals = 6 + +[DEFI5] +peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 +decimals = 18 + +[DEMO] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/demo +decimals = 18 + +[DGNZ] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dgnz +decimals = 6 + +[DOGE] +peggy_denom = doge +decimals = 8 + +[DOJ] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj +decimals = 6 + +[DOJO] +peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/dojo +decimals = 6 + +[DOT] +peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 +decimals = 10 + +[DREAM] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream +decimals = 6 + +[DROGO] +peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 +decimals = 6 + +[DUDE] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/dude +decimals = 6 + +[Dojo Token] +peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 +decimals = 18 + +[ELON] +peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 +decimals = 6 + +[ENA] +peggy_denom = peggy0x57e114b691db790c35207b2e685d4a43181e6061 +decimals = 18 + +[ENJ] +peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c +decimals = 18 + +[ERIC] +peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric +decimals = 6 + +[ETH] +peggy_denom = eth +decimals = 18 + [ETHBTCTrend] peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 decimals = 18 +[EUR] +peggy_denom = eur +decimals = 6 + +[EVAI] +peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c +decimals = 8 + +[EVIINDEX] +peggy_denom = eviindex +decimals = 18 + +[EVMOS] +peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 +decimals = 18 + +[FET] +peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B +decimals = 18 + +[FTM] +peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 +decimals = 18 + +[Fetch.ai] +peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 +decimals = 18 + +[GALAXY] +peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy +decimals = 6 + +[GBP] +peggy_denom = gbp +decimals = 6 + [GF] peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 decimals = 18 +[GIGA] +peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 +decimals = 5 + +[GINGER] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/ginger +decimals = 6 + +[GLTO] +peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 +decimals = 6 + +[GME] +peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 +decimals = 8 + +[GOLD] +peggy_denom = gold +decimals = 18 + +[GOLDIE] +peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/goldie +decimals = 6 + +[GROK] +peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/grok +decimals = 6 + +[GRT] +peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 +decimals = 18 + +[GYEN] +peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 +decimals = 6 + +[HDRO] +peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro +decimals = 6 + +[HT] +peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 +decimals = 18 + +[HUAHUA] +peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB +decimals = 6 + +[Hydro] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro +decimals = 6 + +[Hydro Wrapped INJ] +peggy_denom = inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc +decimals = 18 + +[IKINGS] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/ikings +decimals = 6 + +[INCEL] +peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel +decimals = 6 + [INJ] peggy_denom = inj decimals = 18 -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +[INJECT] +peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/inject +decimals = 6 + +[INJER] +peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/injer +decimals = 6 + +[INJINU] +peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/injinu +decimals = 6 + +[INJX] +peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx +decimals = 6 + +[INJbsc] +peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 decimals = 18 -[MATIC] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +[INJet] +peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw decimals = 18 -[PROJ] -peggy_denom = proj +[IOTX] +peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 decimals = 18 -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +[IPandaAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai decimals = 6 -[USC Coin (Wormhole from Ethereum)] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +[Injective] +peggy_denom = peggy0x5512c04B6FF813f3571bDF64A1d74c98B5257332 +decimals = 18 + +[Injective Panda] +peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo decimals = 6 -[USD Coin] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +[Internet Explorer] +peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb decimals = 6 -[USDC] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +[JPY] +peggy_denom = jpy decimals = 6 -[USDT] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +[JUNO] +peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 decimals = 6 -[WBTC] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +[JUP] +peggy_denom = jup +decimals = 6 + +[KAGE] +peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 decimals = 18 -[WETH] -peggy_denom = peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 +[KARATE] +peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate +decimals = 6 + +[KARMA] +peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma +decimals = 6 + +[KATANA] +peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana +decimals = 6 + +[KAVA] +peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 +decimals = 6 + +[KINJA] +peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/kinja +decimals = 6 + +[KIRA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/kira +decimals = 6 + +[KPEPE] +peggy_denom = pepe decimals = 18 +[KUJI] +peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 +decimals = 6 + +[LAMA] +peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/lama +decimals = 6 + +[LAMBO] +peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 +decimals = 18 + +[LDO] +peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +decimals = 8 + +[LINK] +peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +decimals = 18 + +[LIOR] +peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/lior +decimals = 6 + +[LUNA] +peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 +decimals = 6 + +[LVN] +peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 +decimals = 6 + +[LYM] +peggy_denom = peggy0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5 +decimals = 18 + +[Lido DAO Token] +peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 +decimals = 18 + +[MAGA] +peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 +decimals = 9 + +[MATIC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/matic +decimals = 18 + +[MEMEME] +peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE +decimals = 18 + +[MILA] +peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/mila +decimals = 6 + +[MILK] +peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/milk +decimals = 6 + +[MOONIFY] +peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify +decimals = 6 + +[MOTHER] +peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE +decimals = 6 + +[MPEPE] +peggy_denom = mpepe +decimals = 18 + +[MT] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mt +decimals = 6 + +[NBLA] +peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla +decimals = 6 + +[NBZ] +peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D +decimals = 6 + +[NBZAIRDROP] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/nbzairdrop +decimals = 0 + +[NEOK] +peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 +decimals = 18 + +[NEXO] +peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 +decimals = 18 + +[NINJA] +peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja +decimals = 6 + +[NINJB] +peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb +decimals = 6 + +[NLC] +peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 +decimals = 6 + +[NOBI] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi +decimals = 6 + +[NOBITCHES] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches +decimals = 6 + +[NOIA] +peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca +decimals = 18 + +[NOIS] +peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A +decimals = 6 + +[NONE] +peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 +decimals = 18 + +[NONJA] +peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck +decimals = 18 + +[NPEPE] +peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/npepe +decimals = 6 + +[Neptune Receipt INJ] +peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f +decimals = 18 + +[OCEAN] +peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 +decimals = 18 + +[OMI] +peggy_denom = peggy0xed35af169af46a02ee13b9d79eb57d6d68c1749e +decimals = 18 + +[OMNI] +peggy_denom = peggy0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4 +decimals = 18 + +[OP] +peggy_denom = op +decimals = 18 + +[ORAI] +peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 +decimals = 6 + +[ORNE] +peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E +decimals = 6 + +[OSMO] +peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 +decimals = 6 + +[OX] +peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f +decimals = 18 + +[Oraichain] +peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 +decimals = 18 + +[PAXG] +peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 +decimals = 18 + +[PEPE] +peggy_denom = peggy0x6982508145454ce325ddbe47a25d4ec3d2311933 +decimals = 18 + +[PHUC] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/phuc +decimals = 6 + +[PIKA] +peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/pika +decimals = 6 + +[POINT] +peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point +decimals = 0 + +[POOL] +peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e +decimals = 18 + +[POOR] +peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 +decimals = 8 + +[PROJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj +decimals = 18 + +[PROJX] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx +decimals = 18 + +[PUG] +peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b +decimals = 18 + +[PUNK] +peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/punk +decimals = 6 + +[PVP] +peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 +decimals = 8 + +[PYTH] +peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 +decimals = 6 + +[PYTHlegacy] +peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +decimals = 6 + +[PYUSD] +peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 +decimals = 6 + +[Phuc] +peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc +decimals = 6 + +[Pikachu] +peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika +decimals = 6 + +[Polkadot] +peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf +decimals = 10 + +[Polygon] +peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +decimals = 18 + +[Punk Token] +peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt +decimals = 18 + +[QAT] +peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen +decimals = 8 + +[QNT] +peggy_denom = peggy0x4a220e6096b25eadb88358cb44068a3248254675 +decimals = 18 + +[QUNT] +peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +decimals = 6 + +[RAI] +peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 +decimals = 18 + +[RAMEN] +peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen +decimals = 6 + +[RIBBIT] +peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe +decimals = 18 + +[RICE] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/rice +decimals = 12 + +[ROOT] +peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 +decimals = 6 + +[RUNE] +peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb +decimals = 18 + +[SAE] +peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/sae +decimals = 6 + +[SAGA] +peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 +decimals = 6 + +[SCRT] +peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A +decimals = 6 + +[SDEX] +peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF +decimals = 18 + +[SEI] +peggy_denom = sei +decimals = 6 + +[SHIB] +peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE +decimals = 18 + +[SHROOM] +peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 +decimals = 18 + +[SHURIKEN] +peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken +decimals = 6 + +[SKIPBIDIDOBDOBDOBYESYESYESYES] +peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d +decimals = 9 + +[SMELLY] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/smelly +decimals = 6 + +[SNOWY] +peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/snowy +decimals = 6 + +[SNS] +peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 +decimals = 8 + +[SNX] +peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F +decimals = 18 + +[SOL] +peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 +decimals = 8 + +[SOLlegacy] +peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +decimals = 8 + +[SOMM] +peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +decimals = 6 + +[SPUUN] +peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/spuun +decimals = 6 + +[STARS] +peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca +decimals = 18 + +[STINJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj +decimals = 18 + +[STRD] +peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 +decimals = 6 + +[STT] +peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd +decimals = 18 + +[STX] +peggy_denom = stx +decimals = 6 + +[SUI] +peggy_denom = sui +decimals = 9 + +[SUSHI] +peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd +decimals = 18 + +[SWAP] +peggy_denom = peggy0xcc4304a31d09258b0029ea7fe63d032f52e44efe +decimals = 18 + +[Shiba INJ] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj +decimals = 6 + +[Shinobi] +peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi +decimals = 6 + +[Shuriken Token] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken +decimals = 6 + +[Solana] +peggy_denom = inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 +decimals = 8 + +[Sommelier] +peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 +decimals = 6 + +[SteadyBTC] +peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d +decimals = 18 + +[SteadyETH] +peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 +decimals = 18 + +[Stride Staked Injective] +peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 +decimals = 18 + +[Summoners Arena Essence] +peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB +decimals = 8 + +[SushiSwap] +peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 +decimals = 18 + +[TAB] +peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD +decimals = 18 + +[TALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis +decimals = 6 + +[TEST1] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 +decimals = 6 + +[TEST2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test2 +decimals = 6 + +[TEST3] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test3 +decimals = 6 + +[TEvmos] +peggy_denom = ibc/300B5A980CA53175DBAC918907B47A2885CADD17042AD58209E777217D64AF20 +decimals = 18 + +[TIA] +peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 +decimals = 6 + +[TIX] +peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/tix +decimals = 6 + +[TRUCPI] +peggy_denom = trucpi +decimals = 18 + +[Terra] +peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 +decimals = 6 + +[TerraUSD] +peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD +decimals = 18 + +[Test QAT] +peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 +decimals = 18 + +[Tether] +peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +decimals = 6 + +[UMA] +peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 +decimals = 18 + +[UNI] +peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 +decimals = 18 + +[UPHOTON] +peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB +decimals = 6 + +[USD Coin] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[USD Coin (legacy)] +peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc +decimals = 6 + +[USDC-MPL] +peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A +decimals = 6 + +[USDCarb] +peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r +decimals = 6 + +[USDCbsc] +peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu +decimals = 6 + +[USDCet] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDCgateway] +peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 +decimals = 6 + +[USDClegacy] +peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +decimals = 6 + +[USDCpoly] +peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 +decimals = 6 + +[USDCso] +peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +decimals = 6 + +[USDT] +peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 +decimals = 6 + +[USDTap] +peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 +decimals = 6 + +[USDTbsc] +peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj +decimals = 6 + +[USDTet] +peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 +decimals = 6 + +[USDTkv] +peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB +decimals = 6 + +[USDTso] +peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd +decimals = 6 + +[USDY] +peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 +decimals = 18 + +[USDYet] +peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C +decimals = 18 + +[USDe] +peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 +decimals = 18 + +[UST] +peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C +decimals = 18 + +[UTK] +peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c +decimals = 18 + +[UUST] +peggy_denom = ibc/C643B73073217F778DD7BDCB74C7EBCEF8E7EF81614FFA3C1C31861221AA9C4A +decimals = 0 + +[Unknown] +peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 +decimals = 6 + +[VATRENI] +peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay +decimals = 8 + +[VRD] +peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 +decimals = 18 + +[W] +peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 +decimals = 6 + +[WAGMI] +peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi +decimals = 9 + +[WAIFU] +peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu +decimals = 6 + +[WASSIE] +peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 +decimals = 18 + +[WGLMR-WEI] +peggy_denom = ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055 +decimals = 0 + +[WGMI] +peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/wgmi +decimals = 6 + +[WHALE] +peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 +decimals = 6 + +[WIF] +peggy_denom = wif +decimals = 6 + +[WIZZ] +peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/wizz +decimals = 6 + +[WKLAY] +peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 +decimals = 8 + +[WMATIC] +peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC +decimals = 8 + +[WMATIClegacy] +peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +decimals = 8 + +[WOSMO] +peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 +decimals = 6 + +[WSTETH] +peggy_denom = peggy0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 +decimals = 18 + +[Wrapped Bitcoin] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc +decimals = 8 + +[Wrapped Ethereum] +peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc +decimals = 8 + +[XAC] +peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 +decimals = 8 + +[XAG] +peggy_denom = xag +decimals = 6 + +[XAU] +peggy_denom = xau +decimals = 6 + +[XBX] +peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 +decimals = 18 + +[XIII] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/xiii +decimals = 6 + +[XION] +peggy_denom = ibc/DAB0823884DB5785F08EE136EE9EB362E166F4C7455716641B03E93CE7F14193 +decimals = 6 + +[XNJ] +peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar +decimals = 18 + +[XPLA] +peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe +decimals = 8 + +[XPRT] +peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB +decimals = 6 + +[XRP] +peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe +decimals = 18 + +[XTALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis +decimals = 6 + [YFI] peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e decimals = 18 + +[YUKI] +peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/yuki +decimals = 6 + +[ZEN] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen +decimals = 18 + +[ZIG] +peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 +decimals = 18 + +[ZK] +peggy_denom = zk +decimals = 18 + +[ZRO] +peggy_denom = zro +decimals = 6 + +[ZRX] +peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 +decimals = 18 + +[axlUSDC] +peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 +decimals = 6 + +[dINJ] +peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 +decimals = 18 + +[dYdX] +peggy_denom = peggy0x92d6c1e31e14520e676a687f0a93788b716beff5 +decimals = 18 + +[ezETH] +peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 +decimals = 18 + +[fUSDT] +peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 +decimals = 8 + +[factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp] +peggy_denom = factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp +decimals = 0 + +[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira] +peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira +decimals = 6 + +[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj] +peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj +decimals = 6 + +[factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp] +peggy_denom = factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp +decimals = 0 + +[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior] +peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior +decimals = 6 + +[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] +peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior +decimals = 6 + +[factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g] +peggy_denom = factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty +decimals = 0 + +[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] +peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi +decimals = 6 + +[factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA] +peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA +decimals = 6 + +[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] +peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk +decimals = 6 + +[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken] +peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken +decimals = 6 + +[hINJ] +peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 18 + +[ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E] +peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E +decimals = 6 + +[ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F] +peggy_denom = ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F +decimals = 0 + +[ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E] +peggy_denom = ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E +decimals = 0 + +[ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839] +peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 +decimals = 6 + +[inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw] +peggy_denom = inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku] +peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] +peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp +decimals = 6 + +[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] +peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 +decimals = 8 + +[lootbox1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 +decimals = 0 + +[nATOM] +peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 +decimals = 6 + +[nINJ] +peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +decimals = 18 + +[nTIA] +peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv +decimals = 6 + +[nUSDT] +peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s +decimals = 6 + +[nWETH] +peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt +decimals = 18 + +[peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599] +peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 +decimals = 8 + +[peggy0x43123e1d077351267113ada8bE85A058f5D492De] +peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De +decimals = 6 + +[peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7] +peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 +decimals = 0 + +[peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369] +peggy_denom = peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369 +decimals = 18 + +[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] +peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 +decimals = 6 + +[peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB] +peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB +decimals = 6 + +[peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c] +peggy_denom = peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c +decimals = 18 + +[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] +peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 +decimals = 10 + +[peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2] +peggy_denom = peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 +decimals = 18 + +[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] +peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 +decimals = 18 + +[proj] +peggy_denom = proj +decimals = 18 + +[sUSDE] +peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 +decimals = 18 + +[share11] +peggy_denom = share11 +decimals = 18 + +[share13] +peggy_denom = share13 +decimals = 18 + +[share14] +peggy_denom = share14 +decimals = 18 + +[share15] +peggy_denom = share15 +decimals = 18 + +[share16] +peggy_denom = share16 +decimals = 18 + +[share17] +peggy_denom = share17 +decimals = 18 + +[share18] +peggy_denom = share18 +decimals = 18 + +[share19] +peggy_denom = share19 +decimals = 18 + +[share20] +peggy_denom = share20 +decimals = 18 + +[share21] +peggy_denom = share21 +decimals = 18 + +[share22] +peggy_denom = share22 +decimals = 18 + +[share23] +peggy_denom = share23 +decimals = 18 + +[share24] +peggy_denom = share24 +decimals = 18 + +[share25] +peggy_denom = share25 +decimals = 18 + +[share26] +peggy_denom = share26 +decimals = 18 + +[share27] +peggy_denom = share27 +decimals = 18 + +[share28] +peggy_denom = share28 +decimals = 18 + +[share29] +peggy_denom = share29 +decimals = 18 + +[share30] +peggy_denom = share30 +decimals = 18 + +[share31] +peggy_denom = share31 +decimals = 18 + +[share9] +peggy_denom = share9 +decimals = 18 + +[stETH] +peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 +decimals = 18 + +[unknown] +peggy_denom = unknown +decimals = 0 + +[wBTC] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[wETH] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth +decimals = 8 + +[wUSDM] +peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 +decimals = 18 diff --git a/client/metadata/assets/devnet.ini b/client/metadata/assets/devnet.ini index 2b6020db..f01ccd09 100644 --- a/client/metadata/assets/devnet.ini +++ b/client/metadata/assets/devnet.ini @@ -196,6 +196,15 @@ min_display_price_tick_size = 0.000001 min_quantity_tick_size = 1000000 min_display_quantity_tick_size = 1 +[0xd166688623206f9931307285678e9ff17cecd80a27d7b781dd88cecfba3b1839] +description = 'Devnet Spot BLACK/INJ' +base = 6 +quote = 18 +min_price_tick_size = 1000000 +min_display_price_tick_size = 0.000001 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 1 + [0x1422a13427d5eabd4d8de7907c8340f7e58cb15553a9fd4ad5c90406561886f9] description = 'Devnet Derivative COMP/USDT PERP' base = 0 @@ -286,90 +295,1558 @@ min_display_price_tick_size = 0.0000000001 min_quantity_tick_size = 0.1 min_display_quantity_tick_size = 0.1 +[$ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien +decimals = 6 + +[$AOI] +peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi +decimals = 6 + +[$Babykira] +peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira +decimals = 6 + +[1INCH] +peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 +decimals = 18 + [AAVE] peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 decimals = 18 +[ALPHA] +peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u +decimals = 8 + +[ANDR] +peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E +decimals = 6 + [APE] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 +peggy_denom = peggy0x44d63c7FC48385b212aB397aB91A2637ec964634 +decimals = 18 + +[APP] +peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 +decimals = 18 + +[ARB] +peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 +decimals = 8 + +[ARBlegacy] +peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd +decimals = 8 + +[ASG] +peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 +decimals = 8 + +[ASTR] +peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x decimals = 18 +[ASTRO] +peggy_denom = ibc/E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89 +decimals = 6 + [ATOM] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom +decimals = 8 + +[AUTISM] +peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism +decimals = 6 + +[AVAX] +peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 +decimals = 8 + +[AXL] +peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 +decimals = 6 + +[AXS] +peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b +decimals = 18 + +[Alpha Coin] +peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B +decimals = 18 + +[Ape Coin] +peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 +decimals = 18 + +[Arbitrum] +peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 +decimals = 18 + +[Axelar] +peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc +decimals = 6 + +[BAMBOO] +peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo +decimals = 6 + +[BAND] +peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 +decimals = 18 + +[BAT] +peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF +decimals = 18 + +[BAYC] +peggy_denom = bayc +decimals = 18 + +[BEAST] +peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be +decimals = 6 + +[BINJ] +peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/binj +decimals = 18 + +[BITS] +peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits +decimals = 6 + +[BLACK] +peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black +decimals = 6 + +[BMOS] +peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E decimals = 6 [BNB] peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 decimals = 18 +[BODEN] +peggy_denom = boden +decimals = 9 + +[BONJO] +peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/bonjo +decimals = 6 + +[BONK] +peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch +decimals = 5 + +[BONUS] +peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF +decimals = 8 + +[BRETT] +peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett +decimals = 6 + +[BRZ] +peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk +decimals = 4 + +[BSKT] +peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 +decimals = 5 + +[BTC] +peggy_denom = btc +decimals = 8 + +[BULLS] +peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls +decimals = 6 + +[BUSD] +peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 +decimals = 18 + +[Babykira] +peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira +decimals = 6 + +[Basket] +peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 +decimals = 5 + +[Bird INJ] +peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj +decimals = 6 + +[BitSong] +peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 +decimals = 18 + +[Bonjo] +peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 +decimals = 18 + +[Brazilian Digital Token] +peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B +decimals = 4 + +[CAD] +peggy_denom = cad +decimals = 6 + +[CANTO] +peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 +decimals = 18 + +[CEL] +peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d +decimals = 4 + +[CELL] +peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 +decimals = 18 + [CHZ] +peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF +decimals = 18 + +[CHZlegacy] peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh decimals = 8 +[CLON] +peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 +decimals = 6 + +[COCK] +peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/cock +decimals = 6 + +[COKE] +peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke +decimals = 6 + +[COMP] +peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 +decimals = 18 + +[CRE] +peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 +decimals = 6 + +[CVR] +peggy_denom = peggy0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6 +decimals = 18 + +[Chiliz (legacy)] +peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +decimals = 8 + +[Cosmos] +peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 +decimals = 6 + +[DAI] +peggy_denom = peggy0x6b175474e89094c44da98b954eedeac495271d0f +decimals = 18 + +[DDL] +peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/ddl +decimals = 6 + +[DEFI5] +peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 +decimals = 18 + +[DEMO] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/demo +decimals = 18 + +[DGNZ] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dgnz +decimals = 6 + +[DOGE] +peggy_denom = doge +decimals = 8 + +[DOJ] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj +decimals = 6 + +[DOJO] +peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/dojo +decimals = 6 + +[DOT] +peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 +decimals = 10 + +[DREAM] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream +decimals = 6 + +[DROGO] +peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 +decimals = 6 + +[DUDE] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/dude +decimals = 6 + +[Dojo Token] +peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 +decimals = 18 + +[ELON] +peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 +decimals = 6 + +[ENA] +peggy_denom = peggy0x57e114b691db790c35207b2e685d4a43181e6061 +decimals = 18 + +[ENJ] +peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c +decimals = 18 + +[ERIC] +peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric +decimals = 6 + +[ETH] +peggy_denom = eth +decimals = 18 + [ETHBTCTrend] peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 decimals = 18 +[EUR] +peggy_denom = eur +decimals = 6 + +[EVAI] +peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c +decimals = 8 + +[EVIINDEX] +peggy_denom = eviindex +decimals = 18 + +[EVMOS] +peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 +decimals = 18 + +[FET] +peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B +decimals = 18 + +[FTM] +peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 +decimals = 18 + +[Fetch.ai] +peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 +decimals = 18 + +[GALAXY] +peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy +decimals = 6 + +[GBP] +peggy_denom = gbp +decimals = 6 + [GF] peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 decimals = 18 +[GIGA] +peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 +decimals = 5 + +[GINGER] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/ginger +decimals = 6 + +[GLTO] +peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 +decimals = 6 + +[GME] +peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 +decimals = 8 + +[GOLD] +peggy_denom = gold +decimals = 18 + +[GOLDIE] +peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/goldie +decimals = 6 + +[GROK] +peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/grok +decimals = 6 + +[GRT] +peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 +decimals = 18 + +[GYEN] +peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 +decimals = 6 + [HDRO] peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro decimals = 6 +[HT] +peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 +decimals = 18 + +[HUAHUA] +peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB +decimals = 6 + +[Hydro] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro +decimals = 6 + +[Hydro Wrapped INJ] +peggy_denom = inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc +decimals = 18 + +[IKINGS] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/ikings +decimals = 6 + +[INCEL] +peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel +decimals = 6 + [INJ] peggy_denom = inj decimals = 18 -[KIRA] -peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA +[INJECT] +peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/inject decimals = 6 -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +[INJER] +peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/injer +decimals = 6 + +[INJINU] +peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/injinu +decimals = 6 + +[INJX] +peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx +decimals = 6 + +[INJbsc] +peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 decimals = 18 -[MATIC] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +[INJet] +peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw decimals = 18 -[PROJ] -peggy_denom = proj +[IOTX] +peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 decimals = 18 -[QUNT] -peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +[IPandaAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai decimals = 6 -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +[Injective] +peggy_denom = peggy0x5512c04B6FF813f3571bDF64A1d74c98B5257332 +decimals = 18 + +[Injective Panda] +peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo decimals = 6 -[USC Coin (Wormhole from Ethereum)] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +[Internet Explorer] +peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb decimals = 6 -[USD Coin] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +[JPY] +peggy_denom = jpy decimals = 6 -[USDC] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +[JUNO] +peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 decimals = 6 -[USDT] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +[JUP] +peggy_denom = jup decimals = 6 -[WBTC] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +[KAGE] +peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 decimals = 18 -[WETH] -peggy_denom = peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 +[KARATE] +peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate +decimals = 6 + +[KARMA] +peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma +decimals = 6 + +[KATANA] +peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana +decimals = 6 + +[KAVA] +peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 +decimals = 6 + +[KINJA] +peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/kinja +decimals = 6 + +[KIRA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/kira +decimals = 6 + +[KPEPE] +peggy_denom = pepe decimals = 18 -[YFI] -peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e +[KUJI] +peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 +decimals = 6 + +[LAMA] +peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/lama +decimals = 6 + +[LAMBO] +peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 +decimals = 18 + +[LDO] +peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +decimals = 8 + +[LINK] +peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +decimals = 18 + +[LIOR] +peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/lior +decimals = 6 + +[LUNA] +peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 +decimals = 6 + +[LVN] +peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 +decimals = 6 + +[LYM] +peggy_denom = peggy0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5 +decimals = 18 + +[Lido DAO Token] +peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 +decimals = 18 + +[MAGA] +peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 +decimals = 9 + +[MATIC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/matic +decimals = 18 + +[MEMEME] +peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE +decimals = 18 + +[MILA] +peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/mila +decimals = 6 + +[MILK] +peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/milk +decimals = 6 + +[MOONIFY] +peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify +decimals = 6 + +[MOTHER] +peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE +decimals = 6 + +[MPEPE] +peggy_denom = mpepe +decimals = 18 + +[MT] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mt +decimals = 6 + +[NBLA] +peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla +decimals = 6 + +[NBZ] +peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D +decimals = 6 + +[NBZAIRDROP] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/nbzairdrop +decimals = 0 + +[NEOK] +peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 +decimals = 18 + +[NEXO] +peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 +decimals = 18 + +[NINJA] +peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja +decimals = 6 + +[NINJB] +peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb +decimals = 6 + +[NLC] +peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 +decimals = 6 + +[NOBI] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi +decimals = 6 + +[NOBITCHES] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches +decimals = 6 + +[NOIA] +peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca +decimals = 18 + +[NOIS] +peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A +decimals = 6 + +[NONE] +peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 +decimals = 18 + +[NONJA] +peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck +decimals = 18 + +[NPEPE] +peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/npepe +decimals = 6 + +[Neptune Receipt INJ] +peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f +decimals = 18 + +[OCEAN] +peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 +decimals = 18 + +[OMI] +peggy_denom = peggy0xed35af169af46a02ee13b9d79eb57d6d68c1749e +decimals = 18 + +[OMNI] +peggy_denom = peggy0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4 +decimals = 18 + +[OP] +peggy_denom = op +decimals = 18 + +[ORAI] +peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 +decimals = 6 + +[ORNE] +peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E +decimals = 6 + +[OSMO] +peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 +decimals = 6 + +[OX] +peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f +decimals = 18 + +[Oraichain] +peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 +decimals = 18 + +[PAXG] +peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 +decimals = 18 + +[PEPE] +peggy_denom = peggy0x6982508145454ce325ddbe47a25d4ec3d2311933 +decimals = 18 + +[PHUC] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/phuc +decimals = 6 + +[PIKA] +peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/pika +decimals = 6 + +[POINT] +peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point +decimals = 0 + +[POOL] +peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e +decimals = 18 + +[POOR] +peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 +decimals = 8 + +[PROJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj +decimals = 18 + +[PROJX] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx +decimals = 18 + +[PUG] +peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b +decimals = 18 + +[PUNK] +peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/punk +decimals = 6 + +[PVP] +peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 +decimals = 8 + +[PYTH] +peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 +decimals = 6 + +[PYTHlegacy] +peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +decimals = 6 + +[PYUSD] +peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 +decimals = 6 + +[Phuc] +peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc +decimals = 6 + +[Pikachu] +peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika +decimals = 6 + +[Polkadot] +peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf +decimals = 10 + +[Polygon] +peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +decimals = 18 + +[Punk Token] +peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt +decimals = 18 + +[QAT] +peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen +decimals = 8 + +[QNT] +peggy_denom = peggy0x4a220e6096b25eadb88358cb44068a3248254675 +decimals = 18 + +[QUNT] +peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +decimals = 6 + +[RAI] +peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 +decimals = 18 + +[RAMEN] +peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen +decimals = 6 + +[RIBBIT] +peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe +decimals = 18 + +[RICE] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/rice +decimals = 12 + +[ROOT] +peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 +decimals = 6 + +[RUNE] +peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb +decimals = 18 + +[SAE] +peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/sae +decimals = 6 + +[SAGA] +peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 +decimals = 6 + +[SCRT] +peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A +decimals = 6 + +[SDEX] +peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF +decimals = 18 + +[SEI] +peggy_denom = sei +decimals = 6 + +[SHIB] +peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE +decimals = 18 + +[SHROOM] +peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 +decimals = 18 + +[SHURIKEN] +peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken +decimals = 6 + +[SKIPBIDIDOBDOBDOBYESYESYESYES] +peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d +decimals = 9 + +[SMELLY] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/smelly +decimals = 6 + +[SNOWY] +peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/snowy +decimals = 6 + +[SNS] +peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 +decimals = 8 + +[SNX] +peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F +decimals = 18 + +[SOL] +peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 +decimals = 8 + +[SOLlegacy] +peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +decimals = 8 + +[SOMM] +peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +decimals = 6 + +[SPUUN] +peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/spuun +decimals = 6 + +[STARS] +peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca +decimals = 18 + +[STINJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj +decimals = 18 + +[STRD] +peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 +decimals = 6 + +[STT] +peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd +decimals = 18 + +[STX] +peggy_denom = stx +decimals = 6 + +[SUI] +peggy_denom = sui +decimals = 9 + +[SUSHI] +peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd +decimals = 18 + +[SWAP] +peggy_denom = peggy0xcc4304a31d09258b0029ea7fe63d032f52e44efe +decimals = 18 + +[Shiba INJ] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj +decimals = 6 + +[Shinobi] +peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi +decimals = 6 + +[Shuriken Token] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken +decimals = 6 + +[Solana] +peggy_denom = inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 +decimals = 8 + +[Sommelier] +peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 +decimals = 6 + +[SteadyBTC] +peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d +decimals = 18 + +[SteadyETH] +peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 +decimals = 18 + +[Stride Staked Injective] +peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 +decimals = 18 + +[Summoners Arena Essence] +peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB +decimals = 8 + +[SushiSwap] +peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 +decimals = 18 + +[TAB] +peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD +decimals = 18 + +[TALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis +decimals = 6 + +[TEST1] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 +decimals = 6 + +[TEST2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test2 +decimals = 6 + +[TEST3] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test3 +decimals = 6 + +[TEvmos] +peggy_denom = ibc/300B5A980CA53175DBAC918907B47A2885CADD17042AD58209E777217D64AF20 +decimals = 18 + +[TIA] +peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 +decimals = 6 + +[TIX] +peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/tix +decimals = 6 + +[TRUCPI] +peggy_denom = trucpi +decimals = 18 + +[Terra] +peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 +decimals = 6 + +[TerraUSD] +peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD +decimals = 18 + +[Test QAT] +peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 +decimals = 18 + +[Tether] +peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +decimals = 6 + +[UMA] +peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 +decimals = 18 + +[UNI] +peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 +decimals = 18 + +[UPHOTON] +peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB +decimals = 6 + +[USD Coin] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[USD Coin (legacy)] +peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc +decimals = 6 + +[USDC-MPL] +peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A +decimals = 6 + +[USDCarb] +peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r +decimals = 6 + +[USDCbsc] +peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu +decimals = 6 + +[USDCet] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDCgateway] +peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 +decimals = 6 + +[USDClegacy] +peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +decimals = 6 + +[USDCpoly] +peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 +decimals = 6 + +[USDCso] +peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +decimals = 6 + +[USDT] +peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 +decimals = 6 + +[USDTap] +peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 +decimals = 6 + +[USDTbsc] +peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj +decimals = 6 + +[USDTet] +peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 +decimals = 6 + +[USDTkv] +peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB +decimals = 6 + +[USDTso] +peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd +decimals = 6 + +[USDY] +peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 +decimals = 18 + +[USDYet] +peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C +decimals = 18 + +[USDe] +peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 +decimals = 18 + +[UST] +peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C +decimals = 18 + +[UTK] +peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c +decimals = 18 + +[UUST] +peggy_denom = ibc/C643B73073217F778DD7BDCB74C7EBCEF8E7EF81614FFA3C1C31861221AA9C4A +decimals = 0 + +[Unknown] +peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 +decimals = 6 + +[VATRENI] +peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay +decimals = 8 + +[VRD] +peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 +decimals = 18 + +[W] +peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 +decimals = 6 + +[WAGMI] +peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi +decimals = 9 + +[WAIFU] +peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu +decimals = 6 + +[WASSIE] +peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 +decimals = 18 + +[WGLMR-WEI] +peggy_denom = ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055 +decimals = 0 + +[WGMI] +peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/wgmi +decimals = 6 + +[WHALE] +peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 +decimals = 6 + +[WIF] +peggy_denom = wif +decimals = 6 + +[WIZZ] +peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/wizz +decimals = 6 + +[WKLAY] +peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 +decimals = 8 + +[WMATIC] +peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC +decimals = 8 + +[WMATIClegacy] +peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +decimals = 8 + +[WOSMO] +peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 +decimals = 6 + +[WSTETH] +peggy_denom = peggy0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 +decimals = 18 + +[Wrapped Bitcoin] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc +decimals = 8 + +[Wrapped Ethereum] +peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc +decimals = 8 + +[XAC] +peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 +decimals = 8 + +[XAG] +peggy_denom = xag +decimals = 6 + +[XAU] +peggy_denom = xau +decimals = 6 + +[XBX] +peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 +decimals = 18 + +[XIII] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/xiii +decimals = 6 + +[XION] +peggy_denom = ibc/DAB0823884DB5785F08EE136EE9EB362E166F4C7455716641B03E93CE7F14193 +decimals = 6 + +[XNJ] +peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar +decimals = 18 + +[XPLA] +peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe +decimals = 8 + +[XPRT] +peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB +decimals = 6 + +[XRP] +peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe +decimals = 18 + +[XTALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis +decimals = 6 + +[YFI] +peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e +decimals = 18 + +[YUKI] +peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/yuki +decimals = 6 + +[ZEN] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen +decimals = 18 + +[ZIG] +peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 +decimals = 18 + +[ZK] +peggy_denom = zk +decimals = 18 + +[ZRO] +peggy_denom = zro +decimals = 6 + +[ZRX] +peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 +decimals = 18 + +[axlUSDC] +peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 +decimals = 6 + +[dINJ] +peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 +decimals = 18 + +[dYdX] +peggy_denom = peggy0x92d6c1e31e14520e676a687f0a93788b716beff5 +decimals = 18 + +[ezETH] +peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 +decimals = 18 + +[fUSDT] +peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 +decimals = 8 + +[factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp] +peggy_denom = factory/inj153e2w8u77h4ytrhgry846k5t8n9uea8xtal6d7/lp +decimals = 0 + +[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira] +peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira +decimals = 6 + +[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj] +peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj +decimals = 6 + +[factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp] +peggy_denom = factory/inj1lv0mhwcu3y4p9av5nafct8j7y4ag6lmlfuxuy3/lp +decimals = 0 + +[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior] +peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior +decimals = 6 + +[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] +peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior +decimals = 6 + +[factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g] +peggy_denom = factory/inj1uukt3kqela4vsllvrqnrgllkna5wn3cm588w6k/inj1kwdranvwf6vl2grh99layugwdnph6um2e8k25g +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj149ltwdnpxrhx9al42s359glcjnsuc6x3gfemjd +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1ery8l6jquynn9a4cz2pff6khg8c68f7u20ufuj +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1up07dctjqud4fns75cnpejr4frmjtddztvuruc +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1vauk4puffxad4r3qs3ex0vfl5mkuw5xe8aya8c +decimals = 0 + +[factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty] +peggy_denom = factory/inj1wug8sewp6cedgkmrmvhl3lf3tulagm9h5uhctd/lpinj1w798gp0zqv3s9hjl3jlnwxtwhykga6rnx4llty +decimals = 0 + +[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] +peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi +decimals = 6 + +[factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA] +peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA +decimals = 6 + +[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] +peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk +decimals = 6 + +[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken] +peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken +decimals = 6 + +[hINJ] +peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 18 + +[ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E] +peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E +decimals = 6 + +[ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F] +peggy_denom = ibc/4457C4FE143DA253CBBE998681F090B51F67E0A6AFDC8D9347516DB519712C2F +decimals = 0 + +[ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E] +peggy_denom = ibc/88C49ADE2E583244058E4786C9FAE1AC431D55289EE31D59DDCC45201A60B82E +decimals = 0 + +[ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839] +peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 +decimals = 6 + +[inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw] +peggy_denom = inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku] +peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] +peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp +decimals = 6 + +[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] +peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 +decimals = 8 + +[lootbox1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 +decimals = 0 + +[nATOM] +peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 +decimals = 6 + +[nINJ] +peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +decimals = 18 + +[nTIA] +peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv +decimals = 6 + +[nUSDT] +peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s +decimals = 6 + +[nWETH] +peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt +decimals = 18 + +[peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599] +peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 +decimals = 8 + +[peggy0x43123e1d077351267113ada8bE85A058f5D492De] +peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De +decimals = 6 + +[peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7] +peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 +decimals = 0 + +[peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369] +peggy_denom = peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369 +decimals = 18 + +[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] +peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 +decimals = 6 + +[peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB] +peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB +decimals = 6 + +[peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c] +peggy_denom = peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c +decimals = 18 + +[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] +peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 +decimals = 10 + +[peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2] +peggy_denom = peggy0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2 +decimals = 18 + +[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] +peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 +decimals = 18 + +[proj] +peggy_denom = proj +decimals = 18 + +[sUSDE] +peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 +decimals = 18 + +[share11] +peggy_denom = share11 +decimals = 18 + +[share13] +peggy_denom = share13 +decimals = 18 + +[share14] +peggy_denom = share14 +decimals = 18 + +[share15] +peggy_denom = share15 +decimals = 18 + +[share16] +peggy_denom = share16 +decimals = 18 + +[share17] +peggy_denom = share17 +decimals = 18 + +[share18] +peggy_denom = share18 +decimals = 18 + +[share19] +peggy_denom = share19 +decimals = 18 + +[share20] +peggy_denom = share20 +decimals = 18 + +[share21] +peggy_denom = share21 +decimals = 18 + +[share22] +peggy_denom = share22 +decimals = 18 + +[share23] +peggy_denom = share23 +decimals = 18 + +[share24] +peggy_denom = share24 +decimals = 18 + +[share25] +peggy_denom = share25 +decimals = 18 + +[share26] +peggy_denom = share26 +decimals = 18 + +[share27] +peggy_denom = share27 +decimals = 18 + +[share28] +peggy_denom = share28 +decimals = 18 + +[share29] +peggy_denom = share29 +decimals = 18 + +[share30] +peggy_denom = share30 +decimals = 18 + +[share31] +peggy_denom = share31 +decimals = 18 + +[share9] +peggy_denom = share9 +decimals = 18 + +[stETH] +peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 +decimals = 18 + +[unknown] +peggy_denom = unknown +decimals = 0 + +[wBTC] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[wETH] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth +decimals = 8 + +[wUSDM] +peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 decimals = 18 diff --git a/client/metadata/assets/mainnet.ini b/client/metadata/assets/mainnet.ini index 5f6611ef..9a76e299 100644 --- a/client/metadata/assets/mainnet.ini +++ b/client/metadata/assets/mainnet.ini @@ -208,27 +208,27 @@ min_display_quantity_tick_size = 0.001 [0xdce84d5e9c4560b549256f34583fb4ed07c82026987451d5da361e6e238287b3] description = 'Mainnet Spot LUNA/UST' base = 6 -quote = 6 +quote = 18 min_price_tick_size = 0.00000001 -min_display_price_tick_size = 0.00000001 +min_display_price_tick_size = 0.00000000000000000001 min_quantity_tick_size = 100000 min_display_quantity_tick_size = 0.1 [0x0f1a11df46d748c2b20681273d9528021522c6a0db00de4684503bbd53bef16e] description = 'Mainnet Spot UST/USDT' -base = 6 +base = 18 quote = 6 min_price_tick_size = 0.0001 -min_display_price_tick_size = 0.0001 +min_display_price_tick_size = 100000000 min_quantity_tick_size = 10000 -min_display_quantity_tick_size = 0.01 +min_display_quantity_tick_size = 0.00000000000001 [0xfbc729e93b05b4c48916c1433c9f9c2ddb24605a73483303ea0f87a8886b52af] description = 'Mainnet Spot INJ/UST' base = 18 -quote = 6 +quote = 18 min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 +min_display_price_tick_size = 0.000000000000001 min_quantity_tick_size = 1000000000000000 min_display_quantity_tick_size = 0.001 @@ -751,8 +751,8 @@ base = 6 quote = 18 min_price_tick_size = 10000 min_display_price_tick_size = 0.00000001 -min_quantity_tick_size = 1000000000 -min_display_quantity_tick_size = 1000 +min_quantity_tick_size = 100000000 +min_display_quantity_tick_size = 100 [0x586409ac5f6d6e90a81d2585b9a8e76de0b4898d5f2c047d0bc025a036489ba1] description = 'Mainnet Spot WHALE/INJ' @@ -763,6 +763,15 @@ min_display_price_tick_size = 0.000001 min_quantity_tick_size = 1000000 min_display_quantity_tick_size = 1 +[0x1af8fa374392dc1bd6331f38f0caa424a39b05dd9dfdc7a2a537f6f62bde50fe] +description = 'Mainnet Spot USDe/USDT' +base = 18 +quote = 6 +min_price_tick_size = 0.0000000000000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 100000000000000000 +min_display_quantity_tick_size = 0.1 + [0xc8fafa1fcab27e16da20e98b4dc9dda45320418c27db80663b21edac72f3b597] description = 'Mainnet Spot HDRO/INJ' base = 6 @@ -781,6 +790,168 @@ min_display_price_tick_size = 0.00001 min_quantity_tick_size = 100000 min_display_quantity_tick_size = 0.1 +[0x25b545439f8e072856270d4b5ca94764521c4111dd9a2bbb5fbc96d2ab280f13] +description = 'Mainnet Spot PYTH/INJ' +base = 6 +quote = 18 +min_price_tick_size = 10000000 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 100000 +min_display_quantity_tick_size = 0.1 + +[0xeb95ab0b5416266b1987f1d46bcd5f63addeac68bbf5a089c5ed02484c97b6a3] +description = 'Mainnet Spot LVN/INJ' +base = 6 +quote = 18 +min_price_tick_size = 1000000 +min_display_price_tick_size = 0.000001 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 1 + +[0x85ccdb2b6022b0586da19a2de0a11ce9876621630778e28a5d534464cbfff238] +description = 'Mainnet Spot NONJA/INJ' +base = 18 +quote = 18 +min_price_tick_size = 0.00000001 +min_display_price_tick_size = 0.00000001 +min_quantity_tick_size = 100000000000000000000 +min_display_quantity_tick_size = 100 + +[0xd9089235d2c1b07261cbb2071f4f5a7f92fa1eca940e3cad88bb671c288a972f] +description = 'Mainnet Spot SOL/USDT' +base = 8 +quote = 6 +min_price_tick_size = 0.0001 +min_display_price_tick_size = 0.01 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 0.01 + +[0x8cd25fdc0d7aad678eb998248f3d1771a2d27c964a7630e6ffa5406de7ea54c1] +description = 'Mainnet Spot WMATIC/USDT' +base = 8 +quote = 6 +min_price_tick_size = 0.000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 10000000 +min_display_quantity_tick_size = 0.1 + +[0x1c2e5b1b4b1269ff893b4817a478fba6095a89a3e5ce0cccfcafa72b3941eeb6] +description = 'Mainnet Spot ARB/USDT' +base = 8 +quote = 6 +min_price_tick_size = 0.000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 10000000 +min_display_quantity_tick_size = 0.1 + +[0xd5ef157b855101a19da355aee155a66f3f2eea7baca787bd27597f5182246da4] +description = 'Mainnet Spot STRD/INJ' +base = 6 +quote = 18 +min_price_tick_size = 10000000 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 100000 +min_display_quantity_tick_size = 0.1 + +[0x1f5d69fc3d063e2a130c29943a0c83c3e79c2ba897fe876fcd82c51ab2ea61de] +description = 'Mainnet Spot sUSDe/USDe' +base = 18 +quote = 18 +min_price_tick_size = 0.00001 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 100000000000000 +min_display_quantity_tick_size = 0.0001 + +[0x6ad662364885b8a4c50edfc88deeef23338b2bd0c1e4dc9b680b054afc9b6b24] +description = 'Mainnet Spot ENA/USDT' +base = 18 +quote = 6 +min_price_tick_size = 0.0000000000000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 1000000000000000000 +min_display_quantity_tick_size = 1 + +[0xb03ead807922111939d1b62121ae2956cf6f0a6b03dfdea8d9589c05b98f670f] +description = 'Mainnet Spot BONUS/USDT' +base = 8 +quote = 6 +min_price_tick_size = 0.000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 100000000 +min_display_quantity_tick_size = 1 + +[0x35a83ec8948babe4c1b8fbbf1d93f61c754fedd3af4d222fe11ce2a294cd74fb] +description = 'Mainnet Spot W/USDT' +base = 6 +quote = 6 +min_price_tick_size = 0.001 +min_display_price_tick_size = 0.001 +min_quantity_tick_size = 100000 +min_display_quantity_tick_size = 0.1 + +[0x315e5cd5ee24b3a1e1396679885b5e42bbe18045105d1662c6618430a131d117] +description = 'Mainnet Spot XIII/INJ' +base = 6 +quote = 18 +min_price_tick_size = 10000 +min_display_price_tick_size = 0.00000001 +min_quantity_tick_size = 100000000 +min_display_quantity_tick_size = 100 + +[0xd166688623206f9931307285678e9ff17cecd80a27d7b781dd88cecfba3b1839] +description = 'Mainnet Spot BLACK/INJ' +base = 6 +quote = 18 +min_price_tick_size = 1000000 +min_display_price_tick_size = 0.000001 +min_quantity_tick_size = 1000000 +min_display_quantity_tick_size = 1 + +[0x2be72879bb90ec8cbbd7510d0eed6a727f6c2690ce7f1397982453d552f9fe8f] +description = 'Mainnet Spot OMNI/USDT' +base = 18 +quote = 6 +min_price_tick_size = 0.00000000000001 +min_display_price_tick_size = 0.01 +min_quantity_tick_size = 10000000000000000 +min_display_quantity_tick_size = 0.01 + +[0xbd370d025c3693e8d658b44afe8434fa61cbc94178d0871bffd49e25773ef879] +description = 'Mainnet Spot ASG/INJ' +base = 8 +quote = 18 +min_price_tick_size = 1000 +min_display_price_tick_size = 0.0000001 +min_quantity_tick_size = 100000000 +min_display_quantity_tick_size = 1 + +[0xacb0dc21cddb15b686f36c3456f4223f701a2afa382006ef478d156439483b4d] +description = 'Mainnet Spot EZETH/WETH' +base = 18 +quote = 18 +min_price_tick_size = 0.00001 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 10000000000000 +min_display_quantity_tick_size = 0.00001 + +[0x960038a93b70a08f1694c4aa5c914afda329063191e65a5b698f9d0676a0abf9] +description = 'Mainnet Spot SAGA/USDT' +base = 6 +quote = 6 +min_price_tick_size = 0.001 +min_display_price_tick_size = 0.001 +min_quantity_tick_size = 100000 +min_display_quantity_tick_size = 0.1 + +[0xca8121ea57a4f7fd3e058fa1957ebb69b37d52792e49b0b43932f1b9c0e01f8b] +description = 'Mainnet Spot wUSDM/USDT' +base = 18 +quote = 6 +min_price_tick_size = 0.0000000000000001 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 100000000000000000 +min_display_quantity_tick_size = 0.1 + [0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce] description = 'Mainnet Derivative BTC/USDT PERP' base = 0 @@ -829,9 +1000,9 @@ min_display_quantity_tick_size = 0.01 [0x8c7fd5e6a7f49d840512a43d95389a78e60ebaf0cde1af86b26a785eb23b3be5] description = 'Mainnet Derivative OSMO/UST PERP' base = 0 -quote = 6 +quote = 18 min_price_tick_size = 1000 -min_display_price_tick_size = 0.001 +min_display_price_tick_size = 0.000000000000001 min_quantity_tick_size = 0.01 min_display_quantity_tick_size = 0.01 @@ -1006,278 +1177,13393 @@ min_display_price_tick_size = 0.00001 min_quantity_tick_size = 10 min_display_quantity_tick_size = 10 -[AAVE] -peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 -decimals = 18 +[0x4d42425fc3ccd6b61b8c4ad61134ab3cf21bdae1b665317eff671cfab79f4387] +description = 'Mainnet Derivative OMNI/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 100000 +min_display_price_tick_size = 0.1 +min_quantity_tick_size = 0.01 +min_display_quantity_tick_size = 0.01 -[ANDR] -peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E -decimals = 6 +[0x0160a0c8ecbf5716465b9fc22bceeedf6e92dcdc688e823bbe1af3b22a84e5b5] +description = 'Mainnet Derivative XAU/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 10000 +min_display_price_tick_size = 0.01 +min_quantity_tick_size = 0.0001 +min_display_quantity_tick_size = 0.0001 -[APE] -peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 -decimals = 18 +[0xedc48ec071136eeb858b11ba50ba87c96e113400e29670fecc0a18d588238052] +description = 'Mainnet Derivative XAG/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 1000 +min_display_price_tick_size = 0.001 +min_quantity_tick_size = 0.01 +min_display_quantity_tick_size = 0.01 -[APP] -peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 -decimals = 18 +[0x3c5bba656074e6e84965dc7d99a218f6f514066e6ddc5046acaff59105bb6bf5] +description = 'Mainnet Derivative EUR/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 10 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 0.1 +min_display_quantity_tick_size = 0.1 -[ARB] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd -decimals = 8 +[0x5c0de20c02afe5dcc1c3c841e33bfbaa1144d8900611066141ad584eeaefbd2f] +description = 'Mainnet Derivative GBP/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 10 +min_display_price_tick_size = 0.00001 +min_quantity_tick_size = 0.1 +min_display_quantity_tick_size = 0.1 -[ATOM] -peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 -decimals = 6 +[0xf1ceea00e01327497c321679896e5e64ad2a4e4b88e7324adeec7661351b6d93] +description = 'Mainnet Derivative BODEN/USDT PERP' +base = 0 +quote = 6 +min_price_tick_size = 100 +min_display_price_tick_size = 0.0001 +min_quantity_tick_size = 1 +min_display_quantity_tick_size = 1 -[AUTISM] -peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism -decimals = 6 +[0x0d4c722badb032f14dfc07355258a4bcbd354cbc5d79cb5b69ddd52b1eb2f709] +description = 'Mainnet Derivative BTC/wUSDM Perp' +base = 0 +quote = 18 +min_price_tick_size = 1000000000000000000 +min_display_price_tick_size = 1 +min_quantity_tick_size = 0.0001 +min_display_quantity_tick_size = 0.0001 -[AXS] -peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b +[ tether] +peggy_denom = inj1wpeh7cm7s0mj7m3x6vrf5hvxfx2xusz5l27evk decimals = 18 -[Axelar Wrapped USDC] -peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 +[$ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien decimals = 6 -[BRETT] -peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett +[$AOI] +peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi decimals = 6 -[CANTO] -peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 -decimals = 18 +[$Babykira] +peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira +decimals = 6 -[CHZ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +[$NINJA] +peggy_denom = inj1yngv6had7vm443k220q9ttg0sc4zkpdwp70fmq +decimals = 6 + +[$TunaSniper] +peggy_denom = inj1nmzj7jartqsex022j3kkkszeayypqkzl5vpe59 decimals = 8 -[CRE] -peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 +[$WIF] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl +decimals = 8 + +[$wifs] +peggy_denom = factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoes decimals = 6 -[DOJO] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 -decimals = 18 +[...] +peggy_denom = factory/inj1jj7z2f69374z6lmph44ztnxghgczyylqgc7tzw/dot +decimals = 6 -[DOT] -peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 -decimals = 10 +[0XGNSS] +peggy_denom = inj1cfv8rrcete7vengcken0mjqt8q75vpcc0j0my5 +decimals = 8 -[ETHBTCTrend] -peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 +[1INCH] +peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 decimals = 18 -[EVMOS] -peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 +[2024MEME] +peggy_denom = inj1m2w8aenm3365w8t4x7jvpassk9ju7xq3snahhh +decimals = 8 + +[4] +peggy_denom = ibc/F9823EBB2D7E55C5998A51A6AC1572451AB81CE1421E9AEF841902D78EA7B5AD +decimals = 0 + +[79228162514264337593543950342] +peggy_denom = ibc/80A315889AFA247F37386C42CC38EAAF25B8C7B8DA8FC5EC5D7EEC72DCE9B3D0 +decimals = 0 + +[AAAA] +peggy_denom = inj1wlrndkkyj90jsp9mness2kqp5x0huzuhuhx28d decimals = 18 -[GF] -peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 +[AAVE] +peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 decimals = 18 -[GINGER] -peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/GINGER +[ABC] +peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/ABC decimals = 6 -[GRT] -peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 +[ADA] +peggy_denom = inj1vla438tlw69h93crmq3wq9l79d6cqwecqef3ps decimals = 18 -[GYEN] -peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 +[ADO] +peggy_denom = ibc/CF0C070562EC0816B09DDD9518328DCCFBE6C4388907EFF883FD4BE4E510005E decimals = 6 -[HDRO] -peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro +[ADOLF] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/adolf decimals = 6 -[HUAHUA] -peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB +[AGIX] +peggy_denom = inj163fdg2e00gfdx9mjvarlgljuzt4guvx8ghhwml +decimals = 8 + +[AI] +peggy_denom = inj1sw0zn2vfy6wnfg0rht7r80tq3jq4ukjafjud7x +decimals = 8 + +[AININJA] +peggy_denom = inj1vun8dfgm6rr9xv40p4tpmd8lcc9cvt3384dv7w decimals = 6 -[INJ] -peggy_denom = inj +[AINJ] +peggy_denom = inj10k45sksxulzp7avvmt2fud25cmywk6u75pwgd2 +decimals = 8 + +[AJNIN] +peggy_denom = inj1msvvtt2e6rshp0fyqlp7gzceffzgymvwjucwyh decimals = 18 -[KATANA] -peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana +[AK47] +peggy_denom = factory/inj1y207pve646dtac77v7qehw85heuy92c03t7t07/ak47 decimals = 6 -[KAVA] -peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 +[AKITA] +peggy_denom = factory/inj1z0yv9ljw68eh4pec2r790jw8yal4dt5wnu4wuk/akita decimals = 6 -[KIRA] -peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA +[ALASKA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4 +decimals = 18 + +[ALCHECN] +peggy_denom = inj1fxmws9tyrfs7ewgkh0ktae3f5pqffd4uudygze decimals = 6 -[KUJI] -peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 +[ALE] +peggy_denom = inj1yq0394aplhz94nrthglzsx2c29e8spyrq6u8ah +decimals = 18 + +[ALEM] +peggy_denom = ibc/FE5CF6EA14A5A5EF61AFBD8294E7B245DF4523F6F3B38DE8CC65A916BCEA00B4 decimals = 6 -[LDO] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +[ALFAROMEO] +peggy_denom = inj1jvtzkr6cwd4dzeqq4q74g2qj3gp2gvmuar5c0t +decimals = 6 + +[ALIEN] +peggy_denom = factory/inj175fuhj3rlyttt255fsc6fwyteealzt67szpvan/ALIEN +decimals = 6 + +[ALIENWARE] +peggy_denom = inj128hmvp03navfcad7fjdsdnjdaxsp8q8z9av3th +decimals = 6 + +[ALIGATOR] +peggy_denom = inj1t6uqhmlgpju7265aelawdkvn3xqnq3jv8j60l7 +decimals = 6 + +[ALPHA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u decimals = 8 -[LINK] -peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +[ALPHANET] +peggy_denom = inj135fkkvwr9neffh40pgg24as5mwwuuku33n8zzw +decimals = 8 + +[AMM] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/AMM +decimals = 6 + +[AMOGUS] +peggy_denom = factory/inj1a47ddtzh8le8ukznc9v3dvqs5w5anwjjvy8lqj/amogus +decimals = 6 + +[ANALOS] +peggy_denom = factory/inj1g8yvnh0lzxc06qe2n4qux5cqlz8h6gnpvaxzus/analos +decimals = 6 + +[ANBU] +peggy_denom = factory/inj1aqnupu0z86nyttmpejmgu57vx22wmuz9fdg7ps/ANBU +decimals = 6 + +[ANDR] +peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E +decimals = 6 + +[ANDRE] +peggy_denom = inj1qtqd73kkp9jdm7tzv3vrjn9038e6lsk929fel8 +decimals = 8 + +[ANDY] +peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/andy +decimals = 6 + +[ANIME] +peggy_denom = inj1mas82tve60sh3tkh879chgjkeaggxpeydwkl2n decimals = 18 -[LUNA] -peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 +[ANK] +peggy_denom = inj16lxeq4xcdefptg39p9x78z5hkn0849z9z7xkyt +decimals = 18 + +[ANONS] +peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/ANONS decimals = 6 -[MATIC] -peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +[AOT] +peggy_denom = factory/inj1yjeq7tz86a8su0asaxckpa3a9rslfp97vpq3zq/AOT +decimals = 6 + +[APC] +peggy_denom = inj150382m6ah6lg3znprdrsggx38xl47fs4rmzy3m decimals = 18 -[NEOK] -peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 +[APE] +peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 decimals = 18 -[NINJA] -peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja +[APEINJ] +peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj decimals = 6 -[Noble USD Coin] -peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E +[APOLLO] +peggy_denom = ibc/1D10FF873E3C5EC7263A7658CB116F9535EC0794185A8153F2DD662E0FA08CE5 decimals = 6 -[ORAI] -peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 +[APP] +peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 +decimals = 18 + +[APPLE] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/APPLE decimals = 6 -[PHUC] -peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc +[APSO] +peggy_denom = inj1sqsthjm8fpqc7seaa6lj08k7ja43jsd70rgy09 decimals = 6 -[PUG] -peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b +[APT] +peggy_denom = inj1mrltq7kh35xjkdzvul9ky077khsa5qatc0ylxj +decimals = 6 + +[AQLA] +peggy_denom = ibc/46B490B10E114ED9CE18FA1C92394F78CAA8A907EC72D66FF881E3B5EDC5E327 +decimals = 6 + +[ARB] +peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 +decimals = 8 + +[ARBlegacy] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd +decimals = 8 + +[ARCH] +peggy_denom = ibc/9C6E75FE14DF8959B7CC6E77398DF825B9815C753BB49D2860E303EA2FD803DD decimals = 18 -[PYTH] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +[ARCHER] +peggy_denom = inj1ype9ps9ep2qukhuuyf4s2emr7qnexkcfa09p34 decimals = 6 -[QNT] -peggy_denom = peggy0x4a220E6096B25EADb88358cb44068A3248254675 +[ARIZO] +peggy_denom = inj1mdgw6dnw7hda2lancr0zgy6retrd2s5m253qud +decimals = 6 + +[ARKI] +peggy_denom = inj1zhnaq7aunhzp0q6g5nrac9dxe5dg0ws0sqzftv decimals = 18 -[QUNT] -peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +[ARMANI] +peggy_denom = ibc/0C04597A68991F93CE8C9EF88EA795179CD020695041D00911E5CFF023D415CC decimals = 6 -[SNOWY] -peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY +[ARTEMIS] +peggy_denom = inj1yt49wv3up03hnlsfd7yh6dqfdxwxayrk6as6al +decimals = 8 + +[ARTINJ] +peggy_denom = inj1qgj0lnaq9rxcstjaevvd4q43uy4dk77e6mrza9 decimals = 6 -[SNX] -peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F +[ARVI] +peggy_denom = inj16ff6zvsaay89w7e5ukvz83f6f9my98s20z5ea3 decimals = 18 -[SOL] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +[ARYAN] +peggy_denom = inj16z7ja300985vuvkt975zyvtccu80xmzcfr4upt +decimals = 18 + +[ASG] +peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 decimals = 8 -[SOMM] -peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +[ASH] +peggy_denom = factory/inj1uecmky6hkcexz86hqgrl5p5krg8kl4gfldjkrp/ASH decimals = 6 -[STRD] -peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 +[ASI] +peggy_denom = inj1wgd5c8l27w8sac4tdfcxl2zyu5cfurtuxdvfx9 +decimals = 18 + +[ASS] +peggy_denom = inj1fj7z77awl6srtmcuux3xgq995uempgx5hethh3 +decimals = 18 + +[ASSYN] +peggy_denom = factory/inj1qzn0ys7rht689z4p6pq99u6kc92jnkqyj02cur/ASSYN decimals = 6 -[SUSHI] -peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 +[ASTR] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x decimals = 18 -[TALIS] -peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis +[ASTRO] +peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 decimals = 6 -[TIA] -peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 +[ASTROBOT] +peggy_denom = inj153k5xjpqx39jm06gcxvjq5sxl8f7j79n72q9pz +decimals = 18 + +[ASTROGEMS] +peggy_denom = inj1eqzdmkdr2l72y75m7hx3rwnfcugzu0hhw7l76l +decimals = 8 + +[ASTROINJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn +decimals = 8 + +[ASTROLAND] +peggy_denom = inj16q7u3mzp3qmm6vf5a9jfzp46rs2dj68cuktzyw +decimals = 8 + +[ASTROLOGY] +peggy_denom = inj1u9th8dxhyrkz3tr2h5s6z2yap2s6e6955jk4yf +decimals = 8 + +[ASTROPAD] +peggy_denom = inj1tvcarn0xz9p9rxrgev5a2qjmrtqtnl4xtu5vsu +decimals = 8 + +[ASTROPEPE] +peggy_denom = ibc/03BC83F4E4972621EAE3144FC91AED13AF3541A90A51B690425C95D1E03850D9 decimals = 6 -[UNI] -peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 +[ASTROSOL] +peggy_denom = inj12vy3zzany7gtl9l9hdkzgvvr597r2ta48tvylj +decimals = 8 + +[ASTROXMAS] +peggy_denom = inj19q50d6sgc3sv2hcvlfalc5kf2fc576v4nga849 +decimals = 8 + +[ASUKA] +peggy_denom = inj1c64fwq7xexhh58spf2eer85yz3uvv3y659j5dd decimals = 18 -[USC Coin (Wormhole from Ethereum)] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +[ASWC] +peggy_denom = factory/inj10emnhmzncp27szh758nc7tvl3ph9wfxgej5u5v/ASWC decimals = 6 -[USD Coin (Wormhole from Solana)] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +[ATOM] +peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 decimals = 6 -[USDC] -peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +[ATOM-LUNA-LP] +peggy_denom = ibc/0ED853D2B77215F953F65364EF1CA7D8A2BD7B7E3009196BBA18E884FE3D3576 decimals = 6 -[USDT] -peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +[ATOM1KLFG] +peggy_denom = ibc/2061C894621F0F53F6FEAE9ABD3841F66D27F0D7368CC67864508BDE6D8C4522 decimals = 6 -[USDTkv] -peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB +[AUTISM] +peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism decimals = 6 -[USDY] -peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C +[AUUU] +peggy_denom = ibc/4CEF2F778CDA8306B6DE18A3A4C4450BEBC84F27FC49F91F3617A37203FE84B2 +decimals = 6 + +[AVAX] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 +decimals = 8 + +[AXL] +peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 +decimals = 6 + +[AXS] +peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b decimals = 18 -[UST] -peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C +[AZUKI] +peggy_denom = inj1l5qrquc6kun08asp6dt50zgcxes9ntazyvs9eu +decimals = 8 + +[Aave] +peggy_denom = ibc/49265FCAA6CC20B59652C0B45B2283A260BB19FC183DE95C29CCA8E01F8B004C +decimals = 18 + +[Alaskan Malamute] +peggy_denom = inj1wndunmgj56h5cssn96hhdh49ssclc24rfl9vr4 +decimals = 18 + +[Alien Token] +peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/aoi decimals = 6 -[WBTC] -peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 +[Alpha Coin] +peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u decimals = 8 -[WETH] -peggy_denom = peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 +[Alpha Pro Club] +peggy_denom = inj1q2u8r40uh0ykqrjwszppz6yj2nvst4xvfvks29 +decimals = 8 + +[ApeCoin] +peggy_denom = ibc/8A13F5DA968B4D526E9DC5AE20B584FE62462E80AF06B9D0EA0B0DB35ABBBF27 decimals = 18 -[WHALE] -peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 +[Apots Doge ] +peggy_denom = inj1dgnrks2s53jd5a0qsuhyvryhk4s03f5mxv9khy decimals = 6 -[WMATIC] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +[April Fool's Day] +peggy_denom = inj1m9vaf9rm6qfjtq4ymupefkxjtv7vake0z4fc35 +decimals = 6 + +[Aptos Coin (Wormhole)] +peggy_denom = ibc/D807D81AB6C2983C9DCC2E1268051C4195405A030E1999549C562BCB7E1251A5 decimals = 8 -[XBX] -peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 +[Arbitrum] +peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 decimals = 18 -[XPRT] -peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB +[Arbitrum (legacy)] +peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd +decimals = 8 + +[Arbitrum axlETH] +peggy_denom = ibc/A124994412FAC16975DF2DA42D7AFDB538A1CFCE0E40FB19620BADF6292B0A62 +decimals = 18 + +[Artro] +peggy_denom = factory/inj13r3azv5009e8w3xql5g0tuxug974ps6eed0czz/Artro decimals = 6 -[ZIG] -peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 +[Astar] +peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x decimals = 18 -[hINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +[Astro-Injective] +peggy_denom = inj1sdk8sm96c7hkkax0wzxzhde9z5rpu6cr4ld8dn +decimals = 8 + +[AstroGems] +peggy_denom = inj122y9wxxmpyu2rj5ju30uwgdvk9sj020z2zt7rv +decimals = 8 + +[Astrophile] +peggy_denom = inj1y07h8hugnqnqvrpj9kmjpsva7pj4yjwjjkd0u4 decimals = 18 -[nINJ] -peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +[Axelar] +peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc +decimals = 6 + +[Axie Infinity Shard] +peggy_denom = ibc/EB519ECF709F0DB6BA1359F91BA2DDC5A07FB9869E1768D377EFEF9DF33DC4AB decimals = 18 -[stINJ] -peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 +[BABY] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BABY +decimals = 6 + +[BABY GINGER] +peggy_denom = factory/inj15zruc9fw2qw9sc3pvlup5qmmqsk5pcmck7ylhw/BABYGINGER +decimals = 6 + +[BABY NINJA] +peggy_denom = factory/inj1hs5chngjfhjwc4fsajyr50qfu8tjqsqrj9rf29/baby-ninja +decimals = 6 + +[BABYDEK] +peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/BABYDEK +decimals = 6 + +[BABYDGNZ] +peggy_denom = inj1tyvchyp04yscelq30q6vzngn9wvmjw446sw786 +decimals = 6 + +[BABYDOGE] +peggy_denom = inj1nk2x5ll6guwt84aagnw82e7ajmlwde6w2zmpdw +decimals = 6 + +[BABYGINGER] +peggy_denom = inj17uyp6dz3uyq40ckkzlgrze2k25zhgvdqa3yh0v +decimals = 6 + +[BABYHACHI] +peggy_denom = factory/inj1hjfm3z53dj4ct5nxef5ghn8hul0y53u7ytv8st/babyhachi +decimals = 6 + +[BABYINJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap +decimals = 8 + +[BABYIPEPE] +peggy_denom = factory/inj14u2wghxjswct5uznt40kre5ct7a477m2ma5hsm/babyipepe +decimals = 6 + +[BABYKIRA] +peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/BABYKIRA +decimals = 6 + +[BABYKISHU] +peggy_denom = factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babykishu +decimals = 6 + +[BABYNINJA] +peggy_denom = factory/inj12lv4gm863c4pj0utr7zgzp46d6p86krp8stqgp/BABYNINJA +decimals = 6 + +[BABYPANDA] +peggy_denom = factory/inj15e7ah9tmmhyd3qafupnwe8uj74nc7gkehkrnuw/babypanda +decimals = 6 + +[BABYPEPE] +peggy_denom = factory/inj1un9z8767u2r8snaqqcysnm9skxf36dspqx86sy/babypepe +decimals = 6 + +[BABYQUNT] +peggy_denom = factory/inj1xdm6zdjcwu4vy32yp2g2dazwg2ug50w2k7sy9p/BABYQUNT +decimals = 6 + +[BABYROLL] +peggy_denom = inj16rvlt87pmpntkyv3x4zfvgmyxt8ejj9mpcc72m decimals = 18 -[steadyBTC] -peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d +[BABYSHROOM] +peggy_denom = inj1dch98v88yhksd8j4wsypdua0gk3d9zdmsj7k59 +decimals = 6 + +[BABYSPUUN] +peggy_denom = inj1n73ty9gxej3xk7c0hhktjdq3ppsekwjnhq98p5 +decimals = 6 + +[BAD] +peggy_denom = ibc/C04478BE3CAA4A14EAF4A47967945E92ED2C39E02146E1577991FC5243E974BB +decimals = 6 + +[BADKID] +peggy_denom = ibc/A0C5AD197FECAF6636F589071338DC7ECD6B0809CD3A5AB131EAAA5395E7E5E8 +decimals = 6 + +[BAG] +peggy_denom = inj13dcqczqyynw08m0tds50e0z2dsynf48g4uafac decimals = 18 -[steadyETH] -peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 +[BAJE] +peggy_denom = factory/inj10yymeqd0hydqmaq0gn6k6s8795svjq7gt5tmsf/BAJE +decimals = 6 + +[BALLOON] +peggy_denom = inj17p4x63h8gpfd7f6whmmcah6vq6wzzmejvkpqms +decimals = 18 + +[BAMBOO] +peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo +decimals = 6 + +[BAND] +peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 +decimals = 18 + +[BAPE] +peggy_denom = factory/inj16mnhqpzuj4s4ermuh76uffaq3r6rf8dw5v9rm3/BAPE +decimals = 6 + +[BAR] +peggy_denom = factory/inj1j4qcyfayj64nyzl4lhlacuz62zak5uz5ngc576/BAR +decimals = 6 + +[BARCA] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/barcelona +decimals = 6 + +[BARRY] +peggy_denom = inj1ykpcvay9rty363wtxr9749qgnnj3rlp94r302y decimals = 18 + +[BASE] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/BASE +decimals = 6 + +[BASTARD] +peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/BASTARD +decimals = 6 + +[BAT] +peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF +decimals = 18 + +[BATMAN] +peggy_denom = inj158jjagrr499yfc6t5kd9c989tx6f7ukrulj280 +decimals = 6 + +[BAYC] +peggy_denom = bayc +decimals = 18 + +[BCA] +peggy_denom = factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCA +decimals = 6 + +[BCAT] +peggy_denom = factory/inj12ygx3scssu2d9rymtppaf6nks8qg08z9w3tml9/BCAT +decimals = 6 + +[BCC] +peggy_denom = factory/inj1hr4rj6k72emjh9u7l6zg58c0n0daezz68060aq/BCC +decimals = 6 + +[BCUBE] +peggy_denom = peggy0x93C9175E26F57d2888c7Df8B470C9eeA5C0b0A93 +decimals = 18 + +[BEANS] +peggy_denom = inj1j7e95jmqaqgazje8kvuzp6kh2j2pr6n6ffvuq5 +decimals = 8 + +[BEAR] +peggy_denom = factory/inj1jhwwydrfxe33r7ayy7nnrvped84njx97mma56r/BEAR +decimals = 6 + +[BEAST] +peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be +decimals = 6 + +[BECKHAM] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/beckham +decimals = 6 + +[BEEN] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/been +decimals = 6 + +[BELL] +peggy_denom = factory/inj1ht2x2pyj42y4y48tj9n5029w8j9f4sxu0zkwq4/BELL +decimals = 6 + +[BENANCE] +peggy_denom = inj1292223n3vfhrxndvlzsvrrlkkyt7jyeydf77h0 +decimals = 6 + +[BENJAMIN] +peggy_denom = inj1cr970pgvudvgfva60jtxnztgsu5ngm7e80e7vd +decimals = 18 + +[BERB] +peggy_denom = inj1rlyw9tl7e5u9haunh39mh87clvmww5p39dd9kv +decimals = 18 + +[BERLIN] +peggy_denom = inj1atu2677agwrskzxj4a5dn8lq43nhmeyjz5tsfq +decimals = 18 + +[BERNESE] +peggy_denom = ibc/28E915262E40A4CA526D5BFB0BAF67A1C024F8318B779C3379147A6C26D11EA8 +decimals = 6 + +[BICHO] +peggy_denom = inj1hd42hz95w6w3rt5pkeuj783a5mtx8hx28p2eg9 +decimals = 18 + +[BIDEN] +peggy_denom = inj1d2ymlnpvqny9x2qfqykzp8geq3gmg9qrm3qwhe +decimals = 6 + +[BIGSHROOM] +peggy_denom = inj1kld2dd6xa5rs98v7afv3l57m6s30hyj8dcuhh4 +decimals = 6 + +[BIN] +peggy_denom = factory/inj1ax459aj3gkph6z0sxaddk6htzlshqlp5mfwqvx/catinbin +decimals = 6 + +[BINJ] +peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/bINJ +decimals = 18 + +[BINJANS] +peggy_denom = factory/inj1aj47a2vflavw92yyhn7rpa32f0dazf5cfj59v8/binjans +decimals = 6 + +[BINJE] +peggy_denom = inj10dysh3p4q8nh5zzhsq5j84de5pq6dxahnplt2f +decimals = 6 + +[BIRB] +peggy_denom = inj136zssf58vsk9uge7ulgpw9umerzcuu0kxdu5dj +decimals = 6 + +[BITCOIN] +peggy_denom = factory/inj1aj4yhftluexp75mlfmsm7sfjemrtt3rjkg3q3h/BITCOIN +decimals = 6 + +[BITS] +peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/bits +decimals = 6 + +[BITZ] +peggy_denom = ibc/01A69EE21F6A76CAA8D0DB900AF2789BF665B5B67D89A7D69E7ECF7F513CD0CA +decimals = 6 + +[BJNO] +peggy_denom = inj1jlugmrq0h5l5ndndcq0gyav3flwmulsmdsfh58 +decimals = 18 + +[BLACK] +peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black +decimals = 6 + +[BLACK PANTHER] +peggy_denom = inj12tkaz9e540zszf5vtlxc0aksywu9rejnwxmv3n +decimals = 18 + +[BLACKHOLE PROTOCOL] +peggy_denom = peggy0xd714d91A169127e11D8FAb3665d72E8b7ef9Dbe2 +decimals = 18 + +[BLD] +peggy_denom = ibc/B7933C59879BFE059942C6F76CAF4B1609D441AD22D54D42DAC00CE7918CAF1F +decimals = 6 + +[BLEND] +peggy_denom = ibc/45C0FE8ACE1C9C8BA38D3D6FDEBDE4F7198A434B6C63ADCEFC3D32D12443BB84 +decimals = 6 + +[BLISS] +peggy_denom = factory/inj15tz959pa5mlghhku2vm5sq45jpp4s0yf23mk6d/BLISS +decimals = 6 + +[BLOCKTOWER] +peggy_denom = inj1cnldf982xlmk5rzxgylvax6vmrlxjlvw7ss5mt +decimals = 8 + +[BLUE] +peggy_denom = factory/inj130nkx4u8p5sa2jl4apqlnnjlej2ymfq0e398w9/BLUE +decimals = 6 + +[BLUE CUB DAO] +peggy_denom = ibc/B692197280D4E62F8D9F8E5C0B697DC4C2C680ED6DE8FFF0368E0552C9215607 +decimals = 6 + +[BLUEINJ] +peggy_denom = inj1aalqnnh24ddn3vd9plnevwnxd03x7sevm77lps +decimals = 8 + +[BLUEINJECTIVE] +peggy_denom = inj1zkm3r90ard692tvrjrhu7vtkzlqpkjkdwwc57s +decimals = 8 + +[BMO] +peggy_denom = inj17fawlptgvptqwwtgxmz0prexrz2nel6zqdn2gd +decimals = 8 + +[BMOS] +peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E +decimals = 6 + +[BMSCWA] +peggy_denom = factory/inj1v888gdj5k9pykjca7kp7jdy6cdalfj667yws54/BabyMiloSillyCoqWifAnalos +decimals = 6 + +[BMW] +peggy_denom = inj1fzqfk93lrmn7pgmnssgqwrlmddnq7w5h3e47pc +decimals = 6 + +[BMX] +peggy_denom = inj12u37kzv3ax6ccja5felud8rtcp68gl69hjun4v +decimals = 18 + +[BNB] +peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 +decimals = 18 + +[BNINJA] +peggy_denom = factory/inj1k7tuhcp7shy4qwkwrg6ckjteucg44qfm79rkmx/BNINJA +decimals = 6 + +[BOB] +peggy_denom = inj1cwaw3cl4wscxadtmydjmwuelqw95w5rukmk47n +decimals = 18 + +[BOBURU] +peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/boburu +decimals = 6 + +[BODED] +peggy_denom = inj10xtrreumk28cucrtgse232s3gw2yxcclh0wswd +decimals = 6 + +[BODEN] +peggy_denom = boden +decimals = 9 + +[BOME] +peggy_denom = factory/inj1ne284hkg3yltn7aq250lghkqqrywmk2sk9x2yu/BOME +decimals = 6 + +[BONE] +peggy_denom = inj1kpp05gff8xgs0m9k7s2w66vvn53n77t9t6maqr +decimals = 6 + +[BONJA] +peggy_denom = factory/inj18v0e5dj2s726em58sg69sgmrnqmd08q5apgklm/bj +decimals = 6 + +[BONJO] +peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/BONJO +decimals = 6 + +[BONK] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch +decimals = 5 + +[BONKINJ] +peggy_denom = inj173f5j4xtmah4kpppxgh8p6armad5cg5e6ay5qh +decimals = 6 + +[BONKJA] +peggy_denom = factory/inj1gc8fjmp9y8kfsy3s6yzucg9q0azcz60tm9hldp/bonkja +decimals = 6 + +[BONSAI] +peggy_denom = factory/inj13jx69l98q0skvwy3n503e0zcrh3wz9dcqxpwxy/bonsai +decimals = 6 + +[BONUS] +peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF +decimals = 8 + +[BOOM] +peggy_denom = inj1xuu84fqdq45wdqj38xt8fhxsazt88d7xumhzrn +decimals = 18 + +[BOOSH] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/boosh +decimals = 6 + +[BOY] +peggy_denom = ibc/84DA08CF29CD08373ABB0E36F4E6E8DC2908EA9A8E529349EBDC08520527EFC2 +decimals = 6 + +[BOYS] +peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/boys +decimals = 6 + +[BOZO] +peggy_denom = inj1mf5dj5jscuw3z0eykkfccy2rfz7tvugvw2rkly +decimals = 18 + +[BPEPE] +peggy_denom = inj1pel9sz78wy4kphn2k7uwv5f6txuyvtrxn9j6c3 +decimals = 8 + +[BRETT] +peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett +decimals = 6 + +[BRNZ] +peggy_denom = ibc/713B768D6B89E4DEEFDBE75390CA2DC234FAB6A016D3FD8D324E08A66BF5070F +decimals = 0 + +[BRO] +peggy_denom = factory/inj1cd4q88qplpve64hzftut2cameknk2rnt45kkq5/BRO +decimals = 6 + +[BRRR] +peggy_denom = inj16veue9c0sz0mp7dnf5znsakqwt7cnjpwz3auau +decimals = 18 + +[BRUCELEE] +peggy_denom = inj1dtww84csxcq2pwkvaanlfk09cer93xzc9kwnzf +decimals = 6 + +[BRZ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk +decimals = 4 + +[BSKT] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 +decimals = 5 + +[BTC] +peggy_denom = btc +decimals = 8 + +[BTCETF] +peggy_denom = inj1gzmkap8g09h70keaph9utxy9ahjvuuhk5tzpw9 +decimals = 18 + +[BUFFON] +peggy_denom = inj16m2tnugwtrdec80fxvuaxgchqcdpzhf2lrftck +decimals = 18 + +[BUGS] +peggy_denom = factory/inj1zzc2wt4xzy9yhxz7y8mzcn3s6zwvajyutgay3c/BUGS +decimals = 6 + +[BUILD] +peggy_denom = inj1z9utpqxm586476kzpk7nn2ukhnydmu8vchhqlu +decimals = 18 + +[BUL] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bul +decimals = 6 + +[BULL] +peggy_denom = factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/BULL +decimals = 6 + +[BULLS] +peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls +decimals = 6 + +[BURGE] +peggy_denom = inj1xcmamawydqlnqde7ah3xq7gzye9acwkmc5k5ne +decimals = 18 + +[BUS] +peggy_denom = inj1me9svqmf539hfzrfhw2emm2s579kv73w77u8yz +decimals = 18 + +[BUSD] +peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 +decimals = 18 + +[BUSD (BEP-20)] +peggy_denom = ibc/A8F9B4EC630F52C13D715E373A0E7B57B3F8D870B4168DADE0357398712ECC0E +decimals = 18 + +[BWH] +peggy_denom = ibc/9A31315BECC84265BCF32A31E4EB75C3B59ADCF8CCAE3C6EF8D0DF1C4EF829EB +decimals = 6 + +[BYE] +peggy_denom = inj1zfaug0dfg7zmd888thjx2hwuas0vl2ly4euk3r +decimals = 18 + +[Baby Corgi] +peggy_denom = ibc/9AC0F8299A5157831C7DF1AE52F178EFBA8D5E1826D4DD539441E3827FFCB873 +decimals = 6 + +[Baby DOJO Token] +peggy_denom = inj19dtllzcquads0hu3ykda9m58llupksqwekkfnw +decimals = 6 + +[Baby Dog Wif Nunchucks] +peggy_denom = inj1nddcunwpg4cwyl725lvkh9an3s5cradaajuwup +decimals = 8 + +[Baby Ninja] +peggy_denom = factory/inj1h3y27yhly6a87d95937jztc3tupl3nt8fg3lcp/BABYNINJA +decimals = 6 + +[Baby Nonja] +peggy_denom = inj1pchqd64c7uzsgujux6n87djwpf363x8a6jfsay +decimals = 18 + +[BabyBonk] +peggy_denom = inj1kaad0grcw49zql08j4xhxrh8m503qu58wspgdn +decimals = 18 + +[BabyInjective] +peggy_denom = inj1dvflqrkkaxped5cmks92q6vmtzx75cge9gvvap +decimals = 8 + +[Babykira] +peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira +decimals = 6 + +[Babyroll] +peggy_denom = inj1qd60tuupdtq2ypts6jleq60kw53d06f3gc76j5 +decimals = 18 + +[Baguette] +peggy_denom = inj15a3yppu5h3zktk2hkq8f3ywhfpqqrwft8awyq0 +decimals = 18 + +[Bamboo] +peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/boo +decimals = 6 + +[Base axlETH] +peggy_denom = ibc/FD8134B9853AABCA2B22A942B2BFC5AD59ED84F7E6DFAC4A7D5326E98DA946FB +decimals = 18 + +[Basket] +peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 +decimals = 5 + +[Benance] +peggy_denom = inj1gn8ss00s3htff0gv6flycgdqhc9xdsmvdpzktd +decimals = 8 + +[BetaDojo] +peggy_denom = inj1p6cj0r9ne63xhu4yr2vhntkzcfvt8gaxt2a5mw +decimals = 6 + +[Binance Coin] +peggy_denom = ibc/AAED29A220506DF2EF39E43B2EE35717636502267FF6E0343B943D70E2DA59EB +decimals = 18 + +[Binance USD] +peggy_denom = ibc/A62F794AAEC56B6828541224D91DA3E21423AB0DC4D21ECB05E4588A07BD934C +decimals = 18 + +[Binu] +peggy_denom = inj1myh9um5cmpghrfnh620cnauxd8sfh4tv2mcznl +decimals = 18 + +[Bird INJ] +peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj +decimals = 6 + +[BitSong] +peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 +decimals = 18 + +[Bitcoin] +peggy_denom = inj1ce249uga9znmc3qk2jzr67v6qxq73pudfxhwqx +decimals = 8 + +[Bitcosmos] +peggy_denom = ibc/E440667C70A0C9A5AD5A8D709731289AFB92301D64D70D0B33D18EF4FDD797FE +decimals = 6 + +[Black] +peggy_denom = inj1nuwasf0jsj3chnvzfddh06ft2fev3f5g447u2f +decimals = 18 + +[BlueInjective] +peggy_denom = inj17qsyspyh44wjch355pr72wzfv9czt5cw3h7vrr +decimals = 8 + +[Bnana] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/banana +decimals = 18 + +[Bonded Crescent] +peggy_denom = ibc/D9E839DE6F40C036592B6CEDB73841EE9A18987BC099DD112762A46AFE72159B +decimals = 6 + +[Bonjo] +peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 +decimals = 18 + +[Bonk] +peggy_denom = ibc/C951FBB321708183F5A14811A3D099B3D73457D12E193E2B8429BDDCC6810D5A +decimals = 5 + +[Bonk Injective] +peggy_denom = factory/inj15705jepx03fxl3sntfhdznjnl0mlqwtdvyt32d/bonk +decimals = 18 + +[Bonk on INJ] +peggy_denom = factory/inj147laec3n2gq8gadzg8xthr7653r76jzhavemhh/BONK +decimals = 6 + +[BonkToken] +peggy_denom = inj1jzxkr7lzzljdsyq8483jnduvpwtq7ny5x4ch08 +decimals = 8 + +[Boomer] +peggy_denom = inj1ethjlrk28wqklz48ejtqja9yfft8t4mm92m2ga +decimals = 18 + +[Brazilian Digital Token] +peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk +decimals = 4 + +[Brett] +peggy_denom = inj1zhce7csk22mpwrfk855qhw4u5926u0mjyw4df6 +decimals = 18 + +[Bull] +peggy_denom = inj1j82m0njz2gm0eea0ujmyjdlq2gzvwkvqapxeuw +decimals = 8 + +[CAC] +peggy_denom = ibc/97D9F67F798DBB31DAFA9CF4E791E69399E0FC3FC2F2A54066EE666052E23EF6 +decimals = 6 + +[CACTUS] +peggy_denom = inj16ch9sx5c6fa6lnndh7vunrjsf60h67hz988hdg +decimals = 18 + +[CAD] +peggy_denom = cad +decimals = 6 + +[CAL] +peggy_denom = inj1a9pvrzmymj7rvdw0cf5ut9hkjsvtg4v8cqae24 +decimals = 18 + +[CANTO] +peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 +decimals = 18 + +[CAPY] +peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/capybara +decimals = 6 + +[CARTEL] +peggy_denom = factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/cartel +decimals = 6 + +[CASINO] +peggy_denom = inj12zqf6p9me86493yzpr9v3kmunvjzv24fg736yd +decimals = 18 + +[CASSIO] +peggy_denom = inj179m94j3vkvpzurq2zpn0q9uxdfuc4nq0p76h6w +decimals = 8 + +[CAT] +peggy_denom = inj129hsu2espaf4xn8d2snqyaxrhf0jgl4tzh2weq +decimals = 18 + +[CATCOIN] +peggy_denom = inj1rwhc09dv2c9kg6d63t3qp679jws04p8van3yu8 +decimals = 8 + +[CATINJ] +peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/catinj +decimals = 6 + +[CATNIP] +peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIPPY +decimals = 6 + +[CBG] +peggy_denom = inj19k6fxafkf8q595lvwrh3ejf9fuz9m0jusncmm6 +decimals = 18 + +[CDT] +peggy_denom = ibc/25288BA0C7D146D37373657ECA719B9AADD49DA9E514B4172D08F7C88D56C9EF +decimals = 6 + +[CEL] +peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d +decimals = 4 + +[CELL] +peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 +decimals = 18 + +[CENTER] +peggy_denom = inj1khd6f66tp8dd4f58dzsxa5uu7sy3phamkv2yr8 +decimals = 8 + +[CERBERUS] +peggy_denom = inj1932un3uh05nxy4ej50cfc3se096jd6w3jvl69g +decimals = 6 + +[CET] +peggy_denom = factory/inj1hst0759zk7c29rktahm0atx7tql5x65jnsc966/CET +decimals = 6 + +[CGLP] +peggy_denom = ibc/6A3840A623A809BC76B075D7206302622180D9FA8AEA59067025812B1BC6A1CC +decimals = 18 + +[CHAD] +peggy_denom = factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/CHAD +decimals = 6 + +[CHAININJ] +peggy_denom = inj143rjlwt7r28wn89r39wr76umle8spx47z0c05d +decimals = 8 + +[CHAKRA] +peggy_denom = factory/inj13zsd797dnkgpxcrf3zxxjzykzcz55tw7kk5x3y/CHAKRA +decimals = 6 + +[CHAMP] +peggy_denom = inj1gnde7drvw03ahz84aah0qhkum4vf4vz6mv0us7 +decimals = 8 + +[CHAMPION] +peggy_denom = inj1rh94naxf7y20qxct44mrlawyhs79d06zmprv70 +decimals = 8 + +[CHARM] +peggy_denom = inj1c2e37gwl2q7kvuxyfk5c0qs89rquzmes0nsgjf +decimals = 8 + +[CHEEMS] +peggy_denom = factory/inj1hrjm0jwfey8e4x3ef3pyeq4mpjvc8356lkgh9f/CHEEMS +decimals = 6 + +[CHEESE] +peggy_denom = inj1p6v3qxttvh36x7gxpwl9ltnmc6a7cgselpd7ya +decimals = 18 + +[CHELE] +peggy_denom = factory/inj16fsle0ywczyf8h4xfpwntg3mnv7cukd48nnjjp/CHELE +decimals = 6 + +[CHEN] +peggy_denom = factory/inj196t4n8dg3pzkk5wh7ytjwtl6e3a56u9fj705wr/CHEN +decimals = 6 + +[CHI] +peggy_denom = inj198rrzmcv69xay8xuhalqz2z02egmsyzp08mvkk +decimals = 18 + +[CHICKEN] +peggy_denom = factory/inj1gqeyl6704zr62sk2lsprt54gcwc6y724xvlgq2/CHICKEN +decimals = 6 + +[CHIKU] +peggy_denom = factory/inj1g8s4usdsy7gujf96qma3p8r2a7m02juzfm4neh/CHIKU +decimals = 6 + +[CHINMOY] +peggy_denom = inj1t52r8h56j9ctycqhlkdswhjjn42s6dnc6huwzs +decimals = 18 + +[CHOCOLATE] +peggy_denom = inj1slny6cqjkag3hgkygpq5nze6newysqpsfy0dxj +decimals = 6 + +[CHONK] +peggy_denom = inj17aze0egvc8hrmgf25kkhlw3720vurz99pdp58q +decimals = 18 + +[CHOWCHOW] +peggy_denom = inj1syqdgn79wnnlzxd63g2h00rzx90k6s2pltec6w +decimals = 6 + +[CHROME] +peggy_denom = inj1k20q72a4hxt0g20sx3rcnjvhfye6u3k6dhx6nc +decimals = 6 + +[CHROMIUM] +peggy_denom = inj1plmyzu0l2jku2yw0hnh8x6lw4z5r2rggu6uu05 +decimals = 8 + +[CHUN] +peggy_denom = factory/inj19tjhqehpyq4n05hjlqyd7c5suywf3hcuvetpcr/CHUN +decimals = 9 + +[CHUNGUS] +peggy_denom = factory/inj1khr6lahyjz0wgnwzuu4dk5wz24mjrudz6vgd0z/bigchungus +decimals = 6 + +[CHZ] +peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF +decimals = 18 + +[CHZlegacy] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +decimals = 8 + +[CINU] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s +decimals = 8 + +[CIRCUS] +peggy_denom = ibc/AEE5A4EF1B28693C4FF12F046C17197E509030B18F70FE3D74F6C3542BB008AD +decimals = 6 + +[CITY] +peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/CITY +decimals = 6 + +[CJN] +peggy_denom = inj1eln607626f3j058rfh4xd3m4pd728x2cnxw4al +decimals = 18 + +[CLEO] +peggy_denom = inj1fr66v0vrkh55yg6xfw845q78kd0cnxmu0d5pnq +decimals = 18 + +[CLEVER] +peggy_denom = inj1f6h8cvfsyz450kkcqmy53w0y4qnpj9eylsazww +decimals = 18 + +[CLON] +peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 +decimals = 6 + +[CNJ] +peggy_denom = inj1w38vdrkemf8s40m5xpqe5fc8hnvwq3d794vc4a +decimals = 18 + +[COCA] +peggy_denom = ibc/8C82A729E6D74B03797962FE5E1385D87B1DFD3E0B58CF99E0D5948F30A55093 +decimals = 6 + +[COCK] +peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/COCK +decimals = 6 + +[COCKPIT] +peggy_denom = factory/inj15u2mc2vyh2my4qcuj5wtv27an6lhjrnnydr926/COCKPIT +decimals = 9 + +[COFFEE] +peggy_denom = inj166gumme9j7alwh64uepatjk4sw3axq84ra6u5j +decimals = 6 + +[COFFEIN] +peggy_denom = inj18me8d9xxm340zcgk5eu8ljdantsk8ktxrvkup8 +decimals = 18 + +[COKE] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp +decimals = 6 + +[COMP] +peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 +decimals = 18 + +[CONK] +peggy_denom = inj18vcz02pukdr2kak6g2p34krgdddan2vlpzmqju +decimals = 8 + +[CONK2.0] +peggy_denom = inj1zuz0rpg224mrpz2lu6npta34yc48sl7e5sndly +decimals = 8 + +[CONT] +peggy_denom = inj1vzpegrrn6zthj9ka93l9xk3judfx23sn0zl444 +decimals = 18 + +[COOK] +peggy_denom = factory/inj1pqpmffc7cdfx7tv9p2347ghgxdaell2xjzxmy6/COOK +decimals = 6 + +[COOKIG] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/COOKIG +decimals = 6 + +[COOL] +peggy_denom = factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/coolcat +decimals = 6 + +[COPE] +peggy_denom = inj1lchcdq3rqc2kaupt6fwshd7fyj7p0mpkeknkyw +decimals = 18 + +[COQ] +peggy_denom = inj1lefh6m9ldqm55ume0j52fhhw6tzmx9pezkqhzp +decimals = 18 + +[CORE] +peggy_denom = inj1363eddx0m5mlyeg9z9qjyvfyutrekre47kmq34 +decimals = 18 + +[CORGI] +peggy_denom = inj129t9ywsya0tyma00xy3de7q2wnah7hrw7v9gvk +decimals = 18 + +[CORONA] +peggy_denom = inj1md4ejkx70463q3suv68t96kjg8vctnpf3ze2uz +decimals = 18 + +[COSMO] +peggy_denom = factory/inj1je6n5sr4qtx2lhpldfxndntmgls9hf38ncmcez/COSMO +decimals = 6 + +[COSMWASM] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex +decimals = 8 + +[COST] +peggy_denom = inj1hlwjvef4g4tdsa5erdnzfzd8ufcw403a6558nm +decimals = 18 + +[COVID] +peggy_denom = inj1ce38ehk3cxa7tzcq2rqmgek9hc3gdldvxvtzqy +decimals = 6 + +[COWBOY] +peggy_denom = inj1dp7uy8sa0sevnj65atsdah0sa6wmwtfczwg08d +decimals = 6 + +[CP] +peggy_denom = factory/inj1300jzt0tyjg8x4txsfs79l29k556vqqk22c7es/cope +decimals = 6 + +[CPINJ] +peggy_denom = factory/inj1qczkutnsy3nmt909xtyjy4rsrkl2q4dm6aq960/coping +decimals = 6 + +[CR7] +peggy_denom = factory/inj1v25y8fcxfznd2jkz2eh5cy2520jpvt3felux66/CR7 +decimals = 6 + +[CRAB] +peggy_denom = factory/inj1fx2mj8532ynky2xw0k8tr46t5z8u7cjvpr57tq/crabfu +decimals = 6 + +[CRAB APPLE] +peggy_denom = inj1ku7f3v7z3dd9hrp898xs7xnwmmwzw32tkevahk +decimals = 18 + +[CRASH] +peggy_denom = inj1k3rankglvxjxzsaqrfff4h5ttwcjjh3m4l3pa2 +decimals = 8 + +[CRAZYHORSE] +peggy_denom = ibc/7BE6E83B27AC96A280F40229539A1B4486AA789622255283168D237C41577D3B +decimals = 6 + +[CRBRUS] +peggy_denom = ibc/F8D4A8A44D8EF57F83D49624C4C89EECB1472D6D2D1242818CDABA6BC2479DA9 +decimals = 6 + +[CRE] +peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 +decimals = 6 + +[CRINJ] +peggy_denom = factory/inj172d4lzaurwkmlvjfsz345mjmdc0e3ntsnhavf9/CRINJ +decimals = 6 + +[CRITPO] +peggy_denom = factory/inj1safqtpalmkes3hlyr0zfdr0dw4aaxulh306n67/CRITPO +decimals = 7 + +[CRN] +peggy_denom = inj1wcj4224qpghv94j8lzq8c2m9wa4f2slhqcxm9y +decimals = 18 + +[CROCO] +peggy_denom = factory/inj13j4gwlt2867y38z6e40366h38jtpmele209g6t/CROCO +decimals = 6 + +[CROCO_NINJA] +peggy_denom = factory/inj1c0tfeukmrw69076w7nffjqhrswp8vm9rr6t3eh/CROCO +decimals = 6 + +[CRT] +peggy_denom = inj10qt8pyaenyl2waxaznez6v5dfwn05skd4guugw +decimals = 18 + +[CRYPB] +peggy_denom = inj1p82fws0lzshx2zg2sx5c5f855cf6wht9uudxg0 +decimals = 18 + +[CRseven] +peggy_denom = inj19jp9v5wqz065nhr4uhty9psztlqeg6th0wrp35 +decimals = 6 + +[CTAX] +peggy_denom = inj1mwj4p98clpf9aldzcxn7g8ffzrwz65uszesdre +decimals = 18 + +[CTO] +peggy_denom = inj19kk6ywwu5h0rnz4453gyzt3ymgu739egv954tf +decimals = 18 + +[CUB] +peggy_denom = ibc/5CB35B165F689DD57F836C6C5ED3AB268493AA5A810740446C4F2141664714F4 +decimals = 6 + +[CUIT] +peggy_denom = factory/inj1zlmrdu0ntnmgjqvj2a4p0uyrg9jw802ld00x7c/CUIT +decimals = 6 + +[CVR] +peggy_denom = peggy0x3C03b4EC9477809072FF9CC9292C9B25d4A8e6c6 +decimals = 18 + +[CW20] +peggy_denom = inj1c2mjatph5nru36x2kkls0pwpez8jjs7yd23zrl +decimals = 18 + +[CW20-wrapped inj] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55 +decimals = 18 + +[CWIFLUCK] +peggy_denom = factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWIFLUCK +decimals = 6 + +[CWL] +peggy_denom = factory/inj1u2fhfn0g8srf2kt3am52wd9dp4zyjvecm86uhj/CWL +decimals = 6 + +[CWT] +peggy_denom = factory/inj1j5hqczk6ee2zsuz7kjt5nshxcjg5g69njxe6ny/inj-cttoken +decimals = 18 + +[Canto] +peggy_denom = ibc/5C0C70B490A3568D40E81884F200716F96FCE8B0A55CB5EE41C1E369E6086CCA +decimals = 18 + +[Cat] +peggy_denom = inj1eerjxzvwklcgvclj9m2pulqsmpentaes8h347x +decimals = 18 + +[Cat WIF luck] +peggy_denom = inj1mqurena8qgf775t28feqefnp63qme7jyupk4kg +decimals = 18 + +[Cat Wif Luck] +peggy_denom = inj19lwxrsr2ke407xw2fdgs80f3rghg2pueqae3vf +decimals = 6 + +[CatInjective] +peggy_denom = inj1p2w55xu2yt55rydrf8l6k79kt3xmjmmsnn3mse +decimals = 8 + +[Chainlink] +peggy_denom = ibc/AC447F1D6EDAF817589C5FECECB6CD3B9E9EFFD33C7E16FE8820009F92A2F585 +decimals = 18 + +[Chb] +peggy_denom = inj1fvzre25nqkakvwmjr8av5jrfs56dk6c8sc6us9 +decimals = 8 + +[CheeseBalls] +peggy_denom = inj13mjcjrwwjq7x6fanqvur4atd4sxyjz7t6kfhx0 +decimals = 6 + +[Chiliz (legacy)] +peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +decimals = 8 + +[Chonk] +peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/Chonk +decimals = 6 + +[Chonk The Cat] +peggy_denom = inj1ftq3h2y70hrx5rn5a26489drjau9qel58h3gfr +decimals = 18 + +[Circle USD] +peggy_denom = ibc/8F3ED95BF70AEC83B3A557A7F764190B8314A93E9B578DE6A8BDF00D13153708 +decimals = 6 + +[CosmWasm] +peggy_denom = inj1yl8z48uwve5wk0j9elxql8c327wy87anccf4ex +decimals = 8 + +[Cosmic] +peggy_denom = inj19zcnfvv3qazdhgtpnynm0456zdda5yy8nmsw6t +decimals = 18 + +[Cosmo] +peggy_denom = factory/osmo1ua9rmqtmlyv49yety86ys8uqx3hawfkyjr0g7t/Cosmo +decimals = 6 + +[Cosmos] +peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB +decimals = 6 + +[Crinj Token] +peggy_denom = factory/inj1kgyxepqnymx8hy7nydl65w3ecyut566pl70swj/crinj +decimals = 6 + +[D.a.r.e] +peggy_denom = inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej +decimals = 18 + +[DAB] +peggy_denom = factory/inj1n8w9wy72cwmec80qpjsfkgl67zft3j3lklg8fg/DAB +decimals = 6 + +[DAI] +peggy_denom = peggy0x6B175474E89094C44Da98b954EedeAC495271d0F +decimals = 18 + +[DANJER] +peggy_denom = factory/inj1xzk83u23djtynmz3a3h9k0q454cuhsn3y9jhr3/DANJER +decimals = 6 + +[DAOJO] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/daojo +decimals = 6 + +[DATOSHI] +peggy_denom = inj1rp63ym52lawyuha4wvn8gy33ccqtpj5pu0n2ef +decimals = 18 + +[DBT] +peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/dbt +decimals = 6 + +[DBTT] +peggy_denom = inj1wwga56n4glj9x7cnuweklepl59hp95g9ysg283 +decimals = 18 + +[DDD] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/ddd +decimals = 6 + +[DDL] +peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL +decimals = 6 + +[DDLTest] +peggy_denom = inj10zhn525tfxf5j34dg5uh5js4fr2plr4yydasxd +decimals = 18 + +[DEFI5] +peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 +decimals = 18 + +[DEFIKINGS] +peggy_denom = inj18h33x5qcr44feutwr2cgazaalcqwtpez57nutx +decimals = 8 + +[DEGGZ] +peggy_denom = factory/inj1k0ked7w3t3etzun47m00xmx9vr4zglznnsp3y9/DEGGZ +decimals = 9 + +[DEK] +peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dek +decimals = 6 + +[DEK on INJ] +peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/dekinj +decimals = 1 + +[DEPE] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/depe +decimals = 6 + +[DEXTER] +peggy_denom = inj12y0ucglt3twtwaaklgce3vpc95gxe67lpu2ghc +decimals = 18 + +[DGNZ] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/DGNZ +decimals = 6 + +[DIB] +peggy_denom = inj1nzngv0ch009jyc0mvm5h55d38c32sqp2fjjws9 +decimals = 18 + +[DICE] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/DICE +decimals = 6 + +[DICES] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/dices +decimals = 6 + +[DICK] +peggy_denom = factory/inj1wqk200kkyh53d5px5zc6v8usq3pluk07r4pxpu/DICK +decimals = 6 + +[DIDX] +peggy_denom = factory/inj1w24j0sv9rvv473x6pqfd2cnnxtk6cvrh5ek89e/DIDX +decimals = 6 + +[DINHEIROS] +peggy_denom = ibc/306269448B7ED8EC0DB6DC30BAEA279A9190E1D583572681749B9C0D44915DAB +decimals = 0 + +[DINO] +peggy_denom = inj1zx9tv9jg98t0fa7u9882gjrtansggmakmwnenm +decimals = 18 + +[DITTO] +peggy_denom = inj1vtg4almersef8pnyh5lptwvcdxnrgqp0zkxafu +decimals = 6 + +[DNA] +peggy_denom = ibc/AE8E20F37C6A72187633E418169758A6974DD18AB460ABFC74820AAC364D2A13 +decimals = 6 + +[DOCE] +peggy_denom = inj1xx8qlk3g9g3cyqs409strtxq7fuphzwzd4mqzw +decimals = 18 + +[DOGE] +peggy_denom = doge +decimals = 8 + +[DOGECoin] +peggy_denom = factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGE +decimals = 6 + +[DOGEINJ] +peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/DOGEINJ +decimals = 6 + +[DOGEINJCoin] +peggy_denom = factory/inj1s0ckch4dlp5eyx7khtqnt9dryd60v6ns4g0yn4/DOGEINJ +decimals = 6 + +[DOGEKIRA] +peggy_denom = inj1xux4gj0g3u8qmuasz7fsk99c0hgny4wl7hfzqu +decimals = 6 + +[DOGENINJA] +peggy_denom = inj1wjv6l090h9wgwr6lc58mj0xphg50mzt8y6dfsy +decimals = 6 + +[DOGGO] +peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO +decimals = 6 + +[DOGINJBREAD] +peggy_denom = inj1s4srnj2cdjf3cgun57swe2je8u7n3tkm6kz257 +decimals = 18 + +[DOGOFTHUN] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/DOGOFTHUN +decimals = 6 + +[DOGWIF] +peggy_denom = inj16ykyeaggxaqzj3x85rjuk3xunky7mg78yd2q32 +decimals = 8 + +[DOINJ] +peggy_denom = inj1swqv8e6e8tmyeqwq3rp43pfsr75p8wey7vrh0u +decimals = 8 + +[DOJ] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj +decimals = 6 + +[DOJO] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 +decimals = 18 + +[DOJO SWAP] +peggy_denom = inj1qzqlurx22acr4peuawyj3y95v9r9sdqqrafwqa +decimals = 18 + +[DOJODOG] +peggy_denom = factory/inj1s0awzzjfr92mu6t6h85jmq6s9f6hxnqwpmy3f7/DOJODOG +decimals = 6 + +[DOJOshroom] +peggy_denom = inj194l9mfrjsthrvv07d648q24pvpfkntetx68e7l +decimals = 6 + +[DOJSHIB] +peggy_denom = inj17n55k95up6tvf6ajcqs6cjwpty0j3qxxfv05vd +decimals = 18 + +[DOKI] +peggy_denom = ibc/EA7CE127E1CFD7822AD169019CAFDD63D0F5A278DCE974F438099BF16C99FB8B +decimals = 6 + +[DON] +peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/don +decimals = 6 + +[DONALD TRUMP] +peggy_denom = inj1mdf4myxfhgranmzew5kg39nv5wtljwksm9jyuj +decimals = 18 + +[DONK] +peggy_denom = inj1jargzf3ndsadyznuj7p3yrp5grdxsthxyfp0fj +decimals = 6 + +[DONKEY] +peggy_denom = inj1ctczwjzhjjes7vch52anvr9nfhdudq6586kyze +decimals = 18 + +[DONNA] +peggy_denom = inj17k4lmkjl963pcugn389d070rh0n70f5mtrzrvv +decimals = 18 + +[DONOTBUY] +peggy_denom = inj197p39k7ued8e6r5mnekg47hphap8zcku8nws5y +decimals = 6 + +[DOOMER] +peggy_denom = factory/inj1lqv3a2hxggzall4jekg7lpe6lwqsjevnm9ztnf/doomer +decimals = 6 + +[DOPE] +peggy_denom = factory/inj1tphwcsachh92dh5ljcdwexdwgk2lvxansym77k/DOPE +decimals = 0 + +[DORA] +peggy_denom = ibc/BC3AD52E42C6E1D13D2BDCEB497CF5AB9FEE24D804F5563B9E7DCFB825246947 +decimals = 18 + +[DOT] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf +decimals = 10 + +[DOTRUMP] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/dotrump +decimals = 6 + +[DRACO] +peggy_denom = inj14g9hcmdzlwvafsmrka6gmd22mhz7jd3cm5d8e6 +decimals = 8 + +[DRAGON] +peggy_denom = factory/inj1apk9x267a3qplc6q9a22xsvd2k96g0655xw59m/DRAGON +decimals = 6 + +[DREAM] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream +decimals = 6 + +[DRG] +peggy_denom = inj15jg279nugsgqplswynqqfal29tav9va5wzf56t +decimals = 18 + +[DRIVING] +peggy_denom = inj1ghhdy9mejncsvhwxmvnk5hspkd5fchtrmhu3x2 +decimals = 8 + +[DROGO] +peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 +decimals = 6 + +[DROGON] +peggy_denom = inj1h86egqfpypg8q3jp9t607t0y8ea6fdpv66gx0j +decimals = 6 + +[DTEST] +peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/DTEST +decimals = 6 + +[DTHREE] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/DTHREE +decimals = 6 + +[DUBAIcoin] +peggy_denom = inj1gsm06ndeq620sp73lu26nz76rqfpy9qtg7xfdw +decimals = 6 + +[DUBDUB] +peggy_denom = inj1nwm43spkusyva27208recgwya2yu2yja934x0n +decimals = 6 + +[DUCKS] +peggy_denom = factory/inj1mtxwccht2hpfn2498jc8u4k7sgrurxt04jzgcn/DUCKS +decimals = 6 + +[DUDE] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/DUDE +decimals = 6 + +[DUEL] +peggy_denom = peggy0x943Af2ece93118B973c95c2F698EE9D15002e604 +decimals = 18 + +[DUMB] +peggy_denom = factory/inj122c9quyv6aq5e2kr6gdcazdxy2eq2u2jgycrly/DUMB +decimals = 6 + +[DUMP BEOPLE] +peggy_denom = inj13d8cpsfc9gxxspdatucvngrvs435zddscapyhk +decimals = 18 + +[DUROV] +peggy_denom = inj1y73laasqpykehcf67hh3z7vn899sdmn6vtsg22 +decimals = 18 + +[DWHPPET] +peggy_denom = inj1rreafnwdwc9mu7rm6sm2nwwjd2yw46h26rzz36 +decimals = 18 + +[DWIFLUCK] +peggy_denom = factory/inj1gn54l05v5kqy5zmzk5l6wydzgvhvx2srm7rdkg/DWIFLUCK +decimals = 6 + +[DYDX] +peggy_denom = ibc/7B911D87318EB1D6A472E9F08FE93955371DF3E1DFFE851A58F4919450FFE7AA +decimals = 18 + +[DYM] +peggy_denom = ibc/346B01430895DC4273D1FAFF470A9CE1155BF6E9F845E625374D019EC9EE796D +decimals = 18 + +[Dai Stablecoin] +peggy_denom = ibc/265ABC4B9F767AF45CAC6FB76E930548D835EDA3E94BC56B70582A55A73D8C90 +decimals = 18 + +[Dai Stablecoin (Wormhole)] +peggy_denom = ibc/293F6074F0D8FF3D8A686F11BCA3DD459C54695B8F205C8867E4917A630634C2 +decimals = 8 + +[Daisy] +peggy_denom = inj1djnh5pf860722a38lxlxluwaxw6tmycqmzgvhp +decimals = 18 + +[Daojo] +peggy_denom = inj1dpgkaju5xqpa3vuz6qxqp0vljne044xgycw0d7 +decimals = 18 + +[DarkDeath] +peggy_denom = factory/inj133nvqdan8c79fhqfkmc3h59v30v4urgwuuejke/DarkDeath +decimals = 6 + +[Degen] +peggy_denom = factory/inj1j3rm46nj4z8eckv5333897z7esectj64kufs4a/Degen +decimals = 6 + +[DelPiero] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/delpiero +decimals = 6 + +[Dnd] +peggy_denom = inj1acxjvpu68t2nuw6950606gw2k59qt43zfxrcwq +decimals = 18 + +[Dog Wif Token ] +peggy_denom = inj1qhu9yxtp0x9gkn0n89hcw8c0wc8nhuke8zgw0d +decimals = 8 + +[Doge] +peggy_denom = inj1n4hl6mxv749jkqsrhu23z24e2p3s55de98jypt +decimals = 18 + +[Dogelon Mars] +peggy_denom = peggy0x761D38e5ddf6ccf6Cf7c55759d5210750B5D60F3 +decimals = 18 + +[Doggo] +peggy_denom = inj1gasr3mz9wdw2andhuf5254v9haw2j60zlftmha +decimals = 18 + +[Doginbread] +peggy_denom = inj1sx9mflrf6jvnzantd8rlzqh9tahgdyul5hq4pc +decimals = 18 + +[Dojo Staked INJ] +peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 +decimals = 18 + +[Dojo Token] +peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 +decimals = 18 + +[Dojo bot] +peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/DOJO +decimals = 6 + +[Don] +peggy_denom = inj19yv3uvkww6gjda2jn90aayrefjacclsrulr5n2 +decimals = 18 + +[DonatelloShurikenLipsInjection2dust] +peggy_denom = factory/inj1ya7ltz2mkj0z4w25lxueh7emz6qhwe33m4knx8/INJECTIV +decimals = 6 + +[Doodle] +peggy_denom = factory/inj1yjhn49auvxjqe2y3hxl9uwwzsjynl4ms0kq6d4/Doodle +decimals = 6 + +[Dope Token] +peggy_denom = inj1lrewwyn3m2dms6ny7m59x9s5wwcxs5zf5y2w20 +decimals = 8 + +[Dot] +peggy_denom = ibc/B0442E32E21ED4228301A2B1B247D3F3355B73BF288470F9643AAD0CA07DD593 +decimals = 10 + +[Drachme] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/drachme +decimals = 6 + +[Dragon Coin] +peggy_denom = inj1ftfc7f0s7ynkr3n7fnv37qpskfu3mu69ethpkq +decimals = 18 + +[Drugs] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19vy83ne9tzta2yqynj8yg7dq9ghca6yqn9hyej +decimals = 18 + +[Duel] +peggy_denom = inj1ghackffa8xhf0zehv6n8j3gjzpz532c4h2zkkp +decimals = 18 + +[Dwake] +peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/Dwake +decimals = 6 + +[E-SHURIKEN] +peggy_denom = inj1z93hdgsd9pn6eajslmyerask38yugxsaygyyu0 +decimals = 6 + +[EARS] +peggy_denom = inj1g07rttdqwcy43yx9m20z030uex29sxpcwvvjmf +decimals = 8 + +[EASPORTS] +peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EASPORTS +decimals = 6 + +[ECOCH] +peggy_denom = factory/inj1tquax9jy4t7lg2uya4yclhlqlh5a75ykha2ewr/EcoChain +decimals = 6 + +[ECPS] +peggy_denom = inj1vzjfp3swqhhjp56w40j4cmekjpmrkq6d3ua7c8 +decimals = 8 + +[EGGMAN] +peggy_denom = inj1hjym72e40g8yf3dd3lah98acmkc6ms5chdxh6g +decimals = 8 + +[ELE] +peggy_denom = inj1zyg7gvzzsc0q39vhv5je50r2jcfv2ru506pd7w +decimals = 6 + +[ELEM] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2 +decimals = 18 + +[ELM] +peggy_denom = inj1uu3dc475nuhz68j3g4s3cpxzdfczpa3k4dcqz7 +decimals = 18 + +[ELMNT] +peggy_denom = inj17z53rhx0w6szyhuakgnj9y0khprrp2rmdg0djz +decimals = 6 + +[ELON] +peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 +decimals = 6 + +[ELON-GATED-PENIS] +peggy_denom = inj1v0ahzyf4mup6eunf4hswcs9dq3ffea4nqxdhmq +decimals = 6 + +[ELONXMAS] +peggy_denom = inj1nmrve743hvmxzv7e3p37nyjl2tf8fszcqg44ma +decimals = 8 + +[EMP] +peggy_denom = factory/inj1vc6gdrn5ta9h9danl5g0sl3wjwxqfeq6wj2rtm/EMP +decimals = 6 + +[EMP On Injective] +peggy_denom = inj1qm7x53esf29xpd2l8suuxtxgucrcv8fkd52p7t +decimals = 18 + +[ENA] +peggy_denom = peggy0x57e114B691Db790C35207b2e685D4A43181e6061 +decimals = 18 + +[ENJ] +peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c +decimals = 18 + +[EPIC] +peggy_denom = inj1ewmqrnxm8a5achem6zqg44w7lut3krls4m5mnu +decimals = 18 + +[EPICEIGHT] +peggy_denom = inj19dd2lqy8vpcl3kc9ftz3y7xna6qyevuhq7zxkz +decimals = 18 + +[EPICEL] +peggy_denom = inj1hz2e3fasvhhuxywx96g5vu8nnuvak5ca4r7jsk +decimals = 18 + +[EPICFIVE] +peggy_denom = inj1cavzx4eswevydc8hawdy362z3a2nucku8c0lp6 +decimals = 18 + +[EPICNINE] +peggy_denom = inj1a6jfnquus2vrfshwvurae9wkefu0k3n8ay6u4r +decimals = 18 + +[EPICONE] +peggy_denom = inj16nenk0jqfcgj8qhfap9n7ldjzke97rw9auxptx +decimals = 18 + +[EPICSEVEN] +peggy_denom = inj19tval5k0qjgqqkuw0v8g5qz9sautru4jr9rz7e +decimals = 18 + +[EPICSIX] +peggy_denom = inj1gyf3358u6juk3xvrrp7vlez9yuk2ek33dhqdau +decimals = 18 + +[EPICTE] +peggy_denom = inj1c6mpj4p2dvxdgqq9l0sasz0uzu4gah7k3g03xf +decimals = 18 + +[EPICTEN] +peggy_denom = inj1e9t4mhc00s4p0rthuyhpy2tz54nuh552sk5v60 +decimals = 18 + +[EPICTREE] +peggy_denom = inj1hjt77g9ujsh52jdm388ggx387w9dk4jwe8w5sq +decimals = 18 + +[EPICTWO] +peggy_denom = inj1z24n2kmsxkz9l75zm7e90f2l0rfgaazh6usw3h +decimals = 18 + +[EPICfour] +peggy_denom = inj14m6t04x80r2f78l26wxz3vragpy892pdmshcat +decimals = 18 + +[ERA] +peggy_denom = peggy0x3e1556B5b65C53Ab7f6956E7272A8ff6C1D0ed7b +decimals = 18 + +[ERIC] +peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric +decimals = 6 + +[ERIS Amplified SEI] +peggy_denom = ibc/9774771543D917853B9A9D108885C223DFF03ABC7BD39AD2783CA4E1F58CDC6E +decimals = 6 + +[ESCUDOS] +peggy_denom = ibc/D1546953F51A43131EDB1E80447C823FD0B562C928496808801A57F374357CE5 +decimals = 6 + +[ETF] +peggy_denom = inj1cdfcc6x6fn22wl6gs6axgn48rjve2yhjqt8hv2 +decimals = 18 + +[ETH] +peggy_denom = eth +decimals = 18 + +[ETHBTCTrend] +peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 +decimals = 18 + +[ETK] +peggy_denom = inj1hzh43wet6vskk0ltfm27dm9lq2jps2r6e4xvz8 +decimals = 18 + +[EUR] +peggy_denom = eur +decimals = 6 + +[EURO] +peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/EURO +decimals = 6 + +[EVAI] +peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c +decimals = 8 + +[EVI] +peggy_denom = inj1mxcj2f8aqv8uflul4ydr7kqv90kprgsrx0mqup +decimals = 18 + +[EVIINDEX] +peggy_denom = eviindex +decimals = 18 + +[EVITCEJNI] +peggy_denom = factory/inj1n8kcnuzsrg9d7guu8c5n4cxcurqyszthy29yhg/EVITCEJNI +decimals = 6 + +[EVL] +peggy_denom = inj1yhrpy3sr475cfn0g856hzpfrgk5jufvpllfakr +decimals = 18 + +[EVMOS] +peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 +decimals = 18 + +[EXOTIC] +peggy_denom = inj1xyf06dyfuldfynqgl9j6yf4vly6fsjr7zny25p +decimals = 8 + +[EXP] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd +decimals = 8 + +[EYES] +peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/eyes +decimals = 6 + +[Eik] +peggy_denom = inj1a0rphvxxgr56354vqz8jhlzuhwyqs8p4zag2kn +decimals = 18 + +[Elemental Token] +peggy_denom = inj1kxwmyuns9z36dd0luggj7wyzetqyfz8cuhdvm2 +decimals = 18 + +[Elite] +peggy_denom = inj1rakgrkwx9hs6ye4mt4pcvnhy5zt28dt02u9ws8 +decimals = 18 + +[Enjineer] +peggy_denom = inj1xsc3wp2m654tk62z7y98egtdvd0mqcs7lp4lj0 +decimals = 18 + +[Ethena] +peggy_denom = inj1c68rz4w9csvny5xmq6f87auuhfut5zukngmptz +decimals = 18 + +[Ethereum (Arbitrum)] +peggy_denom = ibc/56ADC03A83B6E812C0C30864C8B69CBE502487AD5664D0164F73A1C832D2C7FC +decimals = 18 + +[Ethereum (ERC20)] +peggy_denom = ibc/56CD30F5F8344FDDC41733A058F9021581E97DC668BFAC631DC77A414C05451B +decimals = 18 + +[Explore Exchange] +peggy_denom = inj10ktwcqd5n4k6278jegrc0u08fudf8r00vdsjwd +decimals = 8 + +[ExtraVirginOliveInu] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/extravirginoliveinu +decimals = 6 + +[FABLE] +peggy_denom = ibc/5FE5E50EA0DF6D68C29EDFB7992EB81CD40B6780C33834A8AB3712FB148E1313 +decimals = 6 + +[FACTORY01] +peggy_denom = inj1q8h6pxj73kv36ehv8dx9d6jd6qnphmr0xydx2h +decimals = 6 + +[FAITH] +peggy_denom = inj1efjaf4yuz5ehncz0atjxvrmal7eeschauma26q +decimals = 6 + +[FAMILY] +peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY +decimals = 6 + +[FAP] +peggy_denom = inj1qekjz857yggl23469xjr9rynp6padw54f0hhkh +decimals = 18 + +[FAST] +peggy_denom = inj1m8wfsukqzxt6uduymrpkjawvpap3earl4p2xlt +decimals = 8 + +[FCS] +peggy_denom = inj1h7smsl8nzjfeszy03cqnjn2yvf629kf3m02fay +decimals = 18 + +[FCUK] +peggy_denom = inj1j3gg49wg40epnsd644s84wrzkcy98k2v50cwvv +decimals = 18 + +[FDA] +peggy_denom = inj174zq6m77dqvx4e56uqvjq25t7qq5ukmt2zhysh +decimals = 18 + +[FDAPERP] +peggy_denom = inj1zl5uwywdkgchs54ycp8f84cedz29fhwz0pzvjd +decimals = 18 + +[FDC] +peggy_denom = inj13pff0vsvfhnhcs4fkd609cr2f749rw22hznhar +decimals = 6 + +[FDC3] +peggy_denom = inj1zmpydq6mlwfj246jk9sc5r7898jgcks9rj87mg +decimals = 6 + +[FDC40624A] +peggy_denom = inj1est038f5zfdj7qp3ktmqtygfkef5wj6fdl8nx2 +decimals = 6 + +[FDC40624B] +peggy_denom = inj1gukq56dd9erzmssdxp305g8wjf7ujz0kc46m6e +decimals = 6 + +[FDC40624C] +peggy_denom = inj1623nrzk2us368e6ecl7dfe4tdncqykx76ycvuy +decimals = 6 + +[FDC40625A] +peggy_denom = inj1t3zvq2n5rl2r902zmsynaysse2vj0t4c6zfjlv +decimals = 6 + +[FDC40625B] +peggy_denom = inj1m4n783st9cvc06emtgl29laypf2980j5j9l3rs +decimals = 6 + +[FDC40625C] +peggy_denom = inj1uac3sy4jv0uu6drk2pcfqmtdue7w0q0urpwgzl +decimals = 6 + +[FDC40625D] +peggy_denom = inj1shu8jhwh9g6yxx6gk6hcg89hmqccdwflljcpes +decimals = 6 + +[FDCP40626A] +peggy_denom = inj18ls4r6pw85gk39pyh4pjhln7j6504v0dtk7kxz +decimals = 6 + +[FET] +peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B +decimals = 18 + +[FIDEN] +peggy_denom = factory/inj1xm8azp82qt9cytzg5guhx8cjrjmrunv97dfdd3/FIDEN +decimals = 6 + +[FIFA] +peggy_denom = inj1ma5f4cpyryqukl57k22qr9dyxmmc99pw50fn72 +decimals = 18 + +[FIG] +peggy_denom = inj1whqqv3hrqt58laptw90mdhxx7upx40q6s7d0qx +decimals = 18 + +[FINNEON] +peggy_denom = inj1t3lzvya9p4zslzetpzcmc968a9c5jjkdycwlzf +decimals = 6 + +[FISHY] +peggy_denom = inj178xpd5dxe7dq82dtxpcufelshxxlqmzn0h0r26 +decimals = 8 + +[FIVE] +peggy_denom = inj1psx54edreejwmjsdgsad332c60y5lnzqkkudve +decimals = 8 + +[FIX] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda +decimals = 18 + +[FLOKI] +peggy_denom = factory/inj1g7nvetpqjcugdnjxd27v37m7adm4wf7wphgzq2/FLOKI +decimals = 6 + +[FLUFFY] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z +decimals = 18 + +[FLUID] +peggy_denom = inj1avj9gwyj5hzxdkpegcr47kmp8k39nrnejn69mh +decimals = 8 + +[FMLY] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY +decimals = 6 + +[FOJO] +peggy_denom = inj1n37zp9g8fzdwxca8m7wrp2e7qvrjzfemaxgp8e +decimals = 18 + +[FOMO] +peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/FOMO +decimals = 6 + +[FOMOFox] +peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/FOMOFox +decimals = 6 + +[FOO] +peggy_denom = inj1s290d2uew9k2s00zlx9xnxq84dauysc85yhds0 +decimals = 18 + +[FOOL] +peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/FOOL +decimals = 6 + +[FOORK] +peggy_denom = inj1zu6qda7u90c8w28xkru4v56ak05xpfjtwps0vw +decimals = 18 + +[FORZA] +peggy_denom = inj1p0tsq248wyk2vd980csndrtep3rz50ezfvhfrw +decimals = 18 + +[FOTHER] +peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/FOTHER +decimals = 6 + +[FOUR] +peggy_denom = inj1clfx8jgq3636249d0tr3yu26hsp3yqct6lpvcy +decimals = 18 + +[FOX] +peggy_denom = inj167naeycu49dhs8wduj5ddtq6zex9cd6hpn4k4w +decimals = 18 + +[FOXY] +peggy_denom = inj15acrj6ew42jvgl5qz53q7c9g82vf3n98l84s4t +decimals = 6 + +[FPL] +peggy_denom = inj13yutezdwjkz8xucrt6d564yqr3ava76r6q9vle +decimals = 8 + +[FRANKLYN] +peggy_denom = inj1gadcw96ha8fpd6ulgzulsuqj9vjz8dv0s57at8 +decimals = 18 + +[FRAX] +peggy_denom = ibc/3E5504815B2D69DCC32B1FF54CDAC28D7DA2C445BD29C496A83732DC1D52DB90 +decimals = 18 + +[FREE] +peggy_denom = inj1rp9tjztx0m5ekcxavq9w27875szf8sm7p0hwpg +decimals = 18 + +[FRINJE] +peggy_denom = factory/inj1mcx5h5wfeqk334u8wx6jv3g520zwy3lh22dyp7/FRINJE +decimals = 10 + +[FRNZ] +peggy_denom = ibc/CDD7374B312BEF9723AAEBDE622206490E112CE2B5F49275683CCCD86C7D4BCE +decimals = 6 + +[FROG] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s +decimals = 18 + +[FROGCOIN] +peggy_denom = inj1dljz0rexnhhxa2vnnfxerg7y0am46kdzltwwgp +decimals = 6 + +[FROGGY] +peggy_denom = factory/inj1l8pq22awax6r8hamk2v3cgd77w90qtkmynvp8q/FROGGY +decimals = 6 + +[FROGY] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGiY +decimals = 6 + +[FTC] +peggy_denom = inj1v092fpcqz0k5pf6zwz7z8v40q2yxa0elfzt2hk +decimals = 18 + +[FTM] +peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 +decimals = 18 + +[FTUNA] +peggy_denom = inj1yqm9apy8kat8fav2mmm7geshyytdld0al67ks4 +decimals = 6 + +[FUCK] +peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/FUCK +decimals = 6 + +[FUD] +peggy_denom = factory/inj1j2r6vr20cnhqz3tumd2lh9w8k8guamze3pdf7t/FUD +decimals = 6 + +[FUINJ] +peggy_denom = factory/inj1wlwsd6w84ydmsqs5swthm5hw22qm8fxrth5ggx/FUINJ +decimals = 6 + +[FUSION] +peggy_denom = inj1hpczn65hygw4aaaytxe6gvdu8h3245gjz0q2fx +decimals = 8 + +[FUSIONX] +peggy_denom = inj1a5pxsj6f8jggncw4s2cg39p25swgzdjyljw5tf +decimals = 8 + +[FUZION] +peggy_denom = inj1m8hyuja8wmfm0a2l04dgp5ntwkmetkkemw2jcs +decimals = 8 + +[FUZN] +peggy_denom = ibc/FE87E1E1BB401EC35CD02A57FE5DEF872FA309C018172C4E7DA07F194EAC6F19 +decimals = 6 + +[FaDaCai] +peggy_denom = inj13n695lr0ps5kpahv7rkd8njh2phw475rta8kw4 +decimals = 6 + +[Fetch.ai] +peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 +decimals = 18 + +[FixedFloat] +peggy_denom = inj1xpvxfn66l8aslcc8qgr7jc5rp638ampdnsfqda +decimals = 18 + +[Fluffy] +peggy_denom = inj1hfk4z29f5cv73gxpdydedhkq0yspqc5ymeze9z +decimals = 18 + +[FollowNinjaBoy_inj] +peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/FollowNinjaBoy_inj +decimals = 6 + +[Frogy the frog] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIYY +decimals = 6 + +[FuckSol] +peggy_denom = factory/inj1na5d9jqhkyckh8gc5uqht75a74jq85gvpycp44/FUCKSOL +decimals = 6 + +[FusionX] +peggy_denom = inj1fghekhpfn2rfds6c466p38ttdm2a70gnzymc86 +decimals = 8 + +[GAINJA] +peggy_denom = inj1jnwu7u6h00lzanpl8d5qerr77zcj2vd65r2j7e +decimals = 18 + +[GALA] +peggy_denom = factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA +decimals = 6 + +[GALAXY] +peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy +decimals = 6 + +[GAMBLE] +peggy_denom = factory/inj10g0paz4mx7mq2z8l9vpxz022xshc04g5kw7s43/gamble +decimals = 6 + +[GAMER] +peggy_denom = inj1gqp2upvl8ftj28amxt90dut76prdpefx3qvpck +decimals = 18 + +[GASH] +peggy_denom = ibc/98C86DE314A044503F35E8C395B745B65E990E12A77A357CBA74F474F860A845 +decimals = 6 + +[GASTON] +peggy_denom = factory/inj1sskt2d66eqsan9flcqa9vlt7nvn9hh2dtvp8ua/GASTON +decimals = 6 + +[GBP] +peggy_denom = gbp +decimals = 6 + +[GCM] +peggy_denom = inj1p87lprkgg4c465scz5z49a37hf835nzkcpyeej +decimals = 18 + +[GDUCK] +peggy_denom = factory/inj1fc0ngp72an2x8zxf268xe5avfan5z4g0saz6ns/gduck +decimals = 6 + +[GEISHA] +peggy_denom = factory/inj1c5uqenss9plc5rjw5kt5dksnlvnvw5tvygxpd8/GEISHA +decimals = 6 + +[GEIST] +peggy_denom = inj1x2lg9j9pwmgnnwmhvq2g6pm6emcx7w02pnjnm6 +decimals = 8 + +[GEM] +peggy_denom = factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/gem +decimals = 6 + +[GEM DAO] +peggy_denom = ibc/8AE86084C0D921352F711EF42CCA7BA4C8238C244FE4CC3E4E995D9782FB0E2B +decimals = 6 + +[GEMININJ] +peggy_denom = factory/inj14vrd79l2pxvqctawz39qewfh72x62pfjecxsmv/GEMININJ +decimals = 6 + +[GEMOY] +peggy_denom = inj1j5l0xc2lwqpj2duvllmegxse0dqlx5kgyjehlv +decimals = 18 + +[GENJI] +peggy_denom = factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/GENJI +decimals = 6 + +[GENZONE] +peggy_denom = inj1zh9924tws4ctzx5zmz06j09nyjs8fw6wupkadr +decimals = 8 + +[GEO] +peggy_denom = ibc/8E4953E506CF135A3ACDF6D6556ED1DB4F6A749F3910D2B4A77E2E851C4B2638 +decimals = 6 + +[GF] +peggy_denom = peggy0xAaEf88cEa01475125522e117BFe45cF32044E238 +decimals = 18 + +[GGBOND] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ggbond +decimals = 6 + +[GGG] +peggy_denom = inj1yrw42rwc56lq7a3rjnfa5nvse9veennne8srdj +decimals = 8 + +[GGS] +peggy_denom = factory/inj1282wzngdg46gjuttvhxumkx65fnqx0aqmyl0lu/GGS +decimals = 6 + +[GIANT] +peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/giant +decimals = 6 + +[GIFT] +peggy_denom = factory/inj1exks7fvnh9lxzgqejtlvca8t7mw47rks0s0mwa/GIFT +decimals = 6 + +[GIGA] +peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 +decimals = 5 + +[GINGER] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/GINGER +decimals = 6 + +[GINKO] +peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/ginko +decimals = 6 + +[GIRL] +peggy_denom = inj1zkmp7m0u0hll3k5w5598g4qs75t7j8qqvmjspz +decimals = 18 + +[GLODIOTOR] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/glodiotor +decimals = 6 + +[GLTO] +peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 +decimals = 6 + +[GME] +peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 +decimals = 8 + +[GMKY] +peggy_denom = factory/inj1s09n0td75x8p20uyt9dw29uz8j46kejchl4nrv/GMKY +decimals = 6 + +[GOD] +peggy_denom = inj1whzt6ct4v3zf28a6h08lpf90pglzw7fdh0d384 +decimals = 18 + +[GODDARD] +peggy_denom = ibc/3E89FBB226585CF08EB2E3C2625D1D2B0156CCC2233CAB56165125CACCBE731A +decimals = 6 + +[GODRD] +peggy_denom = ibc/CABB197E23D81F1D1A4CE56A304488C35830F81AC9647F817313AE657221420D +decimals = 6 + +[GODS] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-GODS +decimals = 6 + +[GODSTRIKE] +peggy_denom = inj1deejw5k4sxnlxgxnzsy5k2vgc9fzu257ajjcy7 +decimals = 8 + +[GODZILLA] +peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/GODZILLA +decimals = 6 + +[GOJO] +peggy_denom = factory/inj13qhzj4fr4u7t7gqj5pqy0yts07eu6k6dkjdcsx/gojo +decimals = 6 + +[GOKU] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/goku +decimals = 6 + +[GOLD] +peggy_denom = gold +decimals = 18 + +[GOLDIE] +peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/GOLDIE +decimals = 6 + +[GOLDMAN] +peggy_denom = inj140ypzhrxyt7n3fhrgk866hnha29u5l2pv733d0 +decimals = 8 + +[GOOSE] +peggy_denom = factory/inj12tl0d8a739t8pun23mzldhan26ndqllyt6d67p/goose +decimals = 6 + +[GORILLA] +peggy_denom = inj1cef5deszfl232ws7nxjgma4deaydd7e7aj6hyf +decimals = 8 + +[GPT] +peggy_denom = factory/inj168gnj4lavp3y5w40rg5qhf50tupwhaj3yvhgr0/GPT +decimals = 6 + +[GRAC] +peggy_denom = ibc/59AA66AA80190D98D3A6C5114AB8249DE16B7EC848552091C7DCCFE33E0C575C +decimals = 6 + +[GREATDANE] +peggy_denom = inj195vgq0yvykunkccdzvys548p90ejuc639ryhkg +decimals = 6 + +[GREEN] +peggy_denom = inj1nlt0jkqfl6f2wlnalyk2wd4g3dq97uj8z0amn0 +decimals = 8 + +[GRENADINE] +peggy_denom = inj1ljquutxnpx3ut24up85e708hjk85hm47skx3xj +decimals = 8 + +[GRINJ] +peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/GRINJ +decimals = 6 + +[GROK] +peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/GROK +decimals = 6 + +[GRONI] +peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/groni +decimals = 6 + +[GRT] +peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 +decimals = 18 + +[GRUMPY] +peggy_denom = inj16fr4w5q629jdqt0ygknf06yna93ead2pr74gr3 +decimals = 8 + +[GUGU] +peggy_denom = ibc/B1826CEA5AE790AB7FCAE84344F113F6C42E6AA3A357CAFEAC4A05BB7531927D +decimals = 6 + +[GUPPY] +peggy_denom = ibc/F729B93A13133D7390455293338A0CEAAF876D0F180B7C154607989A1617DD45 +decimals = 6 + +[GYEN] +peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 +decimals = 6 + +[GZZ] +peggy_denom = inj1ec70stm6p3e6u2lmpl5vzan4pdm79vwlfgcdzd +decimals = 18 + +[Galaxy] +peggy_denom = inj13n675x36dnettkxkjll82q72zgnvsazn4we7dx +decimals = 6 + +[Gamble Gold] +peggy_denom = inj13a8vmd652mn2e7d8x0w7fdcdt8742j98jxjcx5 +decimals = 18 + +[Game Stop] +peggy_denom = inj1vnj7fynxr5a62maf34vca4fes4k0wrj4le5gae +decimals = 18 + +[Gay] +peggy_denom = inj1pw54fsqmp0ludl6vl5wfe63ddax52z5hlq9jhy +decimals = 18 + +[Geisha] +peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/geisha +decimals = 6 + +[Genny] +peggy_denom = inj1dpn7mdrxf49audd5ydk5062z08xqgnl4npzfvv +decimals = 6 + +[GoatInj] +peggy_denom = factory/inj1ua3rm4lsrse2canapg96v8jtg9k9yqzuscu766/GoatInj +decimals = 6 + +[Gorilla] +peggy_denom = factory/inj1wc7a5e50hq9nglgwhc6vs7cnskzedskj2xqv6j/Gorilla +decimals = 6 + +[GreenMarket] +peggy_denom = inj1wjd2u3wq2dwyr7zlp09squh2xrqjlggy0vlftj +decimals = 8 + +[Greenenergy] +peggy_denom = inj1aqu4y55rg43gk09muvrcel3z45nuxczukhmfut +decimals = 18 + +[Grind] +peggy_denom = inj125ry0fhlcha7fpt373kejwf8rq5h3mwewqr0y2 +decimals = 18 + +[Gryphon Staked Injective] +peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +decimals = 18 + +[H3NSY] +peggy_denom = inj1c22v69304zlaan50gdygmlgeaw56lcphl22n87 +decimals = 8 + +[HABS] +peggy_denom = factory/inj1ddn2cxjx0w4ndvcrq4k0s0pjyzwhfc5jaj6qqv/habs +decimals = 6 + +[HACHI] +peggy_denom = factory/inj13ze65lwstqrz4qy6vvxx3lglnkkuan436aw45e/HACHI +decimals = 9 + +[HAIR] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/hair +decimals = 6 + +[HAKI] +peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/YAKUSA +decimals = 6 + +[HAL] +peggy_denom = factory/inj197jczxq905z5ddeemfmhsc077vs4y7xal3wyrm/HALLAS +decimals = 18 + +[HALVING] +peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/HALVING +decimals = 6 + +[HAMU] +peggy_denom = factory/inj1t6py7esw8z6jc8c204ag3zjevqlpfx203hqyt2/HAMU +decimals = 6 + +[HAMURAI] +peggy_denom = factory/inj1xqf6rk5p5w3zh22xaxck9g2rnksfhpg33gm9xt/hamu +decimals = 6 + +[HANZO] +peggy_denom = factory/inj1xz4h76wctruu6l0hezq3dhtfkxzv56ztg4l29t/HANZO +decimals = 6 + +[HARD] +peggy_denom = ibc/D6C28E07F7343360AC41E15DDD44D79701DDCA2E0C2C41279739C8D4AE5264BC +decimals = 6 + +[HATEQUNT] +peggy_denom = factory/inj1sfaqn28d0nw4q8f2cm9gvhs69ecv5x8jjtk7ul/HATEQUNT +decimals = 6 + +[HATTORI] +peggy_denom = factory/inj1h7zackjlzcld6my000mtg3uzuqdv0ly4c9g88p/HATTORI +decimals = 6 + +[HAVA] +peggy_denom = factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/uhava +decimals = 6 + +[HAVA COIN] +peggy_denom = inj1u759lmx8e6g8f6l2p08qvrekjwcq87dff0ks3n +decimals = 18 + +[HDRO] +peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro +decimals = 6 + +[HEMULE] +peggy_denom = inj1hqamaawcve5aum0mgupe9z7dh28fy8ghh7qxa7 +decimals = 18 + +[HERB] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/herb +decimals = 6 + +[HERO] +peggy_denom = inj18mqec04e948rdz07epr9w3j20wje9rpg6flufs +decimals = 6 + +[HEST] +peggy_denom = factory/inj15vj7e40j5cqvxmy8u7h9ud3ustrgeqa98uey96/HEST +decimals = 6 + +[HEXA] +peggy_denom = inj13e4hazjnsnapqvd06ngrq5zapw8gegarudzehd +decimals = 8 + +[HGM] +peggy_denom = inj14y8j4je4gs57fgwakakreevx6ultyy7c7rcmk2 +decimals = 18 + +[HINJ] +peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/hinj +decimals = 6 + +[HOUND] +peggy_denom = factory/inj1nccncwqx5q22lf4uh83dhe89e3f0sh8kljf055/HOUND +decimals = 6 + +[HOUSE] +peggy_denom = factory/inj1rvstpdy3ml3c879yzz8evk37ralz7w4dtydsqp/HOUSE +decimals = 6 + +[HRBE] +peggy_denom = factory/inj1lucykkh3kv3wf6amckf205rg5jl8rprdcq8v83/HRBE +decimals = 6 + +[HST] +peggy_denom = inj1xhvj4u6xtx3p9kr4pqzl3fdu2vedh3e2y8a79z +decimals = 18 + +[HT] +peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 +decimals = 18 + +[HUAHUA] +peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB +decimals = 6 + +[HULK] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/HULK +decimals = 6 + +[HUMP] +peggy_denom = inj1v29k9gaw7gnds42mrzqdygdgjh28vx38memy0q +decimals = 18 + +[HUOBINJ] +peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/huobinj +decimals = 6 + +[HUSKY] +peggy_denom = factory/inj1467q6d05yz02c2rp5qau95te3p74rqllda4ql7/husky +decimals = 6 + +[HYDRO] +peggy_denom = inj10r75ap4ztrpwnan8er49dvv4lkjxhgvqflg0f5 +decimals = 8 + +[HYDRO WRAPPED INJ] +peggy_denom = inj1r9qgault3k4jyp60d9fkzy62dt09zwg89dn4p6 +decimals = 18 + +[HappyGilmore] +peggy_denom = inj1h5d90rl5hmkp8mtuyc0zpjt00hakldm6wtseew +decimals = 18 + +[HarryPotterObamaSonicInu] +peggy_denom = inj1y64pkwy0m0jjd825c7amftqe2hmq2wn5ra8ap4 +decimals = 18 + +[Hava Coin] +peggy_denom = inj1fnlfy6r22slr72ryt4wl6uwpg3dd7emrqaq7ne +decimals = 18 + +[Hellooooo] +peggy_denom = inj1xj7c6r65e8asrrpgm889m8pr7x3ze7va2ypql4 +decimals = 18 + +[Hero Wars] +peggy_denom = inj1f63rgzp2quzxrgfchqhs6sltzf0sksxtl7wtzn +decimals = 8 + +[HeyDay] +peggy_denom = inj1rel4r07gl38pc5xqe2q36ytfczgcrry0c4wuwf +decimals = 6 + +[HnH] +peggy_denom = inj1e8r3gxvzu34ufgfwzr6gzv6plq55lg0p95qx5w +decimals = 8 + +[Hydro] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro +decimals = 6 + +[Hydro Protocol] +peggy_denom = inj1vkptqdl42csvr5tsh0gwczdxdenqm7xxg9se0z +decimals = 8 + +[Hydro Wrapped INJ] +peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 18 + +[Hydrogen oxide] +peggy_denom = factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/h2o +decimals = 6 + +[IBC] +peggy_denom = ibc/75BD031C1301C554833F205FAFA065178D51AC6100BCE608E6DC2759C2B71715 +decimals = 6 + +[IBCX] +peggy_denom = ibc/491C92BEEAFE513BABA355275C7AE3AC47AA7FD57285AC1D910CE874D2DC7CA0 +decimals = 6 + +[IBONK] +peggy_denom = factory/inj14cm9e5n5pjgzvwe5t8zshts2t9x2lxk3zp0js2/ibonk +decimals = 6 + +[IDFI] +peggy_denom = inj13ac29xfk969qmydhq2rwekja6mxgwtdgpeq3dj +decimals = 8 + +[IDOGE] +peggy_denom = inj18nuas38jw742ezmk942j4l935lenc6nxd4ypga +decimals = 18 + +[IHOP] +peggy_denom = factory/inj17rpa60xtn3rgzuzltuwgpw2lu3ayulkdjgwaza/IHOP +decimals = 6 + +[IJ] +peggy_denom = factory/inj1hcymy0z58zxpm3esch2u5mps04a3vq2fup4j29/InjBull +decimals = 6 + +[IJT] +peggy_denom = inj1tn8vjk2kdsr97nt5w3fhsslk0t8pnue7mf96wd +decimals = 18 + +[IKINGS] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/IKINGS +decimals = 6 + +[INCEL] +peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel +decimals = 6 + +[INDUSTRY] +peggy_denom = inj1kkc0l4xnz2eedrtp0pxr4l45cfuyw7tywd5682 +decimals = 18 + +[INJ] +peggy_denom = inj +decimals = 18 + +[INJ LOUNGE] +peggy_denom = inj1dntqalk5gj6g5u74838lmrym3hslc9v3v9etqg +decimals = 8 + +[INJ TEST] +peggy_denom = factory/inj1gxf874xgdcza4rtkashrc8w2s3ulaxa3c7lmeh/inj-tt +decimals = 6 + +[INJ TO THE MOON] +peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/MOON +decimals = 6 + +[INJA] +peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/INJA +decimals = 6 + +[INJBOT] +peggy_denom = inj1hhxn5p7gkcql23dpmkx6agy308xnklzsg5v5cw +decimals = 8 + +[INJCEL] +peggy_denom = factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/INJcel +decimals = 6 + +[INJDAO] +peggy_denom = inj177wz9fpk6xjfrr7ex06sv5ukh0csgfak7x5uaq +decimals = 8 + +[INJDINO] +peggy_denom = inj13fnjq02hwxejdm584v9qhrh66mt4l3j8l3yh6f +decimals = 6 + +[INJDOGE] +peggy_denom = factory/inj13zcns55uycr8lcw8q4gvdqp0jejgknk9whv8uh/INJDOGE +decimals = 6 + +[INJDOGOS] +peggy_denom = inj1kl2zc5djmp8nmwsetua8gnmvug2c3dfa3uvy2e +decimals = 18 + +[INJECT] +peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/INJECT +decimals = 6 + +[INJECTIV] +peggy_denom = factory/inj1x04zxeyrjc7ke5nt7ht3v3gkevxdk7rr0fx8qp/INJECTIV +decimals = 6 + +[INJECTIVED] +peggy_denom = inj16ccz3z2usevpyzrarggtqf5fgh8stjsql0rtew +decimals = 6 + +[INJER] +peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/INJER +decimals = 6 + +[INJERA] +peggy_denom = inj1032h3lllszfld2utcunjvk8knx2c8eedgl7r4y +decimals = 6 + +[INJESUS] +peggy_denom = inj12d7qq0lp656jkrr2d3ez55cr330f3we9c75ml6 +decimals = 8 + +[INJEVO] +peggy_denom = inj1f6fxh20pdyuj98c8l2svlky8k7z7hkdztttrd2 +decimals = 8 + +[INJEX] +peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/INJEX +decimals = 6 + +[INJFIRE] +peggy_denom = inj1544nmruy3xc3qqp84cenuzqrdnlyfkprwdfcz5 +decimals = 8 + +[INJGEN] +peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injgen +decimals = 6 + +[INJGOAT] +peggy_denom = inj1p9nluxkvuu5y9y7radpfnwemrdty74l74q2ycp +decimals = 6 + +[INJHACKTIVE] +peggy_denom = factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/INJHACKTIVE +decimals = 6 + +[INJHAT] +peggy_denom = factory/inj1uc7awz4e4kg9dakz5t8w6zzz7r62992ezsr279/injhat +decimals = 6 + +[INJI] +peggy_denom = factory/inj1nql734ta2npe48l26kcexk8ysg4s9fnacv9tvv/INJI +decimals = 6 + +[INJINU] +peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/INJINU +decimals = 6 + +[INJM] +peggy_denom = inj1czlt30femafl68uawedg63834vcg5z92u4ld8k +decimals = 18 + +[INJMEME] +peggy_denom = inj179luuhr3ajhsyp92tw73w8d7c60jxzjcy22356 +decimals = 8 + +[INJMETA] +peggy_denom = inj1m7264u6ytz43uh5hpup7cg78h6a8xus9dnugeh +decimals = 8 + +[INJMOON] +peggy_denom = inj12val9c8g0ztttfy8c5amey0adyn0su7x7f27gc +decimals = 8 + +[INJMOOON] +peggy_denom = inj1eu0zlrku7yculmcjep0n3xu3ehvms9pz96ug9e +decimals = 6 + +[INJNET] +peggy_denom = inj13ew774de6d3qhfm3msmhs9j57le9krrw2ezh3a +decimals = 8 + +[INJOFGOD] +peggy_denom = inj1snaeff6pryn48fnrt6df04wysuq0rk7sg8ulje +decimals = 8 + +[INJOY] +peggy_denom = factory/inj10zvhydqqpejrfgvl2m9swcm0dkf9kc3zsj7yr4/injoy +decimals = 6 + +[INJPEPE] +peggy_denom = factory/inj15hxjpac22adg3s6znhpc27zx6ufhf6z7fseue2/injpepe +decimals = 6 + +[INJPEPE2] +peggy_denom = factory/inj1jsduylsevrmddn64hdxutcel023eavw44n63z2/INJPEPE2 +decimals = 6 + +[INJPORTAL] +peggy_denom = inj1etyzmggnjdtjazuj3eqqlngvvgu2tqt6vummfh +decimals = 8 + +[INJPREMIUM] +peggy_denom = inj18uw5etyyjqudtaap029u9g5qpxf85kqvtkyhq9 +decimals = 8 + +[INJPRO] +peggy_denom = inj15x75x44futqdpx7mp86qc6dcuaqcyvfh0gpxp5 +decimals = 8 + +[INJS] +peggy_denom = factory/inj1yftyfrc720nhrzdep5j70rr8dm9na2thnrl7ut/injs +decimals = 6 + +[INJSANTA] +peggy_denom = inj1qpepg77mysjjqlm9znnmmkynreq9cs2rypwf35 +decimals = 8 + +[INJSHIB] +peggy_denom = inj1tty2w6sacjpc0ma6mefns27qtudmmp780rxlch +decimals = 8 + +[INJSWAP] +peggy_denom = inj1pn5u0rs8qprush2e6re775kyf7jdzk7hrm3gpj +decimals = 8 + +[INJTOOLS] +peggy_denom = factory/inj105a0fdpnq0wt5zygrhc0th5rlamd982r6ua75r/injtools +decimals = 6 + +[INJUNI] +peggy_denom = inj1dz8acarv345mk5uarfef99ecxuhne3vxux606r +decimals = 8 + +[INJUSSY] +peggy_denom = factory/inj1s9smy53dtqq087usaf02sz984uddndwuj2f0wt/injussy +decimals = 6 + +[INJUST] +peggy_denom = factory/inj123hzxzuee7knt0lf7w9grkxtumg4kxszklmps6/INJUST +decimals = 6 + +[INJUSTICE] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/INJUSTICE +decimals = 6 + +[INJVERSE] +peggy_denom = inj1leqzwmk6xkczjrum5nefcysqt8k6qnmq5v043y +decimals = 8 + +[INJX] +peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx +decimals = 6 + +[INJXMAS] +peggy_denom = inj1uneeqwr3anam9qknjln6973lewv9k0cjmhj7rj +decimals = 8 + +[INJXSOL] +peggy_denom = inj174p4dt45793vylmt8575cltj6wadtc62nakczq +decimals = 8 + +[INJXXX] +peggy_denom = inj1pykhnt3l4ekxe6ra5gjc03pgdglavsv34vdjmx +decimals = 8 + +[INJbsc] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 +decimals = 18 + +[INJet] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw +decimals = 18 + +[INJjP] +peggy_denom = inj1xwr2fzkakfpx5afthuudhs90594kr2ka9wwldl +decimals = 8 + +[INJusd] +peggy_denom = inj1qchqhwkzzws94rpfe22qr2v5cv529t93xgrdfv +decimals = 18 + +[INUJ] +peggy_denom = inj13jhpsn63j6p693ffnfag3efadm9ds5dqqpuml9 +decimals = 18 + +[INUWIFHAT] +peggy_denom = inj1xtrzl67q5rkdrgcauljpwzwpt7pgs3jm32zcaz +decimals = 18 + +[IOA] +peggy_denom = inj1xwkqem29z2faqhjgr6jnpl7n62f2wy4nme8v77 +decimals = 18 + +[ION] +peggy_denom = ibc/1B2D7E4261A7E2130E8E3506058E3081D3154998413F0DB2F82B04035B3FE676 +decimals = 6 + +[IOTX] +peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 +decimals = 18 + +[IPDAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai +decimals = 6 + +[IPEPE] +peggy_denom = factory/inj1td7t8spd4k6uev6uunu40qvrrcwhr756d5qw59/ipepe +decimals = 6 + +[IPEPER] +peggy_denom = factory/inj1fdqalekg73v06gvzch0zu74ealp35g3y00shmz/IPEPER +decimals = 6 + +[IPandaAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai +decimals = 6 + +[ISILLY] +peggy_denom = factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/iSILLY +decimals = 6 + +[ITO] +peggy_denom = ibc/E7140919F6B70594F89401B574DC198D206D923964184A9F79B39074301EB04F +decimals = 6 + +[ITSC] +peggy_denom = inj1r63ncppq6shw6z6pfrlflvxm6ysjm6ucx7ddnh +decimals = 18 + +[IUSD] +peggy_denom = factory/inj1l7u9lv8dfqkjnc7antm5lk7lmskh8zldh9yg05/iUSD +decimals = 18 + +[IWH] +peggy_denom = factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/IWH +decimals = 6 + +[IXB] +peggy_denom = inj1p0tvxzfhht5ychd6vj8rqhm0u7g5zxl6prrzpk +decimals = 8 + +[Imol] +peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/Mol7 +decimals = 0 + +[InjBots] +peggy_denom = factory/inj1qfdgzwy6ppn4nq5s234smhhp9rt8z2yvjl2v49/InjBots +decimals = 18 + +[InjCroc] +peggy_denom = inj1dcl8q3yul8hu3htwxp8jf5ar5nqem62twjl0ga +decimals = 18 + +[InjDoge] +peggy_denom = inj1hlg3pr7mtvzcczq0se4xygscmm2c99rrndh4gv +decimals = 8 + +[InjDragon] +peggy_denom = inj1gkf6h3jwsxayy068uuf6ey55h29vjd5x45pg9g +decimals = 18 + +[InjPepe] +peggy_denom = inj19xa3v0nwvdghpj4v2lzf64n70yx7wlqvaxcejn +decimals = 8 + +[InjXsolana] +peggy_denom = inj1u82h7d8l47q3kzwvkm2mgzrskk5au4lrkntkjn +decimals = 8 + +[Inject] +peggy_denom = inj1tn88veylex4f4tu7clpkyneahpmf7nqqmvquuw +decimals = 18 + +[InjectDOGE] +peggy_denom = factory/inj1nf43yjjx7sjc3eulffgfyxqhcraywwgrnqmqjc/INJDOGE +decimals = 6 + +[Injection] +peggy_denom = inj1e8lv55d2nkjss7jtuht9m46cmjd83e39rppzkv +decimals = 6 + +[Injection ] +peggy_denom = inj15sls6g6crwhax7uw704fewmktg6d64h8p46dqy +decimals = 18 + +[Injective] +peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw +decimals = 18 + +[Injective City] +peggy_denom = factory/inj1xzl47mx87r7sx8e6cz9d3q257xtp9fue3dx073/CITY +decimals = 6 + +[Injective Genesis] +peggy_denom = inj19gm2tefdz5lpx49veyqe3dhtqqkwmtyswv60ux +decimals = 8 + +[Injective Inu] +peggy_denom = inj1pv567vvmkv2udn6llcnmnww78erjln35ut05kc +decimals = 8 + +[Injective Memes] +peggy_denom = inj1zq5mry9y76s5w7rd6eaf8kx3ak3mlssqkpzerp +decimals = 8 + +[Injective Moon] +peggy_denom = inj1tu45dzd54ugqc9fdwmce8vcpeyels45rllx4tt +decimals = 8 + +[Injective Panda] +peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo +decimals = 6 + +[Injective Protocol] +peggy_denom = peggy0x7C7aB80590708cD1B7cf15fE602301FE52BB1d18 +decimals = 18 + +[Injective Snowy] +peggy_denom = inj17hsx7q99utdthm9l6c6nvm2j8a92dr489car5x +decimals = 8 + +[Injective-X] +peggy_denom = inj1uk9ac7qsjxqruva3tavqsu6mfvldu2zdws4cg2 +decimals = 8 + +[InjectivePEPE] +peggy_denom = inj18y9v9w55v6dsp6nuk6gnjcvegf7ndtmqh9p9z4 +decimals = 18 + +[InjectiveSwap] +peggy_denom = inj1t0dfz5gqfrq6exqn0sgyz4pen4lxchfka3udn4 +decimals = 6 + +[InjectiveToMoon] +peggy_denom = inj1jwms7tyq6fcr0gfzdu8q5qh906a8f44wws9pyn +decimals = 8 + +[Injera] +peggy_denom = inj1fqn5wr483v6kvd3cs6sxdcmq4arcsjla5e5gkh +decimals = 18 + +[Injera Gem] +peggy_denom = peggy0x7872f1B5A8b66BF3c94146D4C95dEbB6c0997c7B +decimals = 18 + +[Internet Explorer] +peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb +decimals = 6 + +[Inu] +peggy_denom = factory/inj1z0my390aysyk276lazp4h6c8c49ndnm8splv7n/Inu +decimals = 6 + +[Inv] +peggy_denom = inj1ajzrh9zffh0j4ktjczcjgp87v0vf59nhyvye9v +decimals = 18 + +[Inzor] +peggy_denom = factory/inj1j7ap5xxp42urr4shkt0zvm0jtfahlrn5muy99a/Inzor +decimals = 6 + +[JAKE] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/JAKE +decimals = 6 + +[JAPAN] +peggy_denom = factory/inj13vtsydqxwya3mpmnqa20lhjg4uhg8pp42wvl7t/japan +decimals = 18 + +[JCLUB] +peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/JCLUB +decimals = 6 + +[JEDI] +peggy_denom = inj1ejfu0rrx4ypfehpms8qzlwvyqs3p6c0tk2y7w7 +decimals = 18 + +[JEET] +peggy_denom = inj1sjff8grguxkzp2wft4xnvsmrksera5l5hhr2nt +decimals = 18 + +[JEETERS] +peggy_denom = factory/inj1jxj9u5y02w4veajmke39jnzmymy5538n420l9z/jeeters +decimals = 6 + +[JEFF] +peggy_denom = factory/inj10twe630w3tpqvxmeyl5ye99vfv4rmy92jd9was/JEFF +decimals = 6 + +[JEJU] +peggy_denom = factory/inj1ymsgskf2467d6q7hwkms9uqsq3h35ng7mj6qs2/jeju +decimals = 6 + +[JELLY] +peggy_denom = factory/inj13ez8llxz7smjgflrgqegwnj258tfs978c0ccz8/JELLY +decimals = 6 + +[JESUS] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/JESUS +decimals = 6 + +[JESUSINJ] +peggy_denom = inj13tnc70qhxuhc2efyvadc35rgq8uxeztl4ajvkf +decimals = 8 + +[JIMMY] +peggy_denom = ibc/BE0CC03465ABE696C3AE57F6FE166721DF79405DFC4F4E3DC09B50FACABB8888 +decimals = 6 + +[JINJA] +peggy_denom = factory/inj1kr66vwdpxmcgqgw30t6duhtmfdpcvlkljgn5f7/JINJA +decimals = 6 + +[JINJAO] +peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/JINJAO +decimals = 6 + +[JINX] +peggy_denom = factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/JINX +decimals = 6 + +[JIT] +peggy_denom = factory/inj1d3nq64h56hvjvdqatk9e4p26z5y4g4l6uf2a7w/JIT +decimals = 18 + +[JITSU] +peggy_denom = inj1gjujeawsmwel2d5p78pxmvytert726sejn8ff3 +decimals = 6 + +[JITZ] +peggy_denom = inj1cuxse2aaggs6dqgq7ek8nkxzsnyxljpy9sylyf +decimals = 6 + +[JNI] +peggy_denom = factory/inj140ddmtvnfytfy4htnqk06um3dmq5l79rl3wlgy/jni +decimals = 6 + +[JOHNXINA] +peggy_denom = inj1xxqe7t8gp5pexe0qtlh67x0peqs2psctn59h24 +decimals = 6 + +[JOKER] +peggy_denom = inj1q4amkjwefyh60nhtvtzhsmpz3mukc0fmpt6vd0 +decimals = 8 + +[JPE] +peggy_denom = inj1s8e7sn0f0sgtcj9jnpqnaut3tlh7z720dsxnn7 +decimals = 18 + +[JPY] +peggy_denom = jpy +decimals = 6 + +[JSON] +peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/json +decimals = 6 + +[JSR] +peggy_denom = inj1hdc2qk2epr5fehdjkquz3s4pa0u4alyrd7ews9 +decimals = 18 + +[JTEST] +peggy_denom = inj1vvekjsupcth0g2w0tkp6347xxzk5cpx87hwqdm +decimals = 18 + +[JUDO] +peggy_denom = inj16ukv8g2jcmml7gykxn5ws8ykhxjkugl4zhft5h +decimals = 18 + +[JUKI] +peggy_denom = inj1nj2d93q2ktlxrju2uwyevmwcatwcumuejrplxz +decimals = 18 + +[JUMONG] +peggy_denom = inj1w9vzzh7y5y90j69j774trp6z0qfh8r4q4yc3yc +decimals = 6 + +[JUNO] +peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 +decimals = 6 + +[JUP] +peggy_denom = jup +decimals = 6 + +[JUSSY] +peggy_denom = inj1qydw0aj2gwv27zkrp7xulrg43kx88rv27ymw6m +decimals = 18 + +[JUTSU] +peggy_denom = inj1a7h4n3kd0nkn2hl7n22sgf4c5dj3uyvcue2gla +decimals = 6 + +[Jay] +peggy_denom = inj1qt007zcu57qd4nq9u7g5ffgeyyqkx2h4qfzmn4 +decimals = 18 + +[Jenner] +peggy_denom = inj1yjecs8uklzruxphv447l7urdnlguwynm5f45z7 +decimals = 18 + +[Joe] +peggy_denom = inj14jgu6cs42decuqdfwfz2j462n8lrwhs2d5qdsy +decimals = 18 + +[Joe Boden] +peggy_denom = factory/inj1wnrxrkj59t6jeg3jxzhkc0efr2y24y6knvsnmp/boden +decimals = 6 + +[KADO] +peggy_denom = inj1608auvvlrz9gf3hxkpkjf90vwwgfyxfxth83g6 +decimals = 8 + +[KAGE] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 +decimals = 18 + +[KAGECoin] +peggy_denom = factory/inj1jqu8w2qqlc79aewc74r5ts7hl85ksjk4ud7jm8/KAGE +decimals = 6 + +[KAI] +peggy_denom = factory/inj1kdvaxn5373fm4g8xxqhq08jefjhmefqjn475dc/KAI +decimals = 6 + +[KAKAPO] +peggy_denom = factory/inj14ykszmwjjsu9s6aakqc02nh3t32h9m7rnz7qd4/KAKAPO +decimals = 6 + +[KANGAL] +peggy_denom = inj1aq9f75yaq9rwewh38r0ffdf4eqt4mlfktef0q2 +decimals = 18 + +[KARATE] +peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate +decimals = 6 + +[KARMA] +peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma +decimals = 6 + +[KASA] +peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/kasa +decimals = 6 + +[KAT] +peggy_denom = factory/inj1ms8lr6y6qf2nsffshfmusr8amth5y5wnrjrzur/KAT +decimals = 6 + +[KATANA] +peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana +decimals = 6 + +[KATI] +peggy_denom = factory/inj1gueqq3xdek4q5uyh8jp5xnm0ah33elanvgc524/KATI +decimals = 6 + +[KATO] +peggy_denom = factory/inj18dsv2pywequv9c7t5s4kaayg9440hwhht6kkvx/KATO +decimals = 6 + +[KAVA] +peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 +decimals = 6 + +[KAVAverified] +peggy_denom = inj1t307cfqzqkm4jwqdtcwmvdrfvrz232sffatgva +decimals = 18 + +[KAZE BOT] +peggy_denom = factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KBT +decimals = 6 + +[KET] +peggy_denom = factory/inj1y3tkh4dph28gf2fprxy98sg7w5s7e6ymnrvwgv/KET +decimals = 6 + +[KETCHUP] +peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/KETCHUP +decimals = 6 + +[KGM] +peggy_denom = factory/inj1a9dsv5whfhqptkycx4l9uly9x684lwmwuv7l3n/KGM +decimals = 6 + +[KIBA] +peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/KIBA +decimals = 6 + +[KIDZ] +peggy_denom = factory/inj1f502ktya5h69hxs9acvf3j3d6ygepgxxh2w40u/kidz +decimals = 6 + +[KIKI] +peggy_denom = factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki +decimals = 6 + +[KIMJ] +peggy_denom = factory/inj137z9mjeja534w789fnl4y7afphn6qq7qvwhd8y/KIMJ +decimals = 6 + +[KINGELON] +peggy_denom = inj195vkuzpy64f6r7mra4m5aqgtj4ldnk2qs0zx8n +decimals = 8 + +[KINGFUSION] +peggy_denom = inj1mnzwm6fvkruendv8r63vzlw72yv7fvtngkkzs9 +decimals = 8 + +[KINGINJ] +peggy_denom = inj1a3ec88sxlnu3ntdjk79skr58uetrvxcm4puhth +decimals = 8 + +[KINGS] +peggy_denom = factory/inj1pqxpkmczds78hz8cacyvrht65ey58e5yg99zh7/kings +decimals = 6 + +[KINJ] +peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/kinj +decimals = 6 + +[KINJA] +peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/Kinja +decimals = 6 + +[KIRA] +peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/KIRA +decimals = 6 + +[KIRAINU] +peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/KIRAINU +decimals = 6 + +[KISH] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH +decimals = 18 + +[KISH6] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH6 +decimals = 6 + +[KISHU] +peggy_denom = factory/inj1putkaddmnnwjw096tfn7rfyl7jq447y74vmqzt/kishu +decimals = 6 + +[KLAUS] +peggy_denom = inj1yjgk5ywd0mhczx3shvreajtg2ag9l3d56us0f8 +decimals = 8 + +[KMT] +peggy_denom = factory/inj1av2965j0asg5qwyccm8ycz3qk0eya4873dkp3u/kermit +decimals = 6 + +[KNIGHT] +peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/knight +decimals = 6 + +[KOGA] +peggy_denom = factory/inj1npvrye90c9j7vfv8ldh9apt8t3a9mv9lsv52yd/KOGA +decimals = 6 + +[KOOG] +peggy_denom = inj1dkpmkm7j8t2dh5zqp04xnjlhljmejss3edz3wp +decimals = 18 + +[KPEPE] +peggy_denom = pepe +decimals = 18 + +[KRINJ] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/KRINJ +decimals = 6 + +[KRIPDRAGON] +peggy_denom = inj12txuqr77qknte82pv5uaz8fpg0rsvssjr2n6jj +decimals = 8 + +[KROPA] +peggy_denom = inj1smlveclt2dakmxx36zla343qyznscaxsyza3gh +decimals = 18 + +[KROPPA] +peggy_denom = inj15x62fd9yy0d8lll00k3h66d3terjn79e29l60p +decimals = 18 + +[KRYSY] +peggy_denom = inj1jxcn5t8tmnw26r6fa27m76cw0a7zrzhyenf4c5 +decimals = 6 + +[KSO] +peggy_denom = factory/inj1waemxur3hdu8gavxrymn6axduxe8ful3rm4qcm/koskesh +decimals = 6 + +[KTN] +peggy_denom = inj18kem7dt3tpjp2mx8khujnuuhevqg4exjcd7dnm +decimals = 18 + +[KU9] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/KU9 +decimals = 6 + +[KUJI] +peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 +decimals = 6 + +[KUNAI] +peggy_denom = inj12ntgeddvyzt2vnmy2h8chz080n274df7vvr0ru +decimals = 8 + +[Kage] +peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 +decimals = 18 + +[Karma] +peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karmainj +decimals = 6 + +[Katana] +peggy_denom = inj1tj4l2qmvw22nquwqkr34v83llyzu97l65zjqsf +decimals = 6 + +[Kaz] +peggy_denom = inj1vweya4us4npaa5xdf026sel0r4qazdvzx6v0v4 +decimals = 6 + +[King] +peggy_denom = factory/inj156zqdswjfcttc8hrvwd5z3nv5n53l5xg9mqvht/King +decimals = 6 + +[KingFusion] +peggy_denom = inj1ynehe0s2kh9fqp5tka99f8wj2xgsha74h3cmtu +decimals = 8 + +[KiraWifHat] +peggy_denom = factory/inj1kujwsrwlqa7yj9545r9tfmrlqcknlmwm3rqe0q/KiraWifHat +decimals = 6 + +[Kitty] +peggy_denom = inj1pfmvtdxhl2l5e245nsfwwl78sfx090asmxnmsw +decimals = 18 + +[Klaus Project] +peggy_denom = inj1zgurc2nd5awcxmpq7q6zgh9elnxg0z9g5yn4k3 +decimals = 8 + +[Knight] +peggy_denom = inj1tvxfut7uayypz2ywm92dkvhm7pdjcs85khsenj +decimals = 18 + +[Koga] +peggy_denom = inj1npvknmdjsk7s35gmemwalxlq4dd38p68mywgvv +decimals = 18 + +[Kuso] +peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/Kuso +decimals = 6 + +[LAB] +peggy_denom = ibc/4BFC760786BE40F8C10AA8777D68C6BEFE9C95A881AD29AF1462194018AB7C0C +decimals = 6 + +[LABS] +peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs +decimals = 6 + +[LADS] +peggy_denom = ibc/5631EB07DC39253B07E35FC9EA7CFB652F63A459A6B2140300EB4C253F1E06A2 +decimals = 6 + +[LALA] +peggy_denom = inj156wqs2alkgmspj8shjje56ajgneqtjfk20w9n6 +decimals = 18 + +[LAMA] +peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA +decimals = 6 + +[LAMBO] +peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 +decimals = 18 + +[LAMBOPEPE] +peggy_denom = factory/inj1rge0wzk9hn8qgwz77m9zcznahrp5s322fa6lhu/LAMBO +decimals = 6 + +[LAVA] +peggy_denom = inj1jrykfhmfcy4eh8t3yw6ru3ypef39s3dsu46th7 +decimals = 18 + +[LBFS] +peggy_denom = inj18ssfe746a42me2j02casptrs0y2z5yak06cy4w +decimals = 8 + +[LDO] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +decimals = 8 + +[LEGE] +peggy_denom = inj122gwdl0xl6908uhdgql2ftrezsy2ru2gme8mhc +decimals = 18 + +[LENARD] +peggy_denom = factory/inj1p2rmxvzhctu4z22sxcsry874sekvjdhl7k8rys/LENARD +decimals = 6 + +[LEO] +peggy_denom = factory/inj1f0gj22j0vep9jt48tnt2mg97c8ysgyxllhvp68/LEO +decimals = 9 + +[LESS] +peggy_denom = inj105ke2sw329yl64m4273js3vxfxvq2kdqtz0s63 +decimals = 18 + +[LEVERKUSEN] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/LEVERKUSEN +decimals = 6 + +[LFR] +peggy_denom = inj176pze4mvaw2kv72sam0fwt3vn08axlj08e46ac +decimals = 18 + +[LFROG] +peggy_denom = inj1vhw7xadr0366hjnvet8tnpgt898vkm47faycar +decimals = 18 + +[LFrog] +peggy_denom = factory/inj1wu2kfkmrvfr34keemcmjh9zups72r5skygltrg/LFrog +decimals = 11 + +[LIBE] +peggy_denom = inj1y7cqd6x50ezv8xrgqx0lnqf4p747nyqq533ma3 +decimals = 18 + +[LIGMA] +peggy_denom = inj17mhem35tyszwpyfh6s0sr4l5p7wkj0knja9ck3 +decimals = 6 + +[LINK] +peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +decimals = 18 + +[LIO] +peggy_denom = factory/inj1p2nh5tx9j27eqwxvr6aj9sasttff6200tpq24k/LIO +decimals = 6 + +[LIOR] +peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/LIOR +decimals = 6 + +[LMAO] +peggy_denom = inj12d6gr7ky3nfwmsw8y455aryxc95f37dj9hnpuq +decimals = 18 + +[LMEOW] +peggy_denom = inj1wu77ndd9t2yehansltt7wkhhqfjcsah0z4jvlf +decimals = 18 + +[LNC] +peggy_denom = inj18epz5afrhu0zehdlj0mp8cfmv3vtusq6fd6ufw +decimals = 6 + +[LOCAL] +peggy_denom = factory/kujira1swkuyt08z74n5jl7zr6hx0ru5sa2yev5v896p6/local +decimals = 6 + +[LOL] +peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/LOL +decimals = 6 + +[LONG] +peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/long +decimals = 6 + +[LOOL] +peggy_denom = inj10wuysemk8ptnnt2n4my8qsalgkmw6yxe8wthu2 +decimals = 18 + +[LORD] +peggy_denom = inj1flek07wkz73a7ptxutumr4u5fukt6th4fwy9zn +decimals = 6 + +[LOST] +peggy_denom = inj150rlxjvk2trcm59mpwyg7hkkq8sfmdtu0tj873 +decimals = 8 + +[LOTUS] +peggy_denom = inj1luz09rzlytzdqnyp2n0cqevdxkf9u780uvsew5 +decimals = 6 + +[LOXA] +peggy_denom = inj175ut0y843p0kc4secgplsrs609uwaq3d93tp0x +decimals = 8 + +[LP AKT-MNTA] +peggy_denom = ibc/D128AB965B69D44D80AFD886D8A252C10D6B0B792B3AEA7833C7A1F95BA4BCF8 +decimals = 6 + +[LP ARB-MNTA] +peggy_denom = ibc/A7BBB8697F21D2CE19732D6CCE137E00B78CE83B5F38AC5E7FB163D7E77C1325 +decimals = 6 + +[LP ATOM-MNTA] +peggy_denom = ibc/67E901393C5DE5F1D26A0DBC86F352EA9CEBC6F5A1791ADAB33AB557136CD4D0 +decimals = 6 + +[LP AXL-MNTA] +peggy_denom = ibc/F829D655E96C070395E364658EFB2EC4B93906D44A6C1AE6A2A8821FCB7BA4B8 +decimals = 6 + +[LP CHEQ-MNTA] +peggy_denom = ibc/454555FFF0452DD86BC65DDE0158300132DE275CB22183ECE357EA07EBA18528 +decimals = 6 + +[LP DOT.axl-MNTA] +peggy_denom = ibc/E9BC2E73393C6C1AD36B04109F5C20CC1CDC4BCB913C8038993C8F68A0CD8474 +decimals = 6 + +[LP DYDX-MNTA] +peggy_denom = ibc/0FC1BAA3BF09FA73946A6412088FCED87D1D2368F30BDC771FB5FF6EAE0EB5E9 +decimals = 6 + +[LP DYM-MNTA] +peggy_denom = ibc/CC151284BE8E76C67E78ADAE3892C0D9084F0C802CC1EC44BFBE91EE695206E8 +decimals = 6 + +[LP FUZN-MNTA] +peggy_denom = ibc/A064F58ADEAA6DF2AE8006787DFF5E1F144FECF79F880F0140CB38800C295AC2 +decimals = 6 + +[LP INJ-MNTA] +peggy_denom = ibc/4229FC85617819AFFE8543D646BE8A41CD9F8257985A198E0DF09E54F23EC6D3 +decimals = 6 + +[LP LINK.axl-MNTA] +peggy_denom = ibc/BA3A7ACF9AEF1F3D1973ED4406EB35CF2DCB9B545D71A7F06B27A7EA918F8396 +decimals = 6 + +[LP MNTA-KUJI] +peggy_denom = ibc/AE8EDE6CB769E0EAB809204D5E770F5DF03BC35D3E5977272E6CE5147229F938 +decimals = 6 + +[LP NTRN-MNTA] +peggy_denom = ibc/77011B441A8655A392E5B6DA8AE4ADFB0D3DF3E26B069803D64B89208EC8C07E +decimals = 6 + +[LP OSMO-MNTA] +peggy_denom = ibc/CF0564CF0C15332430432E8D7C417521004EBB2EA4CB922C577BA751A64B6599 +decimals = 6 + +[LP PAXG.grv-MNTA] +peggy_denom = ibc/8C1E93AB13F5FC3E907751DA5BE4C7518E930A4C9F441523E608323C1CA35F6B +decimals = 6 + +[LP SCRT-MNTA] +peggy_denom = ibc/9FE7DE3797BC1F75E8CBE30B16CE84A3835B8A280E7E7780CE2C86C244F6253C +decimals = 6 + +[LP SHD-MNTA] +peggy_denom = ibc/B512CFCA199DCBDF098824846D2D78E1E04EBA6A5091A99472236B69B24C979E +decimals = 6 + +[LP SOL.wh-MNTA] +peggy_denom = ibc/D765CDBB85910E131773AF7072439F9C382DF0B894D2209E09D2EEFE0298EADC +decimals = 6 + +[LP SOMM-MNTA] +peggy_denom = ibc/457CF9F4112FB7E765A83A1F93DE93246C1E0D5A1C83F9A909B5890A172AAC34 +decimals = 6 + +[LP STARS-MNTA] +peggy_denom = ibc/B6B6EB8527A6EE9040DBE926D378EC23CB231AC8680AF75372DBF6B7B64625A7 +decimals = 6 + +[LP TIA-MNTA] +peggy_denom = ibc/59F96C9AAFC26E872D534D483EF8648305AD440EF2E9A506F061BADFC378CE13 +decimals = 6 + +[LP UNI.axl-MNTA] +peggy_denom = ibc/4E4B25966A3CF92B796F5F5D1A70A375F32D8EF4C7E49DEC1C38441B7CA8C7CA +decimals = 6 + +[LP WHALE-MNTA] +peggy_denom = ibc/89E80D95AF2FD42A47E9746F7CFF32F3B56FE3E113B81241A6A818C8B3221C17 +decimals = 6 + +[LP ampMNTA-MNTA] +peggy_denom = ibc/8545604BFCCC408B753EB0840FF131CB34B9ED1283A9BD551F68C324B53FEF0C +decimals = 6 + +[LP qcMNTA-MNTA] +peggy_denom = ibc/23ADD2AC1D22776CE8CB37FB446E552B9AE5532B76008ADF73F75222A6ACFE19 +decimals = 6 + +[LP stOSMO-OSMO] +peggy_denom = ibc/20D8F1713F8DF3B990E23E205F1CCD99492390558022FF3FE60B1FAFCF955689 +decimals = 6 + +[LP wAVAX.axl-MNTA] +peggy_denom = ibc/57CC0316BFD206E1A8953DD6EC629F1556998EB9454152F21D51EFB5A35851EF +decimals = 6 + +[LP wBNB.axl-MNTA] +peggy_denom = ibc/2961FC233B605E5D179611D7D5C88E89DD3717081B5D06469FF27DFE83AF9BEB +decimals = 6 + +[LP wBTC.axl-MNTA] +peggy_denom = ibc/B73EDDE38FFE4C5782B5C6108F4977B8B4A0C13AA9EBABEBCCFC049ED5CC0968 +decimals = 6 + +[LP wETH.axl-MNTA] +peggy_denom = ibc/83DDCD6991A94C4ED287A029243527A14A86D4A62FB69BBEC51FB9B0156C6683 +decimals = 6 + +[LP wETH.axl-USK] +peggy_denom = ibc/6E2B993CA402C047E232E4722D1CE0C73DBD47CBBE465E16F6E3732D27F37649 +decimals = 6 + +[LP wFTM.axl-MNTA] +peggy_denom = ibc/EBF34B929B7744BD0C97ECF6F8B8331E2BCA464F1E5EA702B6B40ED2F55433BD +decimals = 6 + +[LP wMATIC.axl-MNTA] +peggy_denom = ibc/942AA5D504B03747AF67B19A874D4E47DAD307E455AEB34E3A4A2ECF7B9D64C8 +decimals = 6 + +[LP wTAO.grv-MNTA] +peggy_denom = ibc/51BB7FAEEDCFC7782519C8A6FB0D7168609B2450B56FED6883ABD742AEED8CC4 +decimals = 6 + +[LP wstETH.axl-MNTA] +peggy_denom = ibc/BAB4B518D0972626B854BE5139FCAD7F1113E3787BC13013CB6A370298EFE0C1 +decimals = 6 + +[LP wstETH.axl-wETH.axl] +peggy_denom = ibc/CEECB0B01EC9BF90822BCA6A1D6D2BF4DC6291BD0C947BEE512BD4639045EAD1 +decimals = 6 + +[LP yieldETH.axl-MNTA] +peggy_denom = ibc/D410037544911319AB9F3BF0C375598AAD69A7555A5B23158484DFFC10651316 +decimals = 6 + +[LRDSVN] +peggy_denom = inj1xcrrweel03eu2fzlvmllhy52wdv25wvejn24dr +decimals = 8 + +[LUCK] +peggy_denom = factory/inj13f6c0hc3l80qa7w80j992wtscslkg8pm65rxua/LUCK +decimals = 6 + +[LUCKY] +peggy_denom = inj1v8vkngk2pn2sye2zduy77lfdeaqq9cd924f5le +decimals = 18 + +[LUFFY] +peggy_denom = inj1yzz7pvx7e98u3xv4uz0tkqrm6uj684j9lvv0z4 +decimals = 6 + +[LUIGI] +peggy_denom = inj1h8yjr8ely8q8r8rlvs2zx0pmty70ajy4ud6l0y +decimals = 18 + +[LUKE] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/luke +decimals = 6 + +[LUM] +peggy_denom = ibc/2C58CBDF1C96FAD7E6B1C5EC0A484E9BD9A27E126E36AFBDD7E45F0EA17F3640 +decimals = 6 + +[LUNA] +peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 +decimals = 6 + +[LUNA-USDC-LP] +peggy_denom = ibc/CBC3DCBC6559DB851F487B6A41C547A2D75DB0C54A143DDF39C04250E50DA888 +decimals = 6 + +[LUNA-USDT-LP] +peggy_denom = ibc/E06B8ECC4B080937AFD0AD0308C4E9354AB169C297F45E087D6057F0010E502D +decimals = 6 + +[LUNAR] +peggy_denom = inj1hpu5e5620hvd7hf3t4t4em96cx9t58yefcr3uu +decimals = 8 + +[LVN] +peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 +decimals = 6 + +[LYM] +peggy_denom = peggy0xc690F7C7FcfFA6a82b79faB7508c466FEfdfc8c5 +decimals = 18 + +[Leapwifhat] +peggy_denom = factory/inj10xsan7m2gwhwjm9hrr74ej77lx8qaxk9cl7rfw/Leapwifhat +decimals = 6 + +[Leia] +peggy_denom = inj1vm24dp02njzgd35srtlfqkuvxz40dysyx7lgfl +decimals = 6 + +[Lenz] +peggy_denom = factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz +decimals = 6 + +[Leo] +peggy_denom = inj1xnqaq553d5awhzr68p5vkenrj64ueqpfzjjp0f +decimals = 18 + +[Leonardo] +peggy_denom = inj1yndh0j4dpnjuqaap7u6csta2krvhqddjwd3p9w +decimals = 18 + +[Lido DAO Token] +peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +decimals = 8 + +[Lido Staked Ether] +peggy_denom = ibc/FB1B967C690FEA7E9AD7CF76AE2255169D4EA2937D6694B2C0E61A370F76D9FB +decimals = 18 + +[Lost Paradise AI] +peggy_denom = inj1wf0d0ynpfcmpcq8h9evv2z4p0stc73x3skj96r +decimals = 8 + +[Luigi] +peggy_denom = inj1vrz0yfrlxe6mqaadmeup8g6nhhzmg7hwpfr6kz +decimals = 18 + +[Luna] +peggy_denom = ibc/0DDC992F19041FC1D499CCA1486721479EBAA7270604E15EDDFABA89D1E772E5 +decimals = 6 + +[MAD] +peggy_denom = inj1u97mcn0sx00hnksfc9775gh5vtjhn4my340t0j +decimals = 18 + +[MADDOG] +peggy_denom = inj1y942sn0su2wxzh65xnd6h6fplajm04zl8fh0xy +decimals = 6 + +[MAFIAz] +peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MAFIAz +decimals = 6 + +[MAGA] +peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 +decimals = 9 + +[MAI] +peggy_denom = inj1wd3vgvjur8du5zxktj4v4xvny4n8skjezadpp2 +decimals = 8 + +[MAKI] +peggy_denom = factory/inj1l0pnjpc2y8f0wlua025g5verjuvnyjyq39x9q0/MAKI +decimals = 6 + +[MAMA] +peggy_denom = inj1ayukjh6wufyuymv6ehl2cmjjpvrqjf5m75ty90 +decimals = 6 + +[MAMBA] +peggy_denom = factory/inj18z5cm702ylpqz8j6gznalcw69wp4m7fsdjhnfq/mamba +decimals = 6 + +[MANEKI] +peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/MANEKI +decimals = 6 + +[MANTAINJ] +peggy_denom = inj14mf5jzda45w25d2w20z5t2ee9a47wh2tqh6ndg +decimals = 8 + +[MANTIS] +peggy_denom = inj1s6hmmyy9f2k37qqw2pryufg4arqxegurddkdp9 +decimals = 6 + +[MARA] +peggy_denom = inj1kaqrfnqy59dm6rf7skn8j05fdmdya9af0g56we +decimals = 18 + +[MARB] +peggy_denom = inj1up4k6vxrq4nhzvp5ssksqejk3e26q2jfvngjlj +decimals = 18 + +[MARC] +peggy_denom = inj1xg8d0nf0f9075zj3h5p4hku8r6ahtssxs4sq5q +decimals = 18 + +[MARD] +peggy_denom = inj177n6een54mcs8sg3hgdruumky308ehgkp9mghr +decimals = 18 + +[MARE] +peggy_denom = inj1k4ytnwu0luen8vyvahqmusxmt362r8xw3mmu55 +decimals = 18 + +[MARF] +peggy_denom = inj1phkfvvrzqtsq6ajklt0vsha78jsl3kg6wcd68m +decimals = 18 + +[MARG] +peggy_denom = inj14qypf8qd0zw3t7405n4rj86whxhyqnvacl8c9n +decimals = 18 + +[MARH] +peggy_denom = inj1sarc5fq8rlqxl9q3y6f6u5qnzumsqdn6vvvgyh +decimals = 18 + +[MARI] +peggy_denom = inj1x5wvc0k7xht6jyh04vj2dtstcrv68lps4r58d5 +decimals = 18 + +[MARJ] +peggy_denom = inj1sdxdvnn6g2c7qwfts55w4043x8qzdzrku0qp3z +decimals = 18 + +[MARK] +peggy_denom = inj1mnv033jcerdf4d3xw2kfreakahtuf0ue3xgr3u +decimals = 18 + +[MARM] +peggy_denom = inj1qls0sp552zw55df5klhv98zjueagtn6ugq292f +decimals = 18 + +[MARN] +peggy_denom = inj1q4swwrf6kvut57k8hpul7ef39vr5ka3h74dcwj +decimals = 18 + +[MARS] +peggy_denom = inj1h28xpjed0xtjwe558gr2nx7nsfx2p6sey6zduc +decimals = 8 + +[MASK] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/mask +decimals = 6 + +[MASTER] +peggy_denom = inj1at4cjadsrags6c65g4vmtnwzw93pv55kky796l +decimals = 6 + +[MATIC] +peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +decimals = 18 + +[MATR1X] +peggy_denom = inj1367pnje9e8myaw04av6j2n5z7827407k4sa4m8 +decimals = 8 + +[MATR1X AI] +peggy_denom = inj18d3wkfajxh7t9cq280ggrksrchj0ymjf7cxwcf +decimals = 8 + +[MAX] +peggy_denom = factory/inj164jk46xjwsn6x4rzu6sfuvtlzy2nza0nxfj0nz/MAX +decimals = 6 + +[MAXH] +peggy_denom = inj1h97mmp9v36ljlmhllyqas0srsfsaq2ppq4dhez +decimals = 18 + +[MAXI] +peggy_denom = factory/inj1jtx66k3adkjkrhuqypkt2ld7equf3whcmj2lde/MAXI +decimals = 6 + +[MBERB] +peggy_denom = inj1d6wle0ugcg2u3hcl9unkuz7usdvhv6tx44l9qn +decimals = 6 + +[MBRN] +peggy_denom = ibc/7AF90EDF6F5328C6C33B03DB7E33445708A46FF006932472D00D5076F5504B67 +decimals = 6 + +[MC01] +peggy_denom = ibc/7F8D9BCCF7063FD843B5C052358466691FBEB29F75FA496A5174340B51EDA568 +decimals = 6 + +[MDRA] +peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA +decimals = 18 + +[MEAT] +peggy_denom = inj1naxd5z6h78khd90nmfguxht55eecvttus8vfuh +decimals = 6 + +[MEHTER] +peggy_denom = factory/inj1tscuvmskt4fxvqurh0aueg57x4vja683z79q4u/MEHTER +decimals = 6 + +[MEME] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl +decimals = 8 + +[MEMEAI] +peggy_denom = inj1ps72fm7jpvnp3n0ysmjcece6rje9yp7dg8ep5j +decimals = 8 + +[MEMEME] +peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE +decimals = 18 + +[MEMT] +peggy_denom = factory/inj1vust6dc470q02c35vh8z4qz22ddr0zv35pxaxe/MEMEMINT +decimals = 6 + +[MEOW] +peggy_denom = factory/inj13wngn7gt8mt2k66x3ykp9tvfk5x89ajwd7yrtr/meow +decimals = 6 + +[MESSI] +peggy_denom = inj1upun866849c4kh4yddzkd7s88sxhvn3ldllqjq +decimals = 6 + +[META] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/meta +decimals = 6 + +[METAOASIS] +peggy_denom = inj1303k783m2ukvgn8n4a2u5jvm25ffqe97236rx2 +decimals = 8 + +[METAWORLD] +peggy_denom = inj1lafjpyp045430pgddc8wkkg23uxz3gjlsaf4t3 +decimals = 8 + +[MEW] +peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/mew +decimals = 6 + +[MIB] +peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/MIB +decimals = 6 + +[MICE] +peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/MICE +decimals = 6 + +[MICHAEL] +peggy_denom = factory/inj1hem3hs6fsugvx65ry43hpcth55snyy8x4c5s89/MICHAEL +decimals = 6 + +[MICRO] +peggy_denom = inj1jnn7uf83lpl9ug5y6d9pxes9v7vqphd379rfeh +decimals = 6 + +[MIGMIG] +peggy_denom = inj1vl8swymtge55tncm8j6f02yemxqueaj7n5atkv +decimals = 6 + +[MILA] +peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/MILA +decimals = 6 + +[MILF] +peggy_denom = inj1mlahaecngtx3f5l4k6mq882h9r2fhhplsatgur +decimals = 18 + +[MILFQUNT] +peggy_denom = factory/inj164mk88yzadt26tzvjkpc4sl2v06xgqnn0hj296/MILFQUNT +decimals = 6 + +[MILK] +peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/MILK +decimals = 6 + +[MINIDOG] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3 +decimals = 18 + +[MINJ] +peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/minj +decimals = 6 + +[MIRZA] +peggy_denom = factory/inj1m6mqdp030nj6n7pa9n03y0zrkczajm96rcn7ye/MIRZA +decimals = 6 + +[MITHU] +peggy_denom = inj1uh3nt2d0q69hwsgge4z38rm2vg9h7hugdnf5wx +decimals = 6 + +[MIYOYO] +peggy_denom = factory/inj1xuds68kdmuhextjew8zlt73g5ku7aj0g7tlyjr/miyoyo +decimals = 6 + +[MKEY] +peggy_denom = inj1jqqysx5j8uef2kyd32aczp3fktl46aqh7jckd5 +decimals = 18 + +[MKR] +peggy_denom = ibc/E8C65EFAB7804152191B8311F61877A36779277E316883D8812D3CBEFC79AE4F +decimals = 18 + +[MNC] +peggy_denom = inj1fr693adew9nnl64ez2mmp46smgn48c9vq2gv6t +decimals = 18 + +[MNINJA] +peggy_denom = inj1cv3dxtjpngy029k5j0mmsye3qrg0uh979ur920 +decimals = 18 + +[MNP] +peggy_denom = inj1s02f4aygftq6yhpev9dmnzp8889g5h3juhd5re +decimals = 18 + +[MNTA] +peggy_denom = ibc/A4495880A4A2E3C242F63C710F447BAE072E1A4C2A22F1851E0BB7ABDD26B43D +decimals = 6 + +[MOAR] +peggy_denom = ibc/D37C63726080331AF3713AA59B8FFD409ABD44F5FDB4685E5F3AB43D40108F6F +decimals = 6 + +[MOBX] +peggy_denom = ibc/D80D1912495833112073348F460F603B496092385558F836D574F86825B031B4 +decimals = 9 + +[MOGD] +peggy_denom = inj1yycep5ey53zh2388k6m2jmy4s4qaaurmjhcatj +decimals = 6 + +[MOJO] +peggy_denom = inj14ttljn98g36yp6s9qn59y3xsgej69t53ja2m3n +decimals = 18 + +[MOL] +peggy_denom = factory/inj1fnpmp99kclt00kst3ht8g0g44erxr5wx6fem9x/MOL +decimals = 6 + +[MOM] +peggy_denom = inj17p7q5jrc6y00akcjjwu32j8kmjkaj8f0mjfn9p +decimals = 6 + +[MOMO] +peggy_denom = factory/inj12kja5s3dngydnhmdm69v776mkfrf7nuzclwzc4/MOMO +decimals = 6 + +[MONKEY] +peggy_denom = factory/inj1v88cetqty588vkc5anxnm3zjcj2dmf4dwpdxry/monkey +decimals = 6 + +[MONKS] +peggy_denom = inj1fy4hd7gqtdzp6j84v9phacm3f998382yz37rjd +decimals = 18 + +[MOO] +peggy_denom = factory/inj10tj05gfpxgnmpr4q7rhxthuknc6csatrp0uxff/moo +decimals = 6 + +[MOON] +peggy_denom = factory/inj1d2gl87f9ldwemvhm8rskqzuqprrsvc5fr5nllc/MOON +decimals = 6 + +[MOONIFY] +peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify +decimals = 6 + +[MOONTRADE] +peggy_denom = inj19fzjd8rungrlmkujr85v0v7u7xm2aygxsl03cy +decimals = 8 + +[MOR] +peggy_denom = inj13vyz379revr8w4p2a59ethm53z6grtw6cvljlt +decimals = 8 + +[MORKIE] +peggy_denom = inj1k30vrj8q6x6nfyn6gpkxt633v3u2cwncpxflaa +decimals = 18 + +[MOTHER] +peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE +decimals = 6 + +[MOX] +peggy_denom = inj1w86sch2d2zmpw0vaj5sn2hdy6evlvqy5kx3mf0 +decimals = 18 + +[MPEPE] +peggy_denom = mpepe +decimals = 18 + +[MRKO] +peggy_denom = inj10wufg9exwgr8qgehee9q8m8pk25c62wwul4xjx +decimals = 8 + +[MRZ] +peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/mirza +decimals = 6 + +[MT] +peggy_denom = inj1exeh9j6acv6375mv9rhwtzp4qhfne5hajncllk +decimals = 8 + +[MUBI] +peggy_denom = factory/inj1fzhwjv2kjv7xr2h4phue5yqsjawjypcamcpl5a/mubi +decimals = 6 + +[MUSHROOM] +peggy_denom = inj1wchqefgxuupymlumlzw2n42c6y4ttjk9a9nedq +decimals = 6 + +[MUSK] +peggy_denom = inj1em3kmw6dmef39t7gs8v9atsvzkprdr03k5h5ej +decimals = 8 + +[MYRK] +peggy_denom = ibc/48D1DA9AA68C949E27BAB39B409681292035ABF63EAB663017C7BEF98A3D118E +decimals = 6 + +[MYSTERYBOX1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/MYSTERYBOX1 +decimals = 0 + +[MacTRUMP] +peggy_denom = inj10gsw06ee0ppy7ltqeqhagle35h0pnue9nnsetg +decimals = 6 + +[Maga] +peggy_denom = inj1wey50ukykccy8h6uaacln8naz5aahhsy09h4x0 +decimals = 6 + +[Mak] +peggy_denom = inj1vpks54yg6kwtsmt9r2psclcp0gmkgma3c3rvmg +decimals = 18 + +[MantaInj] +peggy_denom = inj1qzc2djpnpg9n5jjcjzayl0dn4gjvft77yfau52 +decimals = 8 + +[Mark] +peggy_denom = factory/inj1uw9z3drc0ea680e4wk60lmymstx892nta7ycyt/MARK +decimals = 6 + +[Marshmello] +peggy_denom = inj1aw5t8shvcesdrh47xfyy9x9j0vzkhxuadzv6dw +decimals = 6 + +[MartialArts] +peggy_denom = factory/inj1tjspc227y7ck52hppnpxrmhfj3kd2pw3frjw8v/MartialArts +decimals = 6 + +[Matr1x AI] +peggy_denom = inj1gu7vdyclf2fjf9jlr6dhzf34kcxchjavevuktl +decimals = 8 + +[MelonMask] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/melonmask +decimals = 6 + +[Meme] +peggy_denom = factory/inj1c72uunyxvpwfe77myy7jhhjtkqdk3csum846x4/Meme +decimals = 4 + +[MemeCoin] +peggy_denom = inj12dag0a67uxcvs5x730lpq0pdsatgmx8ktqeafl +decimals = 8 + +[Men In Black] +peggy_denom = factory/inj1q3xa3r638hmpu2mywg5r0w8a3pz2u5l9n7x4q2/MeninblackINJ +decimals = 6 + +[Messi] +peggy_denom = inj1lvq52czuxncydg3f9z430glfysk4yru6p4apfr +decimals = 18 + +[MetaOasis] +peggy_denom = inj1uk7dm0ws0eum6rqqfvu8d2s5vrwkr9y2p7vtxh +decimals = 8 + +[MetaPX] +peggy_denom = inj1dntprsalugnudg7n38303l3l577sxkxc6q7qt5 +decimals = 8 + +[Metti] +peggy_denom = inj1lgnrkj6lkrckyx23jkchdyuy62fj4773vjp3jf +decimals = 8 + +[Mew Cat] +peggy_denom = inj12pykmszt7g2l5h2q9h8vfk0w6aq2nj8waaqs7d +decimals = 8 + +[Minions] +peggy_denom = inj1wezquktplhkx9gheczc95gh98xemuxqv4mtc84 +decimals = 6 + +[MitoTutorial] +peggy_denom = factory/inj1m3ea9vs5scly8c5rm6l3zypknfckcc3xzu8u5v/Test +decimals = 6 + +[Money] +peggy_denom = inj108rxfpdh8q0pyrnnp286ftj6jctwtajjeur773 +decimals = 18 + +[Monks] +peggy_denom = factory/inj148sjw9h9n3n8gjw37reetwdlc7v4hfhl8r7vv3/Monks +decimals = 6 + +[Moon] +peggy_denom = inj143ccar58qxmwgxr0zcp32759z5nsvseyr2gm7c +decimals = 18 + +[Moon ] +peggy_denom = inj1e3gqdkr2v7ld6m3620lgddfcarretrca0e7gn5 +decimals = 18 + +[Moonlana] +peggy_denom = inj1trg4pfcu07ft2dhd9mljp9s8pajxeclzq5cnuw +decimals = 8 + +[Morc] +peggy_denom = inj1vnwc3n4z2rewaetwwxz9lz46qncwayvhytpddl +decimals = 8 + +[MrT] +peggy_denom = inj1hrhfzv3dfzugfymf7xw37t0erp32f2wkcx3r74 +decimals = 6 + +[Multichain USDC] +peggy_denom = ibc/610D4A1B3F3198C35C09E9AF7C8FB81707912463357C9398B02C7F13049678A8 +decimals = 6 + +[MySymbol] +peggy_denom = inj1t6hampk8u4hsrxwt2ncw6xx5xryansh9mg94mp +decimals = 18 + +[MyTokenOne] +peggy_denom = inj13m7h8rdfvr0hwvzzvufwe2sghlfd6e45rz0txa +decimals = 18 + +[MyTokenZero] +peggy_denom = inj1kzk2h0g6glmlwamvmzq5jekshshkdez6dnqemf +decimals = 18 + +[NAKI] +peggy_denom = factory/inj10lauc4jvzyacjtyk7tp3mmwtep0pjnencdsnuc/NAKI +decimals = 6 + +[NAMI] +peggy_denom = ibc/B82AA4A3CB90BA24FACE9F9997B75359EC72788B8D82451DCC93986CB450B953 +decimals = 6 + +[NARUTO] +peggy_denom = factory/inj16x0d8udzf2z2kjkdlr9ehdt7mawn9cckzt927t/naruto +decimals = 6 + +[NAWU] +peggy_denom = inj1y5qs5nm0q5qz62lxkeq5q9hpkh050pfn2j6mh4 +decimals = 18 + +[NBD] +peggy_denom = factory/inj1ckw2dxkwp7ruef943x50ywupsmxx9wv8ahdzkt/NBD +decimals = 6 + +[NBLA] +peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla +decimals = 6 + +[NBOY] +peggy_denom = factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/NBOY +decimals = 6 + +[NBZ] +peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D +decimals = 6 + +[NBZAIRDROP] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/NBZAIRDROP +decimals = 0 + +[NBZPROMO1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/NBZPROMO1 +decimals = 0 + +[NCACTE] +peggy_denom = factory/inj1zpgcfma4ynpte8lwfxqfszddf4nveq95prqyht/NCACTE +decimals = 6 + +[NCH] +peggy_denom = inj1d8pmcxk2grd62pwcy4q58l2vqh98vwkjx9nsvm +decimals = 8 + +[NCOQ] +peggy_denom = factory/inj13gc6rhwe73hf7kz2fwpall9h73ft635yss7tas/NCOQ +decimals = 6 + +[NEO] +peggy_denom = inj12hnvz0xs4mnaqh0vt9suwf8puxzd7he0mukgnu +decimals = 8 + +[NEOK] +peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 +decimals = 18 + +[NEPT] +peggy_denom = inj1464m9k0njt596t88chlp3nqg73j2fzd7t6kvac +decimals = 18 + +[NETZ] +peggy_denom = inj1dg27j0agxx8prrrzj5y8hkw0tccgwfuwzr3h50 +decimals = 8 + +[NEURA] +peggy_denom = peggy0x3D1C949a761C11E4CC50c3aE6BdB0F24fD7A39DA +decimals = 18 + +[NEURAL] +peggy_denom = factory/inj1esryrafqyqmtm50wz7fsumvq0xevx0q0a9u7um/NEURAL +decimals = 6 + +[NEWF] +peggy_denom = inj1uhqyzzmjq2czlsejqjg8gpc00gm5llw54gr806 +decimals = 18 + +[NEWS] +peggy_denom = factory/inj1uw4cjg4nw20zy0y8z8kyug7hum48tt8ytljv50/NEWS +decimals = 6 + +[NEWSHROOM] +peggy_denom = inj1e0957khyf2l5knwtdnzjr6t4d0x496fyz6fwja +decimals = 6 + +[NEWT] +peggy_denom = inj1k4gxlzrqvmttwzt2el9fltnzcdtcywutxqnahw +decimals = 18 + +[NEWTON] +peggy_denom = inj14a7q9frkgtvn53xldccsvmz8lr5u6qffu7jmmx +decimals = 8 + +[NEWYEARINJ] +peggy_denom = inj1980cshwxa5mnptp6vzngha6h2qe556anm4zjtt +decimals = 8 + +[NEXO] +peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 +decimals = 18 + +[NEYMAR] +peggy_denom = inj1s2ealpaglaz24fucgjlmtrwq0esagd0yq0f5w5 +decimals = 6 + +[NFA] +peggy_denom = factory/inj1c5gk9y20ptuyjlul0w86dsxhfttpjgajhvf9lh/NFA +decimals = 6 + +[NFCTV] +peggy_denom = factory/inj14mn4n0lh52vxttlg5a4nx58pnvc2ntfnt44y4j/NFCTV +decimals = 6 + +[NFT] +peggy_denom = factory/inj1zchn2chqyv0cqfva8asg4lx58pxxhmhhhgx3t5/NFT +decimals = 6 + +[NI] +peggy_denom = factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ni +decimals = 6 + +[NICO] +peggy_denom = ibc/EED3F204DCABACBEB858B0A56017070283098A81DEB49F1F9D6702309AA7F7DE +decimals = 18 + +[NIF] +peggy_denom = factory/inj1pnwrzhnjfncxgf4jkv3zadf542tpfc3xx3x4xw/NIF +decimals = 6 + +[NIGGA] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/nigga +decimals = 6 + +[NIJIO] +peggy_denom = inj1lwgzxuv0wkz86906dfssuwgmhld8705tzcfhml +decimals = 18 + +[NIKE] +peggy_denom = inj1e2ee7hk8em3kxqxc0uuupzpzvrcda85s3lx37h +decimals = 18 + +[NIM] +peggy_denom = ibc/C1BA2AC55B969517F1FCCFC47779EC83C901BE2FC3E1AFC8A59681481C74C399 +decimals = 18 + +[NIN] +peggy_denom = inj1d0z43f50a950e2vdzrlu7w8yeyy0rp5pdey43v +decimals = 18 + +[NINISHROOM] +peggy_denom = inj1vlgszdzq75lh56t5nqvxz28u0d9ftyve6pglxr +decimals = 6 + +[NINJ] +peggy_denom = factory/inj13m5k0v69lrrng4y3h5895dlkr6zcp272jmhrve/Ninjutsu +decimals = 6 + +[NINJA] +peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja +decimals = 6 + +[NINJA MEME] +peggy_denom = inj1dypt8q7gc97vfqe37snleawaz2gp7hquxkvh34 +decimals = 18 + +[NINJA WIF HAT] +peggy_denom = inj1pj40tpv7algd067muqukfer37swt7esymxx2ww +decimals = 6 + +[NINJAGO] +peggy_denom = factory/inj19025raqd5rquku4ha42age7c6r7ws9jg6hrulx/NINJAGO +decimals = 6 + +[NINJAMOON] +peggy_denom = inj1etlxd0j3u83d8jqhwwu3krp0t4chrvk9tzh75e +decimals = 6 + +[NINJANGROK] +peggy_denom = inj17006r28luxtfaf7hn3jd76pjn7l49lv9le3983 +decimals = 6 + +[NINJAPE] +peggy_denom = factory/inj13sdyzwu7l4kwcjkyuyepxufjxtk2u59xkksp69/NINJAPE +decimals = 6 + +[NINJAPEPE] +peggy_denom = inj1jhufny7g2wjv4yjh5za97jauemwmecflvuguty +decimals = 18 + +[NINJAS] +peggy_denom = factory/inj1j3rm46nj4z8eckv5333897z7esectj64kufs4a/NINJAS +decimals = 6 + +[NINJASAMURAI] +peggy_denom = inj1kfr9r9vvflgyka50yykjm9l02wsazl958jffl2 +decimals = 6 + +[NINJATRUMP] +peggy_denom = factory/inj1f95tm7382nhj42e48s427nevh3rkj64xe7da5z/NINJATRUMP +decimals = 6 + +[NINJAWIFHAT] +peggy_denom = factory/inj1xukaxxx4yuaz6xys5dpuhe60un7ct9umju5ash/NWIF +decimals = 6 + +[NINJB] +peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb +decimals = 6 + +[NINJT] +peggy_denom = inj1tp3cszqlqa7e08zcm78r4j0kqkvaccayhx97qh +decimals = 18 + +[NINPO] +peggy_denom = inj1sudjgsyhufqu95yp7rqad3g78ws8g6htf32h88 +decimals = 6 + +[NINU] +peggy_denom = inj14057e7c29klms2fzgjsm5s6serwwpeswxry6tk +decimals = 6 + +[NINZA] +peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/NINZA +decimals = 6 + +[NITROID] +peggy_denom = inj1f7srklvw4cf6net8flmes4mz5xl53mcv3gs8j9 +decimals = 8 + +[NJO] +peggy_denom = inj1c8jk5qh2lhmvqs33z4y0l84trdu7zhgtd3aqrd +decimals = 18 + +[NLB] +peggy_denom = inj10s6mwhlv44sf03d5lfk4ntmplsujgftu587rzq +decimals = 18 + +[NLBZ] +peggy_denom = inj1qfmf6gmpsna8a3k6da2zcf7ha3tvf2wdep6cky +decimals = 18 + +[NLBZZ] +peggy_denom = inj1rn2yv784zf90yyq834n7juwgeurjxly8xfkh9d +decimals = 18 + +[NLC] +peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 +decimals = 6 + +[NLT] +peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/NLT +decimals = 18 + +[NNJG] +peggy_denom = inj1e8eqle6queaywa8w2ns0u9m7tldz9vv44s28p2 +decimals = 18 + +[NOBI] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi +decimals = 6 + +[NOBITCHES] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches +decimals = 6 + +[NOGGA] +peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/NOGGA +decimals = 6 + +[NOIA] +peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca +decimals = 18 + +[NOIS] +peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A +decimals = 6 + +[NONE] +peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 +decimals = 18 + +[NONJA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck +decimals = 18 + +[NORUG] +peggy_denom = inj1vh38phzhnytvwepqv57jj3d7q2gerf8627dje3 +decimals = 18 + +[NOVA] +peggy_denom = inj1dqcyzn9p48f0dh9xh3wxqv3hs5y3lhqr43ecs0 +decimals = 8 + +[NPEPE] +peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/NPEPE +decimals = 6 + +[NSTK] +peggy_denom = ibc/35366063B530778DC37A16AAED4DDC14C0DCA161FBF55B5B69F5171FEE19BF93 +decimals = 6 + +[NTRL] +peggy_denom = ibc/4D228A037CE6EDD54034D9656AE5850BDE871EF71D6DD290E8EC81603AD40899 +decimals = 6 + +[NTRN] +peggy_denom = ibc/6488808F32B07F6E8DCE7B700B92D9F7287D0FA1D0F76A25B11276E09DB0E626 +decimals = 6 + +[NTRUMP] +peggy_denom = inj16dv3vfngtaqfsvd07436f6v4tgzxu90f0hq0lz +decimals = 6 + +[NTY] +peggy_denom = inj1zzfltckwxs7tlsudadul960w7rdfjemlrehmrd +decimals = 18 + +[NUDES] +peggy_denom = factory/inj1dla04adlxke6t4lvt20xdxc9jh3ed609dewter/NUDES +decimals = 6 + +[NUIT] +peggy_denom = inj1kxntfyzsqpug6gea7ha4pvmt44cpvmtma2mdkl +decimals = 18 + +[NUN] +peggy_denom = inj15sgutwwu0ha5dfs5zwk4ctjz8hjmkc3tgzvjgf +decimals = 18 + +[NUNCHAKU] +peggy_denom = inj12q6sut4npwhnvjedht574tmz9vfrdqavwq7ufw +decimals = 18 + +[NWIF] +peggy_denom = factory/inj10l4tnj73fl3wferljef802t63n9el49ppnv6a8/nwif +decimals = 6 + +[NWJNS] +peggy_denom = inj1slwarzmdgzwulzwzlr2fe87k7qajd59hggvcha +decimals = 6 + +[NYAN] +peggy_denom = factory/inj1lttm52qk6hs43vqak5qyk4hl4fzu2snq2gmg0c/nyan +decimals = 6 + +[NYX] +peggy_denom = factory/inj1fnq8xx5hye89jvhmkqycj7luyy08f3tudus0cd/nyx +decimals = 6 + +[Naruto] +peggy_denom = factory/inj1j53ejjhlya29m4w8l9sxa7pxxyhjplrz4xsjqw/naruto +decimals = 6 + +[Naruto Token] +peggy_denom = factory/inj1gwkdx7lkpvq2ewpv29ptxdy9r95vh648nm8mp0/naruto +decimals = 6 + +[Neptune Receipt ATOM] +peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 +decimals = 6 + +[Neptune Receipt INJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f +decimals = 18 + +[Neptune Receipt USDT] +peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s +decimals = 6 + +[Newt] +peggy_denom = ibc/B0A75E6F4606C844C05ED9E08335AFC50E814F210C03CABAD31562F606C69C46 +decimals = 6 + +[Nil] +peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/Nil +decimals = 6 + +[NinjAI] +peggy_denom = factory/inj15we00jwlnd2ahpse0xfpswk8h296p80esn2wsx/NinjAI +decimals = 6 + +[Ninja] +peggy_denom = factory/inj1p0w30l464lxl8afxqfda5zxeeypnvdtx4yjc30/Ninja +decimals = 6 + +[Ninja Labs Coin] +peggy_denom = factory/inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4/NLC +decimals = 6 + +[Ninja Swap] +peggy_denom = inj1lzdvr2d257lazc2824xqlpnn4q50vuyhnndqhv +decimals = 8 + +[NinjaBoy] +peggy_denom = inj1vz8h0tlxt5qv3hegqlajzn4egd8fxy3mty2w0h +decimals = 6 + +[NinjaCoq] +peggy_denom = inj1aapaljp62znaxy0s2huc6ka7cx7zksqtq8xnar +decimals = 6 + +[NinjaWifHat] +peggy_denom = inj1gmch7h49qwvnn05d3nj2rzqw4l7f0y8s4g2gpf +decimals = 6 + +[Nlc] +peggy_denom = inj17uhjy4u4aqhtwdn3mfc4w60dnaa6usg30ppr4x +decimals = 18 + +[NoobDev] +peggy_denom = inj1qzlkvt3vwyd6hjam70zmr3sg2ww00l953hka0d +decimals = 6 + +[O9W] +peggy_denom = ibc/AA206C13A2AD46401BD1E8E65F96EC9BF86051A8156A92DD08BEF70381D39CE2 +decimals = 6 + +[OBEMA] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/obema +decimals = 6 + +[OCEAN] +peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 +decimals = 18 + +[OCHO] +peggy_denom = inj1ltzx4qjtgmjyglf3nnhae0qxaxezkraqdhtgcn +decimals = 8 + +[ODIN] +peggy_denom = ibc/6ED95AEFA5D9A6F9EF9CDD05FED7D7C9D7F42D9892E7236EB9B251CE9E999701 +decimals = 6 + +[OIN] +peggy_denom = ibc/09A596CF997F575F2D1E150DFECD7AAE4B44B119F4E45E0A2532EEBD1F8795FE +decimals = 6 + +[OIN STORE OF VALUE] +peggy_denom = ibc/486A0C3A5D9F8389FE01CF2656DF03DB119BC71C4164212F3541DD538A968B66 +decimals = 6 + +[OJO] +peggy_denom = inj1hg5ag8w3kwdn5hedn3mejujayvcy2gknn39rnl +decimals = 18 + +[OMG] +peggy_denom = inj14wpqhfcd4q6424vskcv8xch4s0chc8cs82v4qp +decimals = 6 + +[OMI] +peggy_denom = peggy0xeD35af169aF46a02eE13b9d79Eb57d6D68C1749e +decimals = 18 + +[OMNI] +peggy_denom = peggy0x36E66fbBce51e4cD5bd3C62B637Eb411b18949D4 +decimals = 18 + +[OMT] +peggy_denom = inj1tctqgl6y4mm7qlr0x2xmwanjwa0g8nfsfykap6 +decimals = 18 + +[ONE] +peggy_denom = inj1wu086fnygcr0sgytmt6pk8lsnqr9uev3dj700v +decimals = 18 + +[ONETOONE] +peggy_denom = inj1y346c6cjj0kxpcwj5gq88la9qsp88rzlw3pg98 +decimals = 18 + +[ONI] +peggy_denom = inj1aexws9pf9g0h3032fvdmxd3a9l2u9ex9aklugs +decimals = 18 + +[ONP] +peggy_denom = inj15wvxl4xq4zrx37kvh6tsqyqysukws46reywy06 +decimals = 18 + +[ONTON] +peggy_denom = inj1a3hxfatcu7yfz0ufp233m3q2egu8al2tesu4k5 +decimals = 6 + +[OOZARU] +peggy_denom = ibc/9E161F95E105436E3DB9AFD49D9C8C4C386461271A46DBA1AB2EDF6EC9364D62 +decimals = 6 + +[OP] +peggy_denom = op +decimals = 18 + +[OPHIR] +peggy_denom = ibc/19DEC3C890D19A782A3CD0C62EA8F2F8CC09D0C9AAA8045263F40526088FEEDB +decimals = 6 + +[ORAI] +peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 +decimals = 6 + +[ORN] +peggy_denom = peggy0x0258F474786DdFd37ABCE6df6BBb1Dd5dfC4434a +decimals = 8 + +[ORNE] +peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E +decimals = 6 + +[OSMO] +peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 +decimals = 6 + +[OUTIES] +peggy_denom = factory/inj1282wzngdg46gjuttvhxumkx65fnqx0aqmyl0lu/OUTIES +decimals = 6 + +[OUTLINES] +peggy_denom = inj1zutqugjm9nfz4tx6rv5zzj77ts4ert0umnqsjm +decimals = 6 + +[OX] +peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f +decimals = 18 + +[Ocean Protocol] +peggy_denom = inj1cxnqp39cn972gn2qaw2qc7hrryaa52chx7lnpk +decimals = 18 + +[OjoD] +peggy_denom = inj1ku6t0pgaejg2ykmyzvfwd2qulx5gjjsae23kgm +decimals = 18 + +[Omni Cat] +peggy_denom = factory/inj1vzmmdd2prja64hs4n2vk8n4dr8luk6522wdrgk/OMNI +decimals = 6 + +[OmniCat] +peggy_denom = inj188rmn0k9hzdy35ue7nt5lvyd9g9ldnm0v9neyz +decimals = 8 + +[Onj] +peggy_denom = inj1p9kk998d6rapzmfhjdp4ee7r5n4f2klu7xf8td +decimals = 8 + +[Open Exchange Token] +peggy_denom = ibc/3DC896EFF521814E914264A691D9D462A7108E96E53DE135FC4D91A370F4CD77 +decimals = 18 + +[Oraichain] +peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 +decimals = 18 + +[Orcat] +peggy_denom = inj1ldp0pssszyguhhey5dufagdwc5ara09fnlq8ms +decimals = 18 + +[PAMBI] +peggy_denom = factory/inj1wa976p5kzd5v2grzaz9uhdlcd2jcexaxlwghyj/PAMBI +decimals = 6 + +[PANDA] +peggy_denom = factory/inj1p8ey297l9qf835eprx4s3nlkesrugg28s23u0g/PANDA +decimals = 6 + +[PANDANINJA] +peggy_denom = factory/inj1ekvx0ftc46hqk5vfxcgw0ytd8r7u94ywjpjtt8/pandaninja +decimals = 6 + +[PANTERA] +peggy_denom = inj1hl4y29q5na4krdpk4umejwvpw4v5c3kpmxm69q +decimals = 8 + +[PARABOLIC] +peggy_denom = factory/inj126c3fck4ufvw3n0a7rsq75gx69pdxk8npnt5r5/PARABOLIC +decimals = 6 + +[PASS] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/pass +decimals = 6 + +[PAXG] +peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 +decimals = 18 + +[PBB] +peggy_denom = ibc/05EC5AA673220183DBBA6825C66DB1446D3E56E5C9DA3D57D0DE5215BA7DE176 +decimals = 6 + +[PBJ] +peggy_denom = ibc/2B6F15447F07EA9DC0151E06A6926F4ED4C3EE38AB11D0A67A4E79BA97329830 +decimals = 6 + +[PBinj] +peggy_denom = inj1k4v0wzgxm5zln8asekgkdljvctee45l7ujwlr4 +decimals = 8 + +[PDIX] +peggy_denom = inj13m85m3pj3ndll30fxeudavyp85ffjaapdmhel5 +decimals = 18 + +[PEPE] +peggy_denom = peggy0x6982508145454Ce325dDbE47a25d4ec3d2311933 +decimals = 18 + +[PEPE Injective] +peggy_denom = inj1ytxxfuajl0fvhgy2qsx85s3t882u7qgv64kf2g +decimals = 18 + +[PEPE MEME ] +peggy_denom = inj1jev373k3l77mnhugwzke0ytuygrn8r8497zn6e +decimals = 18 + +[PEPE on INJ] +peggy_denom = factory/inj1aey234egq5efqr7zfvtzdsq6h2c5wsrma4lw7h/pepe +decimals = 1 + +[PEPEA] +peggy_denom = factory/inj1gaf6yxle4h6993qwsxdg0pkll57223qjetyn3n/PEPEA +decimals = 6 + +[PEPINJ] +peggy_denom = factory/inj12jtagr03n6fqln4q8mg06lrpaj4scwts49x2cp/pepinj +decimals = 6 + +[PETER] +peggy_denom = inj1xuqedjshmrqadvqhk4evn9kwzgkk5u9ewdua6z +decimals = 18 + +[PGN] +peggy_denom = inj1gx88hu6xjfvps4ddyap27kvgd5uxktl8ndauvp +decimals = 18 + +[PHEW] +peggy_denom = inj128usk4mqn69h9hmthqxhasyewkrhmprl7jp6lv +decimals = 6 + +[PHUC] +peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc +decimals = 6 + +[PICA] +peggy_denom = ibc/9C2212CB87241A8D038222CF66BBCFABDD08330DFA0AC9B451135287DCBDC7A8 +decimals = 12 + +[PIG] +peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/pig +decimals = 6 + +[PIGS] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf +decimals = 18 + +[PIKA] +peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/PIKA +decimals = 6 + +[PIKACHU] +peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/PIKACHU +decimals = 6 + +[PIKACHU ] +peggy_denom = inj1x3m7cgzdl7402fhe29aakdwda5630r2hpx3gm2 +decimals = 18 + +[PING] +peggy_denom = inj1ty0274r9754kq8qn7hnlhmv35suq6ars7y2qnt +decimals = 18 + +[PING'S BROTHER PONG] +peggy_denom = inj1qrcr0xqraaldk9c85pfzxryjquvy9jfsgdkur7 +decimals = 18 + +[PINGDEV] +peggy_denom = inj17dlj84plm8yqjtp82mmg35494v8wjqfk29lzyf +decimals = 18 + +[PINJA] +peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja +decimals = 6 + +[PINJEON] +peggy_denom = factory/inj1l73eqd7w5vu4srwmc722uwv7u9px7k5azzsqm2/pinjeon +decimals = 6 + +[PINJU] +peggy_denom = factory/inj1j43ya8q0u5dx64x362u62yq5zyvasvg98asm0d/pinju +decimals = 6 + +[PIO] +peggy_denom = factory/inj1ufkjuvf227gccns4nxjqc8vzktfvrz6y7xs9sy/PIO +decimals = 6 + +[PIPI] +peggy_denom = factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/pipi +decimals = 6 + +[PIRATE] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/PIRATE +decimals = 6 + +[PIXDOG] +peggy_denom = inj1thsy9k5c90wu7sxk37r2g3u006cszqup8r39cl +decimals = 18 + +[PIXEL] +peggy_denom = inj1wmlkhs5y6qezacddsgwxl9ykm40crwp4fpp9vl +decimals = 8 + +[PIZZA] +peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/PIZZA +decimals = 6 + +[PKS] +peggy_denom = inj1m4z4gjrcq9wg6508ds4z2g43wcgynlyflaawef +decimals = 18 + +[PLNK] +peggy_denom = ibc/020098CDEC3D7555210CBC1593A175A6B24253823B0B711D072EC95F76FA4D42 +decimals = 6 + +[POINT] +peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point +decimals = 0 + +[POK] +peggy_denom = inj18nzsj7sef46q7puphfxvr5jrva6xtpm9zsqvhh +decimals = 18 + +[POLAR] +peggy_denom = inj1kgdp3wu5pr5ftuzczpgl5arg28tz44ucsjqsn9 +decimals = 8 + +[POLLY] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/POLLY +decimals = 6 + +[PONDO] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/pondo +decimals = 6 + +[PONG] +peggy_denom = inj1lgy5ne3a5fja6nxag2vv2mwaan69sql9zfj7cl +decimals = 18 + +[POOL] +peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e +decimals = 18 + +[POOR] +peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 +decimals = 8 + +[POP] +peggy_denom = factory/inj1a9dsv5whfhqptkycx4l9uly9x684lwmwuv7l3n/POP +decimals = 6 + +[POPCAT] +peggy_denom = inj1pfx2k2mtflde5yz0gz6f7xfks9klx3lv93llr6 +decimals = 18 + +[POPEYE] +peggy_denom = ibc/7E4EA08D14451712CC921456E2FBA57B54D4CA80AE9E471FAAF16610029B9145 +decimals = 6 + +[PORK] +peggy_denom = inj14u3qj9fhrc6d337vlx4z7h3zucjsfrwwvnsrnt +decimals = 18 + +[PORNGPT] +peggy_denom = inj1ptlmxvkjxmjap436v9wrryd20r2gqf94fr57ga +decimals = 8 + +[PORTAL] +peggy_denom = factory/inj163072g64wsn8a9n2mydwlx7c0aqt4l7pjseeuu/PORTAL +decimals = 6 + +[POTIN] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/POTIN +decimals = 6 + +[POTION] +peggy_denom = factory/inj1r7thtn5zj6mv9zupelkkw645ve8kgx35rf43ja/POTION +decimals = 18 + +[POTTER] +peggy_denom = factory/inj1c7h6wnfdz0dpc5llsdxfq9yemmq9nwfpr0c59r/potter +decimals = 6 + +[PRERICH] +peggy_denom = factory/inj18p952tvf264784sf9f90rpge4w7dhsjrtgn4lw/prerich +decimals = 7 + +[PROD] +peggy_denom = inj1y2mev78vrd4mcfrjunnktctwqhm7hznguue7fc +decimals = 18 + +[PROMETHEUS] +peggy_denom = inj1tugjw7wy3vhtqjap22j9e62yzrurrsu4efu0ph +decimals = 8 + +[PROOF] +peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/PROOF +decimals = 6 + +[PROTON-011] +peggy_denom = inj1vts6mh344msrwr885ej5naev87yesred5mp23r +decimals = 8 + +[PRYZM] +peggy_denom = ibc/2A88907A69C27C7481E478005AAD1976F044246E0CDB4DB3367EADA4EF38373B +decimals = 6 + +[PSPS] +peggy_denom = inj145p4shl9xdutc7cv0v9qpfallh3s8z64yd66rg +decimals = 18 + +[PSYCHO] +peggy_denom = factory/inj18aptztz0pxvvjzumpnd36szzljup0t7t3pauu8/psycho +decimals = 6 + +[PUFF] +peggy_denom = inj1f8kkrgrfd7utflvsq7xknuxtzf92nm80vkshu2 +decimals = 6 + +[PUG] +peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b +decimals = 18 + +[PUNK] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt +decimals = 18 + +[PUNKINJ] +peggy_denom = inj1vq0f9sgvg0zj5hc4vvg8yd6x9wzepzq5nekh4l +decimals = 8 + +[PUPZA] +peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/PUPZA +decimals = 6 + +[PUTIN] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/putin +decimals = 6 + +[PVP] +peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 +decimals = 8 + +[PVV] +peggy_denom = inj1rk5y4m3qgm8h68z2lp3e2dqqjmpkx7m0aa84ah +decimals = 6 + +[PYTH] +peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 +decimals = 6 + +[PYTHlegacy] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +decimals = 6 + +[PYUSD] +peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 +decimals = 6 + +[Panda Itamae] +peggy_denom = factory/inj1wpttce7eccrutxkddtzug4xyz4ztny88httxpg/panda +decimals = 6 + +[Pedro] +peggy_denom = inj1c6lxety9hqn9q4khwqvjcfa24c2qeqvvfsg4fm +decimals = 18 + +[People] +peggy_denom = inj13pegx0ucn2e8w2g857n5828cmvl687jgq692t4 +decimals = 6 + +[Pepe] +peggy_denom = ibc/9144D78830C5ABD7B7D9E219EA7600E3A0E0AD5FC50C007668160595E94789AB +decimals = 18 + +[Phepe] +peggy_denom = inj1mtt0a4evtfxazpxjqlv5aesdn3mnysl78lppts +decimals = 8 + +[Pie] +peggy_denom = inj1m707m3ngxje4adfr86tll8z7yzm5e6eln8e3kr +decimals = 18 + +[PigFucker] +peggy_denom = factory/inj17p7p03yn0z6zmjwk4kjfd7jh7uasxwmgt8wv26/pigfucker +decimals = 6 + +[Pigs] +peggy_denom = inj1mcmjk2zgh5wpxkdmkevlpmah6tsmwvql78twpf +decimals = 18 + +[Pikachu] +peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika +decimals = 6 + +[PingDevRtard] +peggy_denom = inj1c8v52n2wyye96m4xwama3pwqkdc56gw03dlkcq +decimals = 18 + +[Point Token] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0 +decimals = 18 + +[Polkadot] +peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 +decimals = 10 + +[Popeye] +peggy_denom = ibc/833095AF2D530639121F8A07E24E5D02921CA19FF3192D082E9C80210515716C +decimals = 6 + +[Punk DAO Token] +peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/PUNK +decimals = 6 + +[Punk Token] +peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt +decimals = 18 + +[Pyth Network (legacy)] +peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +decimals = 6 + +[QAT] +peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen +decimals = 8 + +[QNT] +peggy_denom = peggy0x4a220E6096B25EADb88358cb44068A3248254675 +decimals = 18 + +[QOC] +peggy_denom = inj1czcj5472ukkj6pect59z5et39esr3kvquxl6dh +decimals = 8 + +[QTUM] +peggy_denom = factory/inj1jgc9ptfwgyapfrr0kgdjjnwpdqck24pp59uma3/qtum +decimals = 0 + +[QTest] +peggy_denom = factory/inj1dda3mee75nppg9drvx8zc88zdj4qzvmlnrtrnh/QTest +decimals = 6 + +[QUNT] +peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +decimals = 6 + +[QUOK] +peggy_denom = factory/inj1jdnjwhcjhpw8v0cmk80r286w5d426ns6tw3nst/QUOK +decimals = 6 + +[Quants] +peggy_denom = factory/inj1yttneqwxxc4qju4p54549p6dq2j0d09e7gdzx8/Quants +decimals = 6 + +[RAA] +peggy_denom = inj1vzpjnmm4s9qa74x2n7vgcesq46afjj5yfwvn4q +decimals = 18 + +[RAB] +peggy_denom = inj1xmdyafnth7g6pvg6zd687my3ekw3htvh95t2c8 +decimals = 18 + +[RAC] +peggy_denom = inj1y6dgj675ttk2tzeasdwsk6n7etn0cfh9wz20vy +decimals = 18 + +[RAD] +peggy_denom = inj1r9wxpyqp4a75k9dhk5qzcfmkwtrg7utgrvx0zu +decimals = 18 + +[RAE] +peggy_denom = inj1lvtcdka9prgtugcdxeyw5kd9rm35p0y2whwj7j +decimals = 18 + +[RAF] +peggy_denom = inj1l8hztn806saqkacw8rur4qdgexp6sl7k0n6xjm +decimals = 18 + +[RAG] +peggy_denom = inj1k45q0qf0jwepajlkqcx5a6w833mm0lufzz0kex +decimals = 18 + +[RAH] +peggy_denom = inj1mpcxzhkk0c7wjrwft2xafsvds9un59gfdml706 +decimals = 18 + +[RAI] +peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 +decimals = 18 + +[RAMEN] +peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen +decimals = 6 + +[RAMEN2] +peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN2 +decimals = 6 + +[RAMEN22] +peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMEN22 +decimals = 6 + +[RAMENV2] +peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2 +decimals = 6 + +[RAMSES] +peggy_denom = inj1jttaxqcjtsys54k3m6mx4kzulzasg4tc6hhpp6 +decimals = 8 + +[RAPTR] +peggy_denom = ibc/592FDF11D4D958105B1E4620FAECAA6708655AB815F01A01C1540968893CDEBF +decimals = 6 + +[RATJA] +peggy_denom = inj1kl5pzllv782r8emj3umgn3dwcewc6hw6xdmvrv +decimals = 18 + +[RAY] +peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/RAY +decimals = 6 + +[REAL] +peggy_denom = inj1uhralmk73lkxeyd9zhskmzz44lsmcxneluqgp9 +decimals = 18 + +[REALS] +peggy_denom = inj1g3l8chts5wrt437tkpmuy554wcky6devphqxf0 +decimals = 18 + +[RED] +peggy_denom = inj15ytmt6gng36relzntgz0qmgfqnygluz894yt28 +decimals = 18 + +[REDINJ] +peggy_denom = inj1jkts7lhvwx27z92l6dwgz6wpyd0xf9wu6qyfrh +decimals = 18 + +[REFIs] +peggy_denom = factory/inj1uklzzlu9um8rq922czs8g6f2ww760xhvgr6pat/REFIs +decimals = 6 + +[REIS] +peggy_denom = ibc/444BCB7AC154587F5D4ABE36EF6D7D65369224509DCBCA2E27AD539519DD66BB +decimals = 6 + +[RETRO] +peggy_denom = ibc/ACDEFBA440F37D89E2933AB2B42AA0855C30852588B7DF8CD5FBCEB0EB1471EB +decimals = 6 + +[RHINO] +peggy_denom = inj1t5f60ewnq8hepuvmwnlm06h0q23fxymldh0hpr +decimals = 6 + +[RIBBIT] +peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe +decimals = 18 + +[RICE] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/rice +decimals = 12 + +[RICHINJ] +peggy_denom = inj143l8dlvhudhzuggrp5sakwmn8kw24hutr43fe2 +decimals = 8 + +[RICK] +peggy_denom = factory/inj1ga7xu92w0yxhedk92v6ckge6q76vx2hxcwxsxx/RICK +decimals = 6 + +[RIP] +peggy_denom = inj1eu8ty289eyjvm4hcrg70n4u95jggh9eekfxs5y +decimals = 18 + +[RITSU] +peggy_denom = inj17cqglnfpx7w20pc6urwxklw6kkews4hmfj6z28 +decimals = 18 + +[RKO] +peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/RKO +decimals = 6 + +[RKT] +peggy_denom = factory/inj1af5v85xm5upykzsjj29lpr9dyp4n37746kpfmq/RKT +decimals = 6 + +[RNDR] +peggy_denom = inj1092d3j7yqup5c8lp92vv5kadl567rynj59yd92 +decimals = 18 + +[ROAR] +peggy_denom = ibc/E6CFB0AC1D339A8CBA3353DF0D7E080B4B14D026D1C90F63F666C223B04D548C +decimals = 6 + +[ROB] +peggy_denom = inj1x6lvx8s2gkjge0p0dnw4vscdld3rdcw94fhter +decimals = 18 + +[ROCK] +peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/rock +decimals = 6 + +[ROCKET] +peggy_denom = inj1zrw6acmpnghlcwjyrqv0ta5wmzute7l4f0n3dz +decimals = 8 + +[ROLL] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3 +decimals = 18 + +[ROM] +peggy_denom = inj16w9qp30vrpng8kr83efvmveen688klvtd00qdy +decimals = 6 + +[ROMAN] +peggy_denom = inj1h3z3gfzypugnctkkvz7vvucnanfa5nffvxgh2z +decimals = 18 + +[RONI] +peggy_denom = factory/inj13y9m57hw2rnvdmsym8na45z9kvexy82c4n6apc/RONI +decimals = 6 + +[RONIN] +peggy_denom = inj142hawfqncg5hd3z7rvpvx7us0h7c4mwjmeslpu +decimals = 6 + +[RONOLDO] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/ronoldo +decimals = 6 + +[ROOT] +peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 +decimals = 6 + +[RSNL] +peggy_denom = factory/inj1uvexgrele9lr5p87kksg6gmz2telncpe0mxsm6/RSNL +decimals = 6 + +[RSTK] +peggy_denom = ibc/102810E506AC0FB1F14755ECA7A1D05066E0CBD574526521EF31E9B3237C0C02 +decimals = 6 + +[RTD] +peggy_denom = inj1ek524mnenxfla235pla3cec7ukmr3fwkgf6jq3 +decimals = 18 + +[RUDY] +peggy_denom = factory/inj1ykggxun6crask6eywr4a2lfy36f4we5l9rg2an/RUDY +decimals = 6 + +[RUG] +peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/RUG +decimals = 6 + +[RUGAOI] +peggy_denom = factory/inj1pe8rs2gfmem5ak8vtqkduzkgcyargk2fg6u4as/RUGAOI +decimals = 6 + +[RUGMYASS] +peggy_denom = inj18n9rpsstxsxgpmgegkn6fsvq9x3alqekqddgnq +decimals = 18 + +[RUGPULL] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/RUGPULL +decimals = 6 + +[RUMBLERZ] +peggy_denom = inj1pcwdvq866uqd8lhpmasya2xqw9hk2u0euvvqxl +decimals = 8 + +[RUNE] +peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb +decimals = 18 + +[RYAN] +peggy_denom = inj1mng4fr0ckvrq8xvgtsjrj6mqzm7passfzjqxcx +decimals = 6 + +[RYU] +peggy_denom = factory/inj1cm0jn67exeqm5af8lrlra4epfhyk0v38w98g42/ryu +decimals = 18 + +[Rai Reflex Index] +peggy_denom = ibc/27817BAE3958FFB2BFBD8F4F6165153DFD230779994A7C42A91E0E45E8201768 +decimals = 18 + +[RealMadrid] +peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/RealMadrid +decimals = 6 + +[Rice Token] +peggy_denom = inj1j6qq40826d695eyszmekzu5muzmdey5mxelxhl +decimals = 18 + +[Rise] +peggy_denom = inj123aevc4lmpm09j6mqemrjpxgsa7dncg2yn2xt7 +decimals = 18 + +[Roll] +peggy_denom = inj15wuxx78q5p9h7fqg3ux7zljczj7jh5qxqhrevv +decimals = 18 + +[Roll Token] +peggy_denom = inj1qv98cmfdaj5f382a0klq7ps4mnjp6calzh20h3 +decimals = 18 + +[Rush] +peggy_denom = inj1r2gjtqgzhfcm4wgvmctpuul2m700v4ml24l7cq +decimals = 18 + +[SAE] +peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/SAE +decimals = 6 + +[SAFAS] +peggy_denom = inj1vphq25x2r69mpf2arzsut8yxcav709kwd3t5ck +decimals = 18 + +[SAFEMOON] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/safemoon +decimals = 6 + +[SAGA] +peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 +decimals = 6 + +[SAIL] +peggy_denom = ibc/2718A31D59C81CD1F972C829F097BDBE32D7B84025F909FFB6163AAD314961B3 +decimals = 6 + +[SAKE] +peggy_denom = factory/inj1mdyw30cuct3haazw546t4t92sadeuwde0tmqxx/SAKE +decimals = 6 + +[SAKI] +peggy_denom = factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAKI +decimals = 6 + +[SAKURA] +peggy_denom = factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakura +decimals = 6 + +[SALT] +peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/salt +decimals = 6 + +[SAM] +peggy_denom = factory/inj1wuw7wa8fvp0leuyvh9ypzmndduzd5vg0xc77ha/sam +decimals = 6 + +[SAMI] +peggy_denom = factory/inj13jvw7hl6hkyg8a8ltag47xyzxcc6h2qkk0u9kr/SAMI +decimals = 6 + +[SAMOORAII] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SAMOORAII +decimals = 6 + +[SAMP] +peggy_denom = inj1xd2l3406kypepnnczcn6fm0lnmsk6qk7dakryn +decimals = 18 + +[SAMURAI] +peggy_denom = factory/inj16nffej2c5xx93lf976wkp7vlhenau464rawhkc/samurai +decimals = 6 + +[SANSU] +peggy_denom = factory/inj1x5thnvjfwzmtxxhqckrap8ysgs2duy29m4xwsp/sansu +decimals = 6 + +[SANTA] +peggy_denom = factory/inj12qf874wcfxtxt004qmuhdtxw4l6d0f5w6cyfpz/santa +decimals = 6 + +[SANTABONK] +peggy_denom = inj1zjdtxmvkrxcd20q8nru4ws47nemkyxwnpuk34v +decimals = 8 + +[SANTAGODX] +peggy_denom = inj1j8nvansvyvhnz4vzf5d8cyjpwu85ksdhyjf3n4 +decimals = 8 + +[SANTAINJ] +peggy_denom = inj17cqy5lr4gprjgnlv0j2mw4rhqfhr9zpupkur8t +decimals = 8 + +[SANTAMEME] +peggy_denom = inj1dds0a220twm3pjprypmy0qun3cn727hzj0tpaa +decimals = 8 + +[SASUKE] +peggy_denom = inj1alpg8nw7lw8uplsrah8q0qn66rqq0fxzd3wf9f +decimals = 18 + +[SATOSHIVM] +peggy_denom = inj1y7pvzc8h05e8qs9de2c9qcypxw6xkj5wttvm70 +decimals = 8 + +[SATS] +peggy_denom = inj1ck568jpww8wludqh463lk6h32hhe58u0nrnnxe +decimals = 8 + +[SAVEOURSTRAYS] +peggy_denom = factory/inj1a5h6erkyttcsyjmrn4k3rxyjuktsxq4fnye0hg/SAVEOURSTRAYS +decimals = 6 + +[SAVM] +peggy_denom = inj1wuw0730q4rznqnhkw2nqwk3l2gvun7mll9ew3n +decimals = 6 + +[SAYVE] +peggy_denom = ibc/DF2B99CF1FEA6B292E79617BD6F7EF735C0B47CEF09D7104E270956E96C38B12 +decimals = 6 + +[SB] +peggy_denom = inj1cqq89rjk4v5a0teyaefqje3skntys7q6j5lu2p +decimals = 8 + +[SBF] +peggy_denom = factory/inj1j2me24lslpaa03fw8cuct8586t6f6qf0wcf4fm/SBF +decimals = 6 + +[SCAM] +peggy_denom = inj1f9rppeq5yduz2te5fxxwnalg54lsa3ac6da5fg +decimals = 18 + +[SCLX] +peggy_denom = factory/inj1faq30xe497yh5ztwt00krpf9a9lyakg2zhslwh/SCLX +decimals = 6 + +[SCORPION] +peggy_denom = factory/inj10w3p2qyursc03crkhg9djdm5tnu9xg63r2zumh/scorpion +decimals = 6 + +[SCRT] +peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A +decimals = 6 + +[SDEX] +peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF +decimals = 18 + +[SDOGE] +peggy_denom = inj1525sjr836apd4xkz8utflsm6e4ecuhar8qckhd +decimals = 8 + +[SEAS] +peggy_denom = ibc/FF5AC3E28E50C2C52063C18D0E2F742B3967BE5ACC6D7C8713118E54E1DEE4F6 +decimals = 6 + +[SECOND] +peggy_denom = inj1rr08epad58xlg5auytptgctysn7lmsk070qeer +decimals = 18 + +[SEI] +peggy_denom = factory/inj1hae0z4qsxw90ghy249ymghyz2ewa0ww3qrkyx2/SEI +decimals = 6 + +[SEIFU] +peggy_denom = inj1jtenkjgqhwxdl93eak2aark5s9kl72awc4rk47 +decimals = 6 + +[SEISEI] +peggy_denom = factory/inj1lm95gdmz7qatcgw933t97rg58wnzz3dpxv7ldk/SEISEI +decimals = 6 + +[SEIWHAT?] +peggy_denom = inj1qjgtplwsrflwgqjy0ffp72mfzckwsqmlq2ml6n +decimals = 8 + +[SEIYAN] +peggy_denom = ibc/ECC41A6731F0C6B26606A03C295236AA516FA0108037565B7288868797F52B91 +decimals = 6 + +[SEKIRO] +peggy_denom = factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/Sekiro +decimals = 6 + +[SENJU] +peggy_denom = factory/inj1qdamq2fk7xs6m34qv8swl9un04w8fhk42k35e5/SENJU +decimals = 6 + +[SENSEI] +peggy_denom = factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/sensei +decimals = 6 + +[SEQUENCE] +peggy_denom = factory/inj1nz984w2xnpwrtzsj7mt8rsc57vyhpwa360fq2r/sequence +decimals = 6 + +[SER] +peggy_denom = inj128cqeg7a78k64xdxsr6v5s6js97dxjgxynwdxc +decimals = 18 + +[SEUL] +peggy_denom = ibc/1C17C28AEA3C5E03F1A586575C6BE426A18B03B48C11859B82242EF32D372FDA +decimals = 6 + +[SEX] +peggy_denom = factory/inj174r3j8pm93gfcdu0g36dg6g7u0alygppypa45e/SEX +decimals = 6 + +[SHARINGAN] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SHARINGAN +decimals = 18 + +[SHARK] +peggy_denom = ibc/08B66006A5DC289F8CB3D7695F16D211D8DDCA68E4701A1EB90BF641D8637ACE +decimals = 6 + +[SHARP] +peggy_denom = inj134p6skwcyjac60d2jtff0daps7tvzuqj4n56fr +decimals = 8 + +[SHB] +peggy_denom = inj19zzdev3nkvpq26nfvdcm0szp8h272u2fxf0myv +decimals = 6 + +[SHBL] +peggy_denom = factory/inj1zp8a6nhhf3hc9pg2jp67vlxjmxgwjd8g0ck9mq/SHBL +decimals = 6 + +[SHENZI] +peggy_denom = factory/inj1e05u43qmn9jt502784c009u4elz5l86678esrk/SHENZI +decimals = 6 + +[SHI] +peggy_denom = inj1w7wwyy6pjs9k2ecxte8p6tp8g7kh6k3ut402af +decimals = 6 + +[SHIB] +peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE +decimals = 18 + +[SHIBINJ] +peggy_denom = factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/SHIBINJ +decimals = 6 + +[SHIELD] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SHIELD +decimals = 6 + +[SHINJ] +peggy_denom = factory/inj1h3vg2546p42hr955a7fwalaexjrypn8npds0nq/SHINJ +decimals = 6 + +[SHINJU] +peggy_denom = factory/inj1my757j0ndftrsdf2tuxsdhhy5qfkpuxw4x3wnc/shinju +decimals = 6 + +[SHINOBI] +peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/SHINOBI +decimals = 6 + +[SHIRO] +peggy_denom = factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/shiro +decimals = 6 + +[SHITMOS] +peggy_denom = ibc/96C34D4D443A2FBCA10B120679AB50AE61195DF9D48DEAD60F798A6AC6B3B653 +decimals = 6 + +[SHOGUN] +peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/shogun +decimals = 6 + +[SHRK] +peggy_denom = factory/inj15xhherczv9q83lgdx3zna66s3pcznq6v2sh53d/SHRK +decimals = 6 + +[SHROOM] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 +decimals = 18 + +[SHSA] +peggy_denom = inj1tsrxu2pxusyn24zgxyh2z36apxmhu22jfwd4v7 +decimals = 18 + +[SHT] +peggy_denom = factory/inj1sp8s6ng0e8a7q5dqywgyupwjyjgq2sk553t6r5/SHT +decimals = 6 + +[SHU] +peggy_denom = factory/inj1mllxwgvx0zhhr83rfawjl05dmuwwzfcrs9xz6t/SHU +decimals = 6 + +[SHURIKEN] +peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken +decimals = 6 + +[SILLY] +peggy_denom = inj19j6q86wt75p3pexfkajpgxhkjht589zyu0e4rd +decimals = 8 + +[SIMPSONS] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/simpsons +decimals = 6 + +[SINU] +peggy_denom = inj1mxjvtp38yj866w7djhm9yjkwqc4ug7klqrnyyj +decimals = 8 + +[SJAKE] +peggy_denom = factory/inj1s4xa5jsp5sfv5nql5h3c2l8559l7rqyzckheha/SJAKE +decimals = 6 + +[SKI] +peggy_denom = inj167xkgla9kcpz5gxz6ak4vrqs7nqxr08kvyfqkz +decimals = 18 + +[SKIBIDI] +peggy_denom = factory/inj1ztugej2ytfwj9kxa8m5md85e5z3v8jvaxapz6n/skibidi +decimals = 6 + +[SKIPBIDIDOBDOBDOBYESYESYESYES] +peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d +decimals = 9 + +[SKR] +peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/sakura +decimals = 6 + +[SKULL] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/SKULL +decimals = 6 + +[SKULLS] +peggy_denom = inj1qk4cfp3su44qzragr55fc9adeehle7lal63jpz +decimals = 18 + +[SKYPE] +peggy_denom = inj1e9nezwf7wvjj4rzfkjfad7teqjfa7r0838f6cs +decimals = 18 + +[SLOTH] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/sloth +decimals = 6 + +[SMART] +peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/SMART +decimals = 6 + +[SMAUG] +peggy_denom = inj1a2wzkydpw54f8adq76dkf6kwx6zffnjju93r0y +decimals = 18 + +[SMB] +peggy_denom = inj13xkzlcd490ky7uuh3wwd48r4qy35hlhqxjpe0r +decimals = 18 + +[SMELLY] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/SMELLY +decimals = 6 + +[SMILE] +peggy_denom = factory/inj1tuwuzza5suj9hq4n8pwlfw2gfua8223jfaa6v7/SMILE +decimals = 6 + +[SMLE] +peggy_denom = inj13ent4rmkzf2dht7hnlhg89t527k8xn5ft92e69 +decimals = 18 + +[SMOKE] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKE +decimals = 6 + +[SMOKEe] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/SMOKEe +decimals = 6 + +[SNAPPY] +peggy_denom = factory/inj13y5nqf8mymy9tfxkg055th7hdm2uaahs9q6q5w/SNAPPY +decimals = 6 + +[SNAPPY inj] +peggy_denom = inj19dfkr2rm8g5kltyu93ppgmvdzj799vug2m9jqp +decimals = 18 + +[SNARL] +peggy_denom = factory/inj1dskk29zmzjtc49w3fjxac4q4m87yg7gshw8ps9/SNARL +decimals = 6 + +[SNASA] +peggy_denom = factory/inj1peusyhlu85s3gq82tz8jcfxzkszte4zeqhdthw/SNASA +decimals = 6 + +[SNEK] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/snek +decimals = 6 + +[SNIPE] +peggy_denom = factory/inj16g5w38hqehsmye9yavag0g0tw7u8pjuzep0sys/SNIPE +decimals = 6 + +[SNIPEONE] +peggy_denom = inj146tnhg42q52jpj6ljefu6xstatactyd09wcgwh +decimals = 18 + +[SNIPER] +peggy_denom = factory/inj1qzxna8fqr56g83rvyyylxnyghpguzt2jx3dgr8/SNIPER +decimals = 6 + +[SNJT] +peggy_denom = inj1h6hma5fahwutgzynjrk3jkzygqfxf3l32hv673 +decimals = 18 + +[SNOWY] +peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/SNOWY +decimals = 6 + +[SNS] +peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 +decimals = 8 + +[SNX] +peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F +decimals = 18 + +[SOCRATES] +peggy_denom = inj18qupdvxmgswj9kfz66vaw4d4wn0453ap6ydxmy +decimals = 8 + +[SOGGS] +peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/soggs +decimals = 6 + +[SOK] +peggy_denom = inj1jdpc9y459hmce8yd699l9uf2aw97q3y7kwhg7t +decimals = 18 + +[SOKE] +peggy_denom = inj1ryqavpjvhfj0lewule2tvafnjga46st2q7dkee +decimals = 18 + +[SOL] +peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 +decimals = 8 + +[SOLANAinj] +peggy_denom = inj18e7x9myj8vq58ycdutd6eq6luy7frrp4d2nglr +decimals = 6 + +[SOLinj] +peggy_denom = inj1n9nga2t49ep9hvew5u8xka0d4lsrxxg4cw4uaj +decimals = 6 + +[SOLlegacy] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +decimals = 8 + +[SOMM] +peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +decimals = 6 + +[SONICFLOKITRUMPSPIDERMAN INU] +peggy_denom = inj16afzhsepkne4vc7hhu7fzx4cjpgkqzagexqaz6 +decimals = 8 + +[SONINJ] +peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/soninj +decimals = 6 + +[SOS] +peggy_denom = inj13wdqnmv40grlmje48akc2l0azxl38d2wzl5t92 +decimals = 6 + +[SPDR] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/spdr +decimals = 6 + +[SPK] +peggy_denom = inj18wclk6g0qwwqxa36wd4ty8g9eqgm6q04zjgnpp +decimals = 18 + +[SPONCH] +peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/sponch +decimals = 6 + +[SPOONWORMS] +peggy_denom = inj1qt3c5sx94ag3rn7403qrwqtpnqthg4gr9cccrx +decimals = 6 + +[SPORTS] +peggy_denom = factory/inj1dewkg7z8vffqxk7jcer6sf9ttnx54z0c6gfjw6/SPORTS +decimals = 6 + +[SPUUN] +peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/SPUUN +decimals = 6 + +[SPUUN INJ] +peggy_denom = inj1zrd6wwvyh4rqsx5tvje6ug6qd2xtn0xgu6ylml +decimals = 18 + +[SQRL] +peggy_denom = peggy0x762dD004fc5fB08961449dd30cDf888efb0Adc4F +decimals = 18 + +[SQUID] +peggy_denom = factory/inj1a7697s5yg3tsgkfrm0u5hvxm34mu8v0v3trryx/SQUID +decimals = 6 + +[SSFS] +peggy_denom = inj1m7hd99423w39aug74f6vtuqqzvw5vp0h2e85u0 +decimals = 6 + +[SSTST] +peggy_denom = factory/inj1wmu4fq03zvu60crvjdhksk62e8m08xsn9d5nv3/stream-swap-test +decimals = 0 + +[STAKELAND] +peggy_denom = inj1sx4mtq9kegurmuvdwddtr49u0hmxw6wt8dxu3v +decimals = 8 + +[STAR] +peggy_denom = inj1nkxdx2trqak6cv0q84sej5wy23k988wz66z73w +decimals = 8 + +[STARK] +peggy_denom = factory/inj106etgay573e32ksysc9dpdrynxhk7kkmaclhfc/stark +decimals = 6 + +[STARS] +peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca +decimals = 18 + +[STINJ] +peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 +decimals = 18 + +[STINJER] +peggy_denom = factory/inj1fepsfp58ff2l7fasj47ytwrrwwp6k7uz6uhfvn/stinjer +decimals = 6 + +[STL] +peggy_denom = inj1m2pce9f8wfql0st8jrf7y2en7gvrvd5wm573xc +decimals = 18 + +[STRD] +peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 +decimals = 6 + +[STT] +peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd +decimals = 18 + +[STX] +peggy_denom = stx +decimals = 6 + +[SUGAR] +peggy_denom = factory/inj1qukvpzhyjguma030s8dmvw4lxaluvlqq5jk3je/SUGAR +decimals = 6 + +[SUI] +peggy_denom = sui +decimals = 9 + +[SUMO] +peggy_denom = factory/inj15e6p3slz9pa7kcn280y7hgp6rvhsqm3vnczlaw/sumo +decimals = 6 + +[SUMOCOCO] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/SUMOCOCO +decimals = 6 + +[SUPE] +peggy_denom = factory/inj1rl4sadxgt8c0qhl4pehs7563vw7j2dkz80cf55/SUPE +decimals = 6 + +[SUPERMARIO] +peggy_denom = inj1mgts7d5c32w6aqr8h9f5th08x0p4jaya2tp4zp +decimals = 18 + +[SUSHI] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd +decimals = 18 + +[SUSHI FIGHTER] +peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd +decimals = 18 + +[SUSHII] +peggy_denom = inj1p6evqfal5hke6x5zy8ggk2h5fhn4hquk63g20d +decimals = 6 + +[SVM] +peggy_denom = inj1jyhzeqxnh8qnupt08gadn5emxpmmm998gwhuvv +decimals = 8 + +[SVN] +peggy_denom = inj1u4zp264el8hyxsqkeuj5yesp8pqmfh4fya86w6 +decimals = 18 + +[SWAP] +peggy_denom = peggy0xCC4304A31d09258b0029eA7FE63d032f52e44EFe +decimals = 18 + +[SWP] +peggy_denom = ibc/70CF1A54E23EA4E480DEDA9E12082D3FD5684C3483CBDCE190C5C807227688C5 +decimals = 6 + +[SWTH] +peggy_denom = ibc/8E697D6F7DAC1E5123D087A50D0FE0EBDD8A323B90DC19C7BA8484742AEB2D90 +decimals = 8 + +[SXC] +peggy_denom = inj1a4lr8sulev42zgup2g0sk8x4hl9th20cj4fqmu +decimals = 8 + +[SXI] +peggy_denom = inj12mjzeu7qrhn9w85dd02fkvjt8hgaewdk6j72fj +decimals = 8 + +[SYN] +peggy_denom = factory/inj16jsp4xd49k0lnqlmtzsskf70pkzyzv2hjkcr8f/synergy +decimals = 6 + +[SamOrai] +peggy_denom = inj1a7fqtlllaynv6l4h2dmtzcrucx2a9r04e5ntnu +decimals = 18 + +[Samurai] +peggy_denom = factory/inj1s5php9vmd03w6nszlnsny43cmuhw3y6u3vt7qc/samurai +decimals = 6 + +[Samurai dex token] +peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/samurai +decimals = 6 + +[Santa] +peggy_denom = factory/inj1mwsgdlq6rxs3xte8p2m0pcw565czhgngrxgl38/Santa +decimals = 6 + +[SantaInjective] +peggy_denom = inj19wccuev2399ad0ftdfyvw8h9qq5dvqxqw0pqxe +decimals = 8 + +[Satoru Gojo] +peggy_denom = inj1hwc0ynah0xv6glpq89jvm3haydhxjs35yncuq2 +decimals = 6 + +[Sei] +peggy_denom = ibc/0D0B98E80BA0158D325074100998A78FB6EC1BF394EFF632E570A5C890ED7CC2 +decimals = 6 + +[Sekiro] +peggy_denom = factory/inj1nn8xzngf2ydkppk2h0n9nje72ttee726hvjplx/ak +decimals = 6 + +[Sendor] +peggy_denom = inj1hpwp280wsrsgn3r3mvufx09dy4e8glj8sq4vzx +decimals = 6 + +[Sensei Dog] +peggy_denom = ibc/12612A3EBAD01200A7FBD893D4B0D71F3AD65C41B2AEE5B42EE190672EBE57E9 +decimals = 6 + +[She] +peggy_denom = inj1k59du6npg24x2wacww9lmmleh5qrscf9gl7fr5 +decimals = 6 + +[Shiba INJ] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj +decimals = 6 + +[Shiba Inu] +peggy_denom = ibc/E68343A4DEF4AFBE7C5A9004D4C11888EE755A7B43B3F1AFA52F2C34C07990D5 +decimals = 18 + +[ShihTzu] +peggy_denom = factory/inj1x78kr9td7rk3yqylvhgg0ru2z0wwva9mq9nh92/ShihTzu +decimals = 6 + +[Shinobi] +peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi +decimals = 6 + +[Shinobi Inu] +peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/Shinobi +decimals = 6 + +[Shuriken] +peggy_denom = inj1kxamn5nmsn8l7tyu752sm2tyt6qlpufupjyscl +decimals = 18 + +[Shuriken Token] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken +decimals = 6 + +[Sin] +peggy_denom = inj10fnmtl9mh95gjtgl67ww6clugl35d8lc7tewkd +decimals = 18 + +[Sinful] +peggy_denom = inj1lhfk33ydwwnnmtluyuu3re2g4lp79c86ge546g +decimals = 18 + +[Smoking Nonja] +peggy_denom = factory/inj1nvv2gplh009e4s32snu5y3ge7tny0mauy9dxzg/smokingnonja +decimals = 6 + +[Solana (legacy)] +peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +decimals = 8 + +[Sommelier] +peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 +decimals = 6 + +[SpoonWORMS] +peggy_denom = inj1klc8puvggvjwuee6yksmxx4za6xdh20pwjdnec +decimals = 6 + +[Spuun] +peggy_denom = inj1hs0xupdsrnwfx3lcpz56qkp72q7rn57v3jm0x7 +decimals = 18 + +[Spuurk] +peggy_denom = inj1m9yfd6f2dw0f6uyx4r2av2xk8s5fq5m7pt3mec +decimals = 18 + +[Spuvn] +peggy_denom = inj1f66rlllh2uef95p3v7cswqmnnh2w3uv3f97kv3 +decimals = 18 + +[SteadyBTC] +peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d +decimals = 18 + +[SteadyETH] +peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 +decimals = 18 + +[Sui (Wormhole)] +peggy_denom = ibc/F96C68219E987465D9EB253DACD385855827C5705164DAFDB0161429F8B95780 +decimals = 8 + +[Summoners Arena Essence] +peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB +decimals = 8 + +[Sushi Staked INJ] +peggy_denom = inj1hwj3xz8ljajs87km07nev9jt7uhmvf9k9q4k0f +decimals = 6 + +[SushiSwap] +peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 +decimals = 18 + +[TAB] +peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD +decimals = 18 + +[TABOO] +peggy_denom = inj1ttxw2rn2s3hqu4haew9e3ugekafu3hkhtqzmyw +decimals = 8 + +[TACOS] +peggy_denom = inj1ac9d646xzyam5pd2yx4ekgfjhc65564533fl2m +decimals = 6 + +[TAJIK] +peggy_denom = factory/inj1dvlqazkar9jdy8x02j5k2tftwjnp7c53sgfavp/TAJIK +decimals = 6 + +[TAKUMI] +peggy_denom = ibc/ADE961D980CB5F2D49527E028774DE42BFD3D78F4CBBD4B8BA54890E60606DBD +decimals = 6 + +[TALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis +decimals = 6 + +[TANSHA] +peggy_denom = factory/inj1qw7egul6sr0yjpxfqq5qars2qvxucgp2sartet/tansha +decimals = 6 + +[TATAS] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/tatas +decimals = 6 + +[TC] +peggy_denom = factory/inj1ureedhqkm8tv2v60de54xzgqgu9u25xkuw8ecs/tyler +decimals = 6 + +[TENSOR] +peggy_denom = inj1py9r5ghr2rx92c0hyn75pjl7ung4euqdm8tvn5 +decimals = 6 + +[TERRAFORMS] +peggy_denom = inj19rev0qmuz3eccvkluz8sptm6e9693jduexrc4v +decimals = 8 + +[TERT] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tert +decimals = 6 + +[TEST] +peggy_denom = factory/inj12qy3algm6e0zdpv8zxvauzquumuvd39ccdcdjt/TEST +decimals = 6 + +[TEST13] +peggy_denom = factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST13 +decimals = 6 + +[TESTI] +peggy_denom = inj1mzcamv0w3q797x4sj4ny05hfpgacm90a2d2xqp +decimals = 18 + +[TF] +peggy_denom = factory/inj1pjcmuxd2ek7mvx4gnv6quyn6c6rjxwcrs4h5y4/truffle +decimals = 6 + +[THE10] +peggy_denom = factory/inj18u2790weecgqkmcyh2sg9uupz538kwgmmcmtps/THE10 +decimals = 6 + +[THREE] +peggy_denom = inj1qqfhg6l8d7punj4z597t0p3wwwxdcpfew4fz7a +decimals = 18 + +[THUG] +peggy_denom = factory/inj108qcx6eu6l6adl6kxm0qpyshlmzf3w9mnq5vav/THUGLIFE +decimals = 6 + +[THUNDER] +peggy_denom = inj1gacpupgyt74farecd9pv20emdv6vpkpkhft59y +decimals = 6 + +[TIA] +peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 +decimals = 6 + +[TIK] +peggy_denom = inj1xetmk66rv8nhjur9s8t8szkdff0xwks8e4vym3 +decimals = 6 + +[TINJER] +peggy_denom = factory/inj1srha80fxkk40gzymgrgt3m3ya0u8ms3z022f70/tinjer +decimals = 6 + +[TITAN] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/titan +decimals = 6 + +[TJCLUB] +peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/TJCLUB +decimals = 6 + +[TKN] +peggy_denom = factory/inj1f4sglhz3ss74fell9ecvqrj2qvlt6wmk3ctd3f/TKN +decimals = 6 + +[TMB] +peggy_denom = factory/inj1dg4n304450kswa7hdj8tqq3p28f5kkye2fxey3/TMB +decimals = 6 + +[TMNT] +peggy_denom = inj1yt6erfe7a55es7gnwhta94g08zq9qrsjw25eq5 +decimals = 18 + +[TOKYO] +peggy_denom = inj1k8ad5x6auhzr9tu3drq6ahh5dtu5989utxeu89 +decimals = 18 + +[TOM] +peggy_denom = factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/TOM +decimals = 18 + +[TOMO] +peggy_denom = inj1d08rut8e0u2e0rlf3pynaplas6q0akj5p976kv +decimals = 8 + +[TONKURU] +peggy_denom = factory/inj1krswly444gyuunnmchg4uz2ekqvu02k7903skh/tonkuru +decimals = 6 + +[TORO] +peggy_denom = ibc/37DF4CCD7D156B9A8BF3636CD7E073BADBFD54E7C7D5B42B34C116E33DB0FE81 +decimals = 6 + +[TOTS] +peggy_denom = factory/inj1u09lh0p69n7salm6l8ufytfsm0p40pnlxgpcz5/TOTS +decimals = 6 + +[TRASH] +peggy_denom = inj1re43j2d6jxlk4m5sn9lc5qdc0rwkz64c8gqk5x +decimals = 18 + +[TREN] +peggy_denom = inj14y8f4jc0qmmwzcyj9k7dxnlq6tgjq9ql6n2kdn +decimals = 18 + +[TRG] +peggy_denom = inj1scn6ssfehuw735llele39kk7w6ylg4auw3epjp +decimals = 8 + +[TRH] +peggy_denom = inj1dxtnr2cmqaaq0h5sgnhdftjhh5t6dmsu37x40q +decimals = 18 + +[TRIPPY] +peggy_denom = inj1puwde6qxl5v96f5sw0dmql4r3a0e9wvxp3w805 +decimals = 18 + +[TRR] +peggy_denom = inj1cqwslhvaaferrf3c933efmddfsvakdhzaaex5h +decimals = 18 + +[TRUCPI] +peggy_denom = trucpi +decimals = 18 + +[TRUFFLE] +peggy_denom = factory/inj1e5va7kntnq245j57hfe78tqhnd763ekrtu9fez/TRUFFLE +decimals = 6 + +[TRUMP] +peggy_denom = factory/inj16c0cnvw4jd20k9fkdlt4cauyd05hhg6jk7fedh/TRUMP +decimals = 6 + +[TRX] +peggy_denom = inj17ssa7q9nnv5e5p6c4ezzxj02yjhmvv5jmg6adq +decimals = 6 + +[TRY] +peggy_denom = inj10dqyn46ljqwzx4947zc3dska84hpnwc7r6rzzs +decimals = 18 + +[TRY2] +peggy_denom = factory/inj1jpddz58n2ugstuhp238qwwvdf3shxsxy5g6jkn/TRY2 +decimals = 6 + +[TSNG] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/tsng +decimals = 6 + +[TST] +peggy_denom = factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/TST +decimals = 6 + +[TSTI] +peggy_denom = factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/TSTI +decimals = 6 + +[TSTT] +peggy_denom = inj19p5am8kye6r7xu3xy9crzh4dj7uhqvpw3n3mny +decimals = 18 + +[TSUNADE] +peggy_denom = inj1vwzqtjcwv2wt5pcajvlhmaeejwme57q52mhjy3 +decimals = 18 + +[TTNY] +peggy_denom = inj10c0ufysjj52pe7m9a3ncymzf98sysl3nr730r5 +decimals = 18 + +[TTS] +peggy_denom = factory/inj1en4mpfud040ykmlneentdf77ksa3usjcgw9hax/TTS +decimals = 6 + +[TURBO] +peggy_denom = factory/inj1hhmra48t7xwz4snc7ttn6eu5nvmgzu0lwalmwk/TURBO +decimals = 6 + +[TURBOTOAD] +peggy_denom = factory/inj1nmc5namhwszx0yartvjm6evsxrj0ctq2qa30l7/TURBOTOAD +decimals = 6 + +[TURD] +peggy_denom = ibc/3CF3E1A31015028265DADCA63920C320E4ECDEC2F77D2B4A0FD7DD2E460B9EF3 +decimals = 6 + +[TURTLE] +peggy_denom = factory/inj1nshrauly795k2h97l98gy8zx6gl63ak2489q0u/TURTLE +decimals = 8 + +[TURTLENINJ] +peggy_denom = factory/inj1lv9v2z2zvvng6v9qm8eh02t2mre6f8q6ez5jxl/turtleninj +decimals = 6 + +[TWO] +peggy_denom = inj19fza325yjfnx9zxvtvawn0rrjwl73g4nkzmm2w +decimals = 18 + +[Talis NFT] +peggy_denom = inj155kuqqlmdz7ft2jas4fc23pvtsecce8xps47w5 +decimals = 8 + +[Terra] +peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 +decimals = 6 + +[TerraUSD] +peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD +decimals = 18 + +[Test] +peggy_denom = factory/inj135plhn7dkun9rd8uj3hs5v06mk3g88ryd30qxr/Test +decimals = 6 + +[Test QAT] +peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 +decimals = 18 + +[Test Token] +peggy_denom = inj1a6qdxdanekzgq6dluymlk7n7khg3dqq9lua9q9 +decimals = 18 + +[Test coin don't buy] +peggy_denom = inj19xpgme02uxc55hgplg4vkm4vw0n7p6xl4ksqcz +decimals = 18 + +[TestOne] +peggy_denom = inj1f8fsu2xl97c6yss7s3vgmvnjau2qdlk3vq3fg2 +decimals = 18 + +[TestThree] +peggy_denom = inj14e3anyw3r9dx4wchnkcg8nlzps73x86cze3nq6 +decimals = 18 + +[TestTwo] +peggy_denom = inj1krcpgdu3a83pdtnus70qlalrxken0h4y52lfhg +decimals = 18 + +[TestingToken] +peggy_denom = inj1j5y95qltlyyjayjpyupgy7e5y7kkmvjgph888r +decimals = 18 + +[Tether] +peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 +decimals = 6 + +[Tether USD (Wormhole)] +peggy_denom = ibc/3384DCE14A72BBD0A47107C19A30EDD5FD1AC50909C632CB807680DBC798BB30 +decimals = 6 + +[The Mask] +peggy_denom = factory/inj1wgzj93vs2rdfff0jrhp6t7xfzsjpsay9g7un3l/mask +decimals = 6 + +[TheJanitor] +peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/TheJanitor +decimals = 6 + +[TrempBoden] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/trempboden +decimals = 6 + +[Trump] +peggy_denom = inj1neclyywnhlhe4me0g2tky9fznjnun2n9maxuhx +decimals = 6 + +[Trump Ninja] +peggy_denom = inj1dj0u7mqn3z8vxz6muwudhpl95sajmy00w7t6gq +decimals = 18 + +[TryCW] +peggy_denom = inj15res2a5r94y8s33lc7c5czcswx76pygjk827t0 +decimals = 18 + +[Tsu Grenade] +peggy_denom = inj1zgxh52u45qy3xxrq72ypdajhhjftj0hu5x4eea +decimals = 18 + +[TunaSniper] +peggy_denom = inj1r3vswh4hevfj6ynfn7ypudzhe2rrngzjn4lv5a +decimals = 8 + +[UIA] +peggy_denom = inj1h6avzdsgkfvymg3sq5utgpq2aqg4pdee7ep77t +decimals = 18 + +[UICIDE] +peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/UICIDE +decimals = 6 + +[UMA] +peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 +decimals = 18 + +[UMEE] +peggy_denom = ibc/221E9E20795E6E250532A6A871E7F6310FCEDFC69B681037BBA6561270360D86 +decimals = 6 + +[UNI] +peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 +decimals = 18 + +[UP10X] +peggy_denom = inj1zeu70usj0gtgqapy2srsp7pstf9r82ckqk45hs +decimals = 6 + +[UPGRADE] +peggy_denom = inj1f32xp69g4qf7t8tnvkgnmhh70gzy43nznkkk7f +decimals = 8 + +[UPHOTON] +peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB +decimals = 6 + +[UPTENX] +peggy_denom = inj10jgxzcqdf6phdmettetd8m92gxucxz5rpp9kwu +decimals = 6 + +[URO] +peggy_denom = factory/inj1t8wuan5zxp58uwtn6j50kx4tjv25argx6lucwy/URO +decimals = 6 + +[USC] +peggy_denom = ibc/5307C5A7B88337FE81565E210CDB5C50FBD6DCCF2D90D524A7E9D1FE00C40139 +decimals = 8 + +[USD] +peggy_denom = ibc/7474CABFDF3CF58A227C19B2CEDE34315A68212C863E367FC69928ABA344024C +decimals = 18 + +[USD Coin] +peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +decimals = 6 + +[USD Coin (BEP-20)] +peggy_denom = ibc/5FF8FE2FDCD9E28C0608B17FA177A918DFAF7218FA18E5A2C688F34D86EF2407 +decimals = 18 + +[USD Coin (legacy)] +peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USD Coin from Avalanche] +peggy_denom = ibc/705E7E25F94467E363B2EB324A5A6FF4C683A4A6D20AAD2AEEABA2D9EB1B897F +decimals = 6 + +[USD Coin from Polygon] +peggy_denom = ibc/2E93E8914CA07B73A794657DA76170A016057D1C6B0DC42D969918D4F22D95A3 +decimals = 6 + +[USD Con] +peggy_denom = peggy0xB855dBC314C39BFa2583567E02a40CBB246CF82B +decimals = 18 + +[USDC] +peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E +decimals = 6 + +[USDC-MPL] +peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A +decimals = 6 + +[USDCarb] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r +decimals = 6 + +[USDCbsc] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu +decimals = 6 + +[USDCet] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDCgateway] +peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 +decimals = 6 + +[USDClegacy] +peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +decimals = 6 + +[USDCpoly] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 +decimals = 6 + +[USDCso] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +decimals = 6 + +[USDLR] +peggy_denom = ibc/E15121C1541741E0A7BA2B96B30864C1B1052F1AD8189D81E6C97939B415D12E +decimals = 6 + +[USDT] +peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +decimals = 6 + +[USDT.axl] +peggy_denom = ibc/90C6F06139D663CFD7949223D257C5B5D241E72ED61EBD12FFDDA6F068715E47 +decimals = 6 + +[USDT.multi] +peggy_denom = ibc/24E5D0825D3D71BF00C4A01CD8CA8F2D27B1DD32B7446CF633534AEA25379271 +decimals = 6 + +[USDTap] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 +decimals = 6 + +[USDTbsc] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj +decimals = 6 + +[USDTet] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 +decimals = 6 + +[USDTkv] +peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB +decimals = 6 + +[USDTso] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd +decimals = 6 + +[USDX] +peggy_denom = ibc/C78F65E1648A3DFE0BAEB6C4CDA69CC2A75437F1793C0E6386DFDA26393790AE +decimals = 6 + +[USDY] +peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 +decimals = 18 + +[USDYet] +peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C +decimals = 18 + +[USDe] +peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 +decimals = 18 + +[USDi] +peggy_denom = peggy0x83E7D0451da91Ac509cd7F545Fb4AA04D4dD3BA8 +decimals = 18 + +[USK] +peggy_denom = ibc/58BC643F2EB5758C08D8B1569C7948A5DA796802576005F676BBFB7526E520EB +decimals = 6 + +[UST] +peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C +decimals = 18 + +[UTK] +peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c +decimals = 18 + +[Ulp] +peggy_denom = inj1ynqtgucs3z20n80c0zammyqd7skfgc7kyanc2j +decimals = 18 + +[Umee] +peggy_denom = ibc/2FF3DC3A0265B9A220750E75E75E5D44ED2F716B8AC4EDC378A596CC958ABF6B +decimals = 6 + +[Uniswap] +peggy_denom = ibc/3E3A8A403AE81114F4341962A6D73162D586C9DF4CE3BE7C7B459108430675F7 +decimals = 18 + +[Unknown] +peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 +decimals = 6 + +[VATRENI] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay +decimals = 8 + +[VAULT] +peggy_denom = factory/inj16j0dhn7qg9sh7cg8y3vm6fecpfweq4f46tzrvd/VAULT +decimals = 6 + +[VEGAS] +peggy_denom = inj12sy2vdgspes6p7af4ssv2sv0u020ew4httwp5y +decimals = 6 + +[VELO] +peggy_denom = inj1srz2afh8cmay4nuk8tjkq9lhu6tz3hhmjnevlv +decimals = 8 + +[VENUS] +peggy_denom = inj109z6sf8pxl4l6dwh7s328hqcn0ruzflch8mnum +decimals = 8 + +[VERHA] +peggy_denom = inj1v2rqvnaavskyhjkx7xfkkyljhnyhuv6fmczprq +decimals = 18 + +[VIDA] +peggy_denom = inj18wa0xa2xg8ydass70e8uvlvzupt9wcn5l9tuxm +decimals = 6 + +[VINJETTA] +peggy_denom = factory/inj1f4x4j5zcv3uf8d2806umhd50p78gfrftjc3gg4/vinjetta +decimals = 6 + +[VIU] +peggy_denom = inj1ccpccejcrql2878cq55nqpgsl46s26qj8hm6ws +decimals = 8 + +[VIX] +peggy_denom = inj108qxa8lvywqgg0cqma0ghksfvvurgvv7wcf4qy +decimals = 6 + +[VRD] +peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 +decimals = 18 + +[VYK] +peggy_denom = inj15ssgwg2whxt3qnthlrq288uxtda82mcy258xp9 +decimals = 18 + +[Vatreni Token] +peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay +decimals = 8 + +[W] +peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 +decimals = 6 + +[WAGMI] +peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi +decimals = 9 + +[WAIFU] +peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu +decimals = 6 + +[WAIFUBOT] +peggy_denom = inj1fmw3t86ncrlz35pm0q66ca5kpudlxzg55tt54f +decimals = 6 + +[WAIFUDOGE] +peggy_denom = inj1py5zka74z0h02gqqaexllddn8232vqxsc946qf +decimals = 6 + +[WAIT] +peggy_denom = inj17pg77tx07drrx6tm6c72cd9sz6qxhwd4gp93ep +decimals = 8 + +[WAR] +peggy_denom = inj1nfkjyevl6z0fyc86w88xr8qq3awugw0nt2dvxq +decimals = 8 + +[WASABI] +peggy_denom = factory/inj1h6j2hwdn446d3nye82q2thte5pc6qqvyehsjzj/WASABI +decimals = 6 + +[WASSIE] +peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 +decimals = 18 + +[WAVAX] +peggy_denom = ibc/A4FF8E161D2835BA06A7522684E874EFC91004AD0CD14E038F37940562158D73 +decimals = 18 + +[WBNB] +peggy_denom = ibc/B877B8EF095028B807370AB5C7790CA0C328777C9FF09AA7F5436BA7FAE4A86F +decimals = 18 + +[WBTC] +peggy_denom = ibc/48E69ED9995415D94BEA06BE70E4A6C2BEA0F5E83996D1E17AF95126770E06B2 +decimals = 8 + +[WDDG] +peggy_denom = factory/inj1hse75gfje5jllds5t9gnzdwyp3cdc3cvdt7gpw/wddg +decimals = 6 + +[WEED] +peggy_denom = factory/inj1nm8kf7pn60mww3hnqj5je28q49u4h9gnk6g344/WEED +decimals = 6 + +[WEIRD] +peggy_denom = ibc/5533268E098543E02422FF94216D50A97CD9732AEBBC436AF5F492E7930CF152 +decimals = 6 + +[WEN] +peggy_denom = inj1wvd7jt2fwsdqph0culwmf3c4l4y63x4t6gu27v +decimals = 18 + +[WETH] +peggy_denom = ibc/4AC4A819B0BFCB25497E83B92A7D124F24C4E8B32B0E4B45704CC4D224A085A0 +decimals = 8 + +[WFTM] +peggy_denom = ibc/31E8DDA49D53535F358B29CFCBED1B9224DAAFE82788C0477930DCDE231DA878 +decimals = 18 + +[WGLMR] +peggy_denom = ibc/8FF72FB47F07B4AFA8649500A168683BEFCB9EE164BD331FA597D26224D51055 +decimals = 18 + +[WGMI] +peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/WGMI +decimals = 6 + +[WHALE] +peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 +decimals = 6 + +[WHITE] +peggy_denom = factory/inj1hdlavqur8ayu2kcdc9qv4dvee47aere5g80vg5/WHITE +decimals = 6 + +[WIF] +peggy_denom = factory/inj19xkrf82jar2qmf4tn92fajspq2e0warfufplhf/DogWifhat +decimals = 6 + +[WIFDOG] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wifdog +decimals = 6 + +[WIFLUCK] +peggy_denom = inj10vhddx39e3q8ayaxw4dg36tfs9lpf6xx649zfn +decimals = 18 + +[WIGO] +peggy_denom = inj1jzarcskrdgqzn9ynqn05uthv07sepnpftw8xg9 +decimals = 18 + +[WIHA] +peggy_denom = ibc/E1BD2AE3C3879D2D79EA2F81E2A106BC8781CF449F70DDE6D97EF1A45F18C270 +decimals = 6 + +[WINJ] +peggy_denom = inj1cxp5f0m79a9yexyplx550vxtnun8vjdaqf28r5 +decimals = 18 + +[WINJA] +peggy_denom = factory/inj1mq6we23vx50e4kyq6fyqgty4zqq27p20czq283/WINJA +decimals = 6 + +[WINK] +peggy_denom = ibc/325300CEF4149AD1BBFEB540FF07699CDEEFBB653401E872532030CFB31CD767 +decimals = 6 + +[WIZZ] +peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/WIZZ +decimals = 6 + +[WKLAY] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 +decimals = 8 + +[WMATIC] +peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC +decimals = 8 + +[WMATIClegacy] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +decimals = 8 + +[WNINJ] +peggy_denom = factory/inj1ducfa3t9sj5uyxs7tzqwxhp6mcfdag2jcq2km6/wnINJ +decimals = 18 + +[WOJAK] +peggy_denom = factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/WOJAK +decimals = 6 + +[WOJO] +peggy_denom = inj1n7qrdluu3gve6660dygc0m5al3awdg8gv07v62 +decimals = 6 + +[WOKE] +peggy_denom = inj17ka378ydj6ka5q0jlqt0eqhk5tmzqynx43ue7m +decimals = 18 + +[WOLF] +peggy_denom = factory/inj18pe85zjlrg5fcmna8tzqr0lysppcw5x7ecq33n/WOLF +decimals = 6 + +[WONDER] +peggy_denom = inj1ppg7jkl9vaj9tafrceq6awgr4ngst3n0musuq3 +decimals = 8 + +[WOOF] +peggy_denom = factory/inj1wu5464syj9xmud55u99hfwhyjd5u8fxfmurs8j/woof +decimals = 6 + +[WOOF INU] +peggy_denom = inj1h0h49fpkn5r0pjmscywws0m3e7hwskdsff4qkr +decimals = 8 + +[WORM] +peggy_denom = ibc/13C9967E4F065F5E4946302C1F94EA5F21261F3F90DAC0212C4037FA3E058297 +decimals = 6 + +[WOSMO] +peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 +decimals = 6 + +[WSTETH] +peggy_denom = peggy0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 +decimals = 18 + +[WTF] +peggy_denom = ibc/3C788BF2FC1269D66CA3E339634E14856A90336C5562E183EFC9B743C343BC31 +decimals = 6 + +[WUBBA] +peggy_denom = inj17g65zpdwql8xjju92k6fne8luqe35cjvf3j54v +decimals = 6 + +[Waifu] +peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifuinj +decimals = 6 + +[What does the fox say?] +peggy_denom = inj1x0nz4k6k9pmjq0y9uutq3kp0rj3vt37p2p39sy +decimals = 6 + +[Wolf Party] +peggy_denom = factory/inj1xjcq2ch3pacc9gql24hfwpuvy9gxszxpz7nzmz/wolf +decimals = 6 + +[Wormhole] +peggy_denom = factory/inj1xmxx0c3elm96s9s30t0k0gvr4h7l4wx9enndsl/wormhole +decimals = 6 + +[Wrapped Bitcoin] +peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 +decimals = 8 + +[Wrapped Ether] +peggy_denom = ibc/65A6973F7A4013335AE5FFE623FE019A78A1FEEE9B8982985099978837D764A7 +decimals = 18 + +[Wrapped Ethereum] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 +decimals = 8 + +[Wrapped Klaytn] +peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 +decimals = 8 + +[Wrapped Matic] +peggy_denom = ibc/7E23647941230DA0AB4ED10F599647D9BE34E1C991D0DA032B5A1522941EBA73 +decimals = 18 + +[Wrapped Matic (legacy)] +peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +decimals = 8 + +[Wrapped liquid staked Ether 2.0 (Wormhole)] +peggy_denom = ibc/AF173F64492152DA94107B8AD53906589CA7B844B650EFC2FEFED371A3FA235E +decimals = 8 + +[Wynn] +peggy_denom = factory/inj1mmn3lqt5eahuu7cmpcjme6lj0xhjlhj3qj4fhh/Wynn +decimals = 18 + +[X747] +peggy_denom = factory/inj12ccehmgslwzkg4d4n4t78mpz0ja3vxyctu3whl/X747 +decimals = 6 + +[XAC] +peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 +decimals = 8 + +[XAEAXii] +peggy_denom = inj1wlw9hzsrrtnttgl229kvmu55n4z2gfjqzr6e2k +decimals = 18 + +[XAG] +peggy_denom = xag +decimals = 6 + +[XAI] +peggy_denom = inj15a8vutf0edqcuanpwrz0rt8hfclz9w8v6maum3 +decimals = 8 + +[XAU] +peggy_denom = xau +decimals = 6 + +[XBX] +peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 +decimals = 18 + +[XCN] +peggy_denom = ibc/79D01DE88DFFC0610003439D38200E77A3D2A1CCCBE4B1958D685026ABB01814 +decimals = 18 + +[XDD] +peggy_denom = inj10e64r6exkrm52w9maa2e99nse2zh5w4zajzv7e +decimals = 18 + +[XIII] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII +decimals = 6 + +[XMAS] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/XMAS +decimals = 6 + +[XMASINJ] +peggy_denom = inj1yhp235hgpa0nartawhtx0q2hkhr6y8cdth4neu +decimals = 8 + +[XMASPUMP] +peggy_denom = inj165lcmjswrkuz2m5p45wn00qz4k2zpq8r9axkp9 +decimals = 8 + +[XNJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar +decimals = 18 + +[XPLA] +peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe +decimals = 8 + +[XPRT] +peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB +decimals = 6 + +[XRAY] +peggy_denom = inj1aqgkr4r272dg62l9err5v3d3hme2hpt3rzy4zt +decimals = 8 + +[XRP] +peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe +decimals = 18 + +[XTALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis +decimals = 6 + +[XUPS] +peggy_denom = inj1f3ppu7jgputk3qr833f4hsl8n3sm3k88zw6um0 +decimals = 8 + +[XYZ] +peggy_denom = factory/inj12aljr5fewp8vlns0ny740wuwd60q89x0xsqcz3/XYZ +decimals = 6 + +[XmasPump] +peggy_denom = inj1yjtgs6a9nwsljwk958ypf2u7l5kqf5ld8h3tmd +decimals = 8 + +[YAKUZA] +peggy_denom = factory/inj1r5pgeg9xt3xr0mw5n7js8kux7hyvjlsjn6k8ce/YAKUZA +decimals = 6 + +[YAMEI] +peggy_denom = inj1042ucqa8edhazdc27xz0gsphk3cdwxefkfycsr +decimals = 18 + +[YEA] +peggy_denom = inj1vfasyvcp7jpqfpdp980w28xemyurdnfys84xwn +decimals = 18 + +[YEET] +peggy_denom = inj10vhq60u08mfxuq3zr6ffpm7uelcc9ape94xq5f +decimals = 18 + +[YFI] +peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e +decimals = 18 + +[YKZ] +peggy_denom = factory/inj16a7s0v3c2hp575s0ugmva8cedq9yvsmz4mvdcd/YKZ +decimals = 6 + +[YMOS] +peggy_denom = ibc/26AB5A32422A0E9BC3B7FFCCF57CB30F3E8AEEA0F1705D64DCF4D8FA3DD71B9D +decimals = 6 + +[YOAN] +peggy_denom = inj1hgrgkrpwsu6n44ueucx0809usskkp6vdcr3ul9 +decimals = 18 + +[YOKAI] +peggy_denom = inj1y7k7hdw0nyw05rc8qr6nmwlp2kq3vzh065frd6 +decimals = 18 + +[YOSHI] +peggy_denom = inj13y8susc9dle4x664ktps3ynksxxgt6lhmckuxp +decimals = 18 + +[YSIR] +peggy_denom = inj1zff494cl7wf0g2fzqxdtxn5ws4mkgy5ypxwlql +decimals = 18 + +[YUKI] +peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/YUKI +decimals = 6 + +[YUM.axl] +peggy_denom = ibc/253F76EB6D04F50492930A5D97465A495E5D6ED674A33EB60DDD46F01EF56504 +decimals = 18 + +[Yakuza] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/Yakuza +decimals = 6 + +[Yang] +peggy_denom = inj10ga6ju39mxt94suaqsfagea9t9p2ys2lawml9z +decimals = 6 + +[YeetYak] +peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/YeetYak +decimals = 6 + +[YieldETH] +peggy_denom = ibc/6B7E243C586784E1BE150B71F541A3880F0409E994365AF31FF63A2764B72556 +decimals = 18 + +[Ykz] +peggy_denom = inj1ur8dhklqn5ntq45jcm5vy2tzp5zfc05w2pmjam +decimals = 18 + +[Yogi] +peggy_denom = inj1zc3uujkm2sfwk5x8xlrudaxwsc0t903rj2jcen +decimals = 6 + +[ZEUS] +peggy_denom = inj1302yft4ppsj99qy5avv2qv6hfuvzluy4q8eq0k +decimals = 18 + +[ZIG] +peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 +decimals = 18 + +[ZIGZAG] +peggy_denom = inj1d70m92ml2cjzy2lkj5t2addyz6jq4qu8gyfwn8 +decimals = 6 + +[ZIL] +peggy_denom = ibc/AE996D1AF771FED531442A232A4403FAC51ACFFF9B645FF4363CFCB76019F5BD +decimals = 12 + +[ZK] +peggy_denom = zk +decimals = 18 + +[ZOE] +peggy_denom = factory/inj17v462f55kkuhjhvw7vdcjzd2wdk85yh8js3ug9/ZOE +decimals = 6 + +[ZOMBIE] +peggy_denom = factory/inj12yvvkskjdedhztpl4g2vh888z00rgl0wctarst/ZOMBIE +decimals = 6 + +[ZOOMER] +peggy_denom = inj173zkm8yfuqagcc5m7chc4dhnq0k5hdl7vwca4n +decimals = 18 + +[ZORO] +peggy_denom = factory/inj1z70nam7mp5qq4wd45ker230n3x4e35dkca9la4/ZORO +decimals = 18 + +[ZRO] +peggy_denom = zro +decimals = 6 + +[ZRX] +peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 +decimals = 18 + +[ZUZU] +peggy_denom = factory/inj1v05uapg65p6f4307qg0hdkzssn82js6n5gc03q/ZUZU +decimals = 6 + +[ZZZ] +peggy_denom = factory/inj1a2qk8tsd4qv7rmtp8g8ktj7zfldj60hpp0arqp/ZZZ +decimals = 6 + +[aUSD] +peggy_denom = inj1p3nrwgm9u3dtln6rwdvrsmjt5fwlhhhq3ugckd +decimals = 18 + +[aevmos] +peggy_denom = ibc/295BF44E68BDD1B0D32A28C2084D89D63EDA3A01612789B01B62B8F07254D04C +decimals = 0 + +[allBTC] +peggy_denom = ibc/2D805BFDFB164DE4CE69514BF2CD203C07BF79DF52EF1971763DCBD325917CC5 +decimals = 8 + +[allETH] +peggy_denom = ibc/1638ABB0A4233B36CC9EBBD43775D17DB9A86190E826580963A0B59A621BD7FD +decimals = 18 + +[allSOL] +peggy_denom = ibc/FA2D0C9110C1DFBAEF084C161D1A0EFC6270C64B446FDEC686C30FCF99FE22CA +decimals = 9 + +[allUSDT] +peggy_denom = ibc/7991930BA02EBF3893A7E244233E005C2CB14679898D8C9E680DA5F7D54E647D +decimals = 6 + +[ampGASH] +peggy_denom = ibc/B52F9774CA89A45FFB924CEE4D1E586013E33628A3784F3CCF10C8CE26A89E7F +decimals = 6 + +[ampINJ] +peggy_denom = factory/inj1cdwt8g7nxgtg2k4fn8sj363mh9ahkw2qt0vrnc/ampINJ +decimals = 6 + +[ampKUJI] +peggy_denom = ibc/34E48C7C43383203519D996D1D93FE80ED50153E28FB6A9465DE463AEF2EC9EC +decimals = 6 + +[ampLUNA] +peggy_denom = ibc/751CCECAF75D686B1DC8708BE62F8C7411B211750E6009C6AC4C93881F0543E8 +decimals = 6 + +[ampMNTA] +peggy_denom = ibc/A87178EAA371050DDFD80F78630AE622B176C7634160EE515C27CE62FCC8A0CC +decimals = 6 + +[ampOSMO] +peggy_denom = ibc/012D069D557C4DD59A670AA17E809CB7A790D778E364D0BC0A3248105DA6432D +decimals = 6 + +[ampROAR] +peggy_denom = ibc/7BE54594EAE77464217B9BB5171035946ED23DB309B030B5708E15C9455BB557 +decimals = 6 + +[ampSEI] +peggy_denom = ibc/6293B8AAE79F71B7DA3E8DEE00BEE0740D6D8495DB9BAED2342949B0A90152A5 +decimals = 6 + +[ampWHALE] +peggy_denom = ibc/168C3904C45C6FE3539AE85A8892DF87371D00EA7942515AFC50AA43C4BB0A32 +decimals = 6 + +[ampWHALEt] +peggy_denom = ibc/DF3225D7381562B58AA8BE107A87260DDDC7FA08E4B0898E3D795392CF844BBE +decimals = 6 + +[anon] +peggy_denom = factory/inj15n8jl0dcepjfy3nhsa3gm734rjx5x2ff3y9f2s/anon +decimals = 6 + +[ape] +peggy_denom = factory/inj1rhaefktcnhe3y73e82x4edcsn9h5y99gwmud6v/ape +decimals = 6 + +[aplanq] +peggy_denom = ibc/ABC34F1F9C95DAB3AD3DAFD5228FAB5CDEA67B6BD126BC545D6D25B15E57F527 +decimals = 0 + +[ashLAB] +peggy_denom = ibc/D3D5FB034E9CAA6922BB9D7D52D909116B7FFF7BD73299F686C972643B4767B9 +decimals = 6 + +[ashLUNA] +peggy_denom = ibc/19C3905E752163B6EEB903A611E0832CCD05A32007E98C018759905025619D8F +decimals = 6 + +[ashSYN] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/syn.ash +decimals = 6 + +[avalanche.USDC.wh] +peggy_denom = ibc/348633370BE07A623D7FC9CD229150936ADCD3A4E842DAD246BBA817D21FF6C7 +decimals = 6 + +[axlETH] +peggy_denom = ibc/34EF5DA5B1CFB23FA25F1D486C89AFC9E5CC5727C224975438583C444E88F039 +decimals = 18 + +[axlFIL] +peggy_denom = ibc/9D1889339AEC850B1D719CCF19BD813955C086BE1ED323ED68318A273922E40D +decimals = 18 + +[axlUSDC] +peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 +decimals = 6 + +[axlWBTC] +peggy_denom = ibc/F57B53E102171E6DC254532ECC184228BB8E23B755AD55FA6FDCBD70464A9A54 +decimals = 6 + +[bCRE] +peggy_denom = ibc/83D54420DD46764F2ED5EE511DAA63EC28012480A245D8E33AA1F7D1FB15D736 +decimals = 6 + +[bINJ] +peggy_denom = factory/inj1dxp690rd86xltejgfq2fa7f2nxtgmm5cer3hvu/bINJ +decimals = 18 + +[bKUJI] +peggy_denom = ibc/5C48695BF3A6BCC5DD147CC1A2D09DC1A30683FE369BF472704A52CF9D59B42D +decimals = 6 + +[bLUNA] +peggy_denom = ibc/C9D55B62C9D9CA84DD94DC019009B840DDFD861BF2F33F7CF2A8A74933797680 +decimals = 6 + +[bNEO] +peggy_denom = ibc/48F6A028444987BB26299A074A5C32DC1679A050D5563AC10FF81EED9E22D8B8 +decimals = 8 + +[bOSMO] +peggy_denom = ibc/C949BEFD9026997A65D0125340B096AA809941B3BB13D6C2D1E8E4A17F2130C4 +decimals = 6 + +[bWHALE] +peggy_denom = ibc/ECB0AA28D6001EF985047558C410B65581FC85BD92D4E3CFCCA0D3D964C67CC2 +decimals = 6 + +[baby INJ] +peggy_denom = inj1j0l9t4n748k2zy8zm7yfwjlpkf069d2jslfh3d +decimals = 18 + +[babyBENANCE] +peggy_denom = inj1rfv2lhr0qshztmk86f05vdmx2sft9zs6cc2ltj +decimals = 6 + +[babyCLON] +peggy_denom = inj1pyghkw9q0kx8mnuhcxpqnczfxst0way2ep9s54 +decimals = 6 + +[babyCOKE] +peggy_denom = inj14mu7fw0hzxvz3dl9y628xva2xuvngmz4zrwllz +decimals = 6 + +[babyDIB] +peggy_denom = inj1tquat4mh95g33q5rhg5c72yh6j6x5w3p6ynuqg +decimals = 18 + +[babyDOJO] +peggy_denom = inj10ny97fhd827s3u4slfwehu7m5swnpnmwzxsc40 +decimals = 6 + +[babyDRAGON] +peggy_denom = inj1lfemyjlce83a7wre4k5kzd8zyytqavran5ckkv +decimals = 18 + +[babyDRUGS] +peggy_denom = inj1nqcrsh0fs60k06mkc2ptxa9l4g9ktu4jct8z2w +decimals = 6 + +[babyDrugs] +peggy_denom = inj1457z9m26aqvga58demjz87uyt6su7hyf65aqvr +decimals = 6 + +[babyGINGER] +peggy_denom = inj1y4dk7ey2vrd4sqems8hnzh2ays8swealvfzdmg +decimals = 6 + +[babyINJUSSY] +peggy_denom = factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/babyINJUSSY +decimals = 6 + +[babyJUNIORES] +peggy_denom = inj1m4k5fcjz86dyz25pgagj50jcydh9llvpw8lxyj +decimals = 18 + +[babyKAGE] +peggy_denom = inj12gh464eqc4su4qd3frxxlyjymf0nhzgzm9a203 +decimals = 6 + +[babyKANGAROO] +peggy_denom = inj12s9a6vnmgyf8vx448cmt2hzmhhfuptw8agn2xs +decimals = 6 + +[babyKOALA] +peggy_denom = inj19lm6nrfvam539ahr0c8nuapfh6xzlhjaxv2a39 +decimals = 6 + +[babyMONKS] +peggy_denom = inj17udts7hdggcurc8892tmd7y56w5dkxsgv2v6eu +decimals = 18 + +[babyNINJA] +peggy_denom = inj1n8883sfdp3cufstk05sd8dkp7pcdxr3m2fp24m +decimals = 6 + +[babyNONJA] +peggy_denom = inj15hxdpukklz4c4f3l20rl50h9wqa7rams74gyah +decimals = 18 + +[babyPANDA] +peggy_denom = inj1lpu8rcw04zenfwkxdld2dm2pd70g7yv6hz7dnf +decimals = 18 + +[babyPING] +peggy_denom = inj17fa3gt6lvwj4kguyulkqrc0lcmxcgcqr7xddr0 +decimals = 18 + +[babySAMURAI] +peggy_denom = inj1arnd0xnxzg4qgxn4kupnzsra2a0rzrspwpwmrs +decimals = 6 + +[babySHEROOM] +peggy_denom = inj1cmw4kwqkhwzx6ha7d5e0fu9zj7aknn4mxqqtf0 +decimals = 6 + +[babySHROOM] +peggy_denom = inj14zxwefzz5p3l4mltlzgmfwh2jkgjqum256qhna +decimals = 6 + +[babySMELLY] +peggy_denom = inj16hl3nlwlg2va07y4zh09vzh9xtxy6uwpmy0f5l +decimals = 6 + +[babySPUUN] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/babyspuun +decimals = 6 + +[babyYAKUZA] +peggy_denom = inj1rep4p2x86avty00qvgcu4vfhywmsznf42jdpzs +decimals = 6 + +[babyYKZ] +peggy_denom = inj16wa97auct633ft6cjzr22xv2pxvym3k38rzskc +decimals = 18 + +[babyYODA] +peggy_denom = factory/inj1qpv9su9nkkka5djeqjtt5puwn6lw90eh0yfy0f/babyYODA +decimals = 6 + +[babyshroomin] +peggy_denom = inj1qgcfkznvtw96h950wraae20em9zmhtcm0rws68 +decimals = 18 + +[bapc] +peggy_denom = inj13j4ymx9kz3cdasg0e00tsc8ruq03j6q8fftcll +decimals = 18 + +[beef] +peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/beef +decimals = 6 + +[bellboy] +peggy_denom = inj1ywvmwtpe253qhtrnvratjqmhy4aar4yl5an9dk +decimals = 6 + +[bobmarley] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/bobmarley +decimals = 6 + +[bobo] +peggy_denom = factory/inj1ne49gse9uxujj3fjdc0evxez4yeq9k2larmuxu/bobo +decimals = 18 + +[boden] +peggy_denom = factory/inj1c0f9ze9wh2xket0zs6wy59v66alwratsdx648k/boden +decimals = 6 + +[boneWHALEt] +peggy_denom = ibc/F993B2C44A70D8B97B09581F12CF1A68A38DF8BBCFBA9F82016984138C718A57 +decimals = 6 + +[bonja the bad ninja] +peggy_denom = inj155fauc0h355fk5t9qa2x2uzq7vlt26sv0u08fp +decimals = 18 + +[bonkinu] +peggy_denom = factory/inj1936pplnstvecjgttz9eug83x2cs7xs2emdad4z/bonkinu +decimals = 6 + +[bonkmas] +peggy_denom = factory/inj17a0fp4rguzgf9mwz90y2chc3lr445nujdwc063/bonkmas +decimals = 6 + +[bozo] +peggy_denom = inj14r42t23gx9yredm37q3wjw3vx0q6du85vuugdr +decimals = 18 + +[brian] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/brian +decimals = 6 + +[burn] +peggy_denom = inj1p6h58futtvzw5gdjs30fqv4l9ljq8aepk3e0k5 +decimals = 18 + +[candy] +peggy_denom = inj1wyagfdn65kp5a2x03g9n5fllr02h4nyy5aunjy +decimals = 18 + +[cartel] +peggy_denom = ibc/FDD71937DFA4E18BBF16734EB0AD0EFA9F7F1B0F21D13FAF63F0B4F3EA7DEF28 +decimals = 6 + +[cat] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cat +decimals = 6 + +[cbETH] +peggy_denom = ibc/545E97C6EFB2633645720DEBCA78B2BE6F5382C4693EA7DEB2D4C456371EA4F0 +decimals = 18 + +[ccsl] +peggy_denom = inj1mpande8tekavagemc998amgkqr5yte0qdvaaah +decimals = 18 + +[cdj] +peggy_denom = inj1qwx2gx7ydumz2wt43phzkrqsauqghvct48pplw +decimals = 18 + +[chad] +peggy_denom = factory/inj182lgxnfnztjalxqxcjn7jal27w7xg28aeygwd9/chad +decimals = 6 + +[coke] +peggy_denom = factory/inj1cdlqynzr2ktn54l3azhlulzkyksuw8yj3mfadx/coke +decimals = 6 + +[cook] +peggy_denom = factory/inj1cadquzdmqe04hyjfyag3d9me9vxh9t6py383sy/cook +decimals = 6 + +[cookie] +peggy_denom = factory/inj1cadquzdmqe04hyjfyag3d9me9vxh9t6py383sy/cookie +decimals = 6 + +[crypto] +peggy_denom = inj19w5ntlx023v9rnecjuy7yem7s5lrg5gxlfrxfj +decimals = 18 + +[cw20:terra1nsuqsk6kh58ulczatwev87ttq2z6r3pusulg9r24mfj2fvtzd4uq3exn26] +peggy_denom = ibc/1966FE142949F3878ED8438FBDDE8620F4E0584D6605D2201E53388CF4CEAF41 +decimals = 0 + +[dINJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 +decimals = 18 + +[dYdX] +peggy_denom = peggy0x92D6C1e31e14520e676a687F0a93788B716BEff5 +decimals = 18 + +[dab] +peggy_denom = inj1a93l8989wmjupyq4ftnu06836n2jjn7hjee68d +decimals = 18 + +[dada] +peggy_denom = inj1yqwjse85pqmum5pkyxz9x4aqdz8etwhervtv66 +decimals = 18 + +[dalton] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/dalton +decimals = 6 + +[devUSDC] +peggy_denom = inj13mpkggs6t62kzt6pjd6guqfy6naljpp2jd3eue +decimals = 8 + +[dmo] +peggy_denom = inj10uwj0vx6d42p67z8jl75eh4tgxrgm3mp4mqwq3 +decimals = 18 + +[dmoone] +peggy_denom = inj12qlppehc4fsfduv46gmtgu5n38ngl6annnr4r4 +decimals = 18 + +[dmotree] +peggy_denom = inj15x7u49kw47krzlhrrj9mr5gq20d3797kv3fh3y +decimals = 18 + +[dmotwo] +peggy_denom = inj1tegs6sre80hhvyj204x5pu52e5p3p9pl9vy4ue +decimals = 18 + +[dogwifhat] +peggy_denom = inj1802ascnwzdhvv84url475eyx26ptuc6jc590nl +decimals = 8 + +[dogwifshoess] +peggy_denom = factory/inj10edtfelcttj3s98f755ntfplt0da5xv4z8z0lf/dogwifshoess +decimals = 6 + +[dojo] +peggy_denom = inj1p0ccaveldsv7hq4s53378und5ke9jz24rtsr9z +decimals = 18 + +[dojodoge] +peggy_denom = inj1nueaw6mc7t7703t65f7xamj63zwaew3dqx90sn +decimals = 18 + +[dojodojo] +peggy_denom = inj1ht0qh7csdl3txk6htnalf8qpz26xzuq78x7h87 +decimals = 18 + +[dojoinu] +peggy_denom = inj14hszr5wnhshu4zre6e4l5ae2el9v2420eypu6k +decimals = 18 + +[dojoswap] +peggy_denom = inj1tml6e474rxgc0gc5pd8ljmheqep5wrqrm9m9ks +decimals = 6 + +[done] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/done +decimals = 6 + +[dontbuy] +peggy_denom = factory/inj1vg2vj46d3cy54l63qkjprtcnel2svkjhgwkfhy/dontbuy +decimals = 10 + +[dsINJ] +peggy_denom = inj1nfsxxz3q59f0yyqsjjnr7ze020klxyfefy6wcg +decimals = 6 + +[dtwo] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/dtwo +decimals = 12 + +[enuk] +peggy_denom = inj1x0km562rxugpvxq8nucy7pdmefguv6xxumng27 +decimals = 18 + +[erc20/0x655ecB57432CC1370f65e5dc2309588b71b473A9] +peggy_denom = ibc/9A7A2B6433CFA1CA5D93AF75D568D614456EA4FEBC39F0BE1BE9ECBD420FB36F +decimals = 0 + +[erc20/tether/usdt] +peggy_denom = ibc/9D592A0F3E812505C6B3F7860458B7AC4DBDECACC04A2602FC13ED0AB6C762B6 +decimals = 0 + +[estamina] +peggy_denom = inj1sklu3me2d8e2e0k6eu83t4pzcnleczal7d2zra +decimals = 18 + +[estate] +peggy_denom = inj16mx8h5updpwkslymehlm0wq84sckaytru0apvx +decimals = 18 + +[ezETH] +peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 +decimals = 18 + +[fUSDT] +peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 +decimals = 8 + +[factory/chihuahua1x4q2vkrz4dfgd9hcw0p5m2f2nuv2uqmt9xr8k2/achihuahuawifhat] +peggy_denom = ibc/F8AB96FFB2BF8F69AA42481D43B24E9121FF7403A4E95673D9135128CA769577 +decimals = 0 + +[factory/inj102jhts2dfqh80nygmzx8hzxl9nm282vnstf5w6/position] +peggy_denom = factory/inj102jhts2dfqh80nygmzx8hzxl9nm282vnstf5w6/position +decimals = 0 + +[factory/inj1043hsv3ug5z9updx32a0a3rae87w6fzlzhcjm4/INJ] +peggy_denom = factory/inj1043hsv3ug5z9updx32a0a3rae87w6fzlzhcjm4/INJ +decimals = 6 + +[factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL] +peggy_denom = factory/inj105ujajd95znwjvcy3hwcz80pgy8tc6v77spur0/LILKRYSTAL +decimals = 6 + +[factory/inj106etgay573e32ksysc9dpdrynxhk7kkmaclhfc/stark] +peggy_denom = ibc/81B0CF8BB06F95247E3680844D0CB3889ACB2662B3AE2458C2370985BF4BD00B +decimals = 0 + +[factory/inj107grqcr0ugrx8jt8rdyru2ywmfngz5lrermw8q/INJ] +peggy_denom = factory/inj107grqcr0ugrx8jt8rdyru2ywmfngz5lrermw8q/INJ +decimals = 6 + +[factory/inj107zjs4j5p92pl78kwfulh8ea7nqhlq8fj6s6fr/INJ] +peggy_denom = factory/inj107zjs4j5p92pl78kwfulh8ea7nqhlq8fj6s6fr/INJ +decimals = 6 + +[factory/inj10cplvlvpnkd9ch5cfw7gn9ed9vhlkzg0y73w8y/INJ] +peggy_denom = factory/inj10cplvlvpnkd9ch5cfw7gn9ed9vhlkzg0y73w8y/INJ +decimals = 6 + +[factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/ROAR] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/ROAR +decimals = 0 + +[factory/inj10t3rc9u6hpvwm3kq8fx648z5elv2use4mtc8cv/INJ] +peggy_denom = factory/inj10t3rc9u6hpvwm3kq8fx648z5elv2use4mtc8cv/INJ +decimals = 6 + +[factory/inj10w0glw8d30weulv3pu6r7mx6vmflxyck27fqkd/INJ] +peggy_denom = factory/inj10w0glw8d30weulv3pu6r7mx6vmflxyck27fqkd/INJ +decimals = 6 + +[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK] +peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/BLACK +decimals = 6 + +[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/EA] +peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/EA +decimals = 0 + +[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG] +peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/PUG +decimals = 6 + +[factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS] +peggy_denom = factory/inj1238tn4srtzzplhgtd7fdrzdrf77hf9fye6q2xa/TALIS +decimals = 6 + +[factory/inj1255swku4m04m533wmkmtmvhnh77zrk83dqgwfr/position] +peggy_denom = factory/inj1255swku4m04m533wmkmtmvhnh77zrk83dqgwfr/position +decimals = 0 + +[factory/inj125anxwhzcsqksvthce0xhktqhn4x406vfgxasx/INJ] +peggy_denom = factory/inj125anxwhzcsqksvthce0xhktqhn4x406vfgxasx/INJ +decimals = 6 + +[factory/inj12dgml8gwd2v88yn0kfcs6mtkmvlu32llekfzzv/position] +peggy_denom = factory/inj12dgml8gwd2v88yn0kfcs6mtkmvlu32llekfzzv/position +decimals = 0 + +[factory/inj12vhmdjtvyxzr0vmg5znxvhw7dsakjuj7adz5a4/INJ] +peggy_denom = factory/inj12vhmdjtvyxzr0vmg5znxvhw7dsakjuj7adz5a4/INJ +decimals = 6 + +[factory/inj12wkmu2y4vp0hg69k36pkve6rgczwga0yzff7ha/position] +peggy_denom = factory/inj12wkmu2y4vp0hg69k36pkve6rgczwga0yzff7ha/position +decimals = 0 + +[factory/inj12ytu4vvxmsclxuqm9w0g2jazllvztlvdxjdvvg/INJ] +peggy_denom = factory/inj12ytu4vvxmsclxuqm9w0g2jazllvztlvdxjdvvg/INJ +decimals = 6 + +[factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ] +peggy_denom = factory/inj133np9gr58athpjgv3d9cuzmaed84gnm95sp97h/LowQ +decimals = 6 + +[factory/inj138fs6ctxd0vwsn7xmw0v29a2jxe3s7uhgn405w/position] +peggy_denom = factory/inj138fs6ctxd0vwsn7xmw0v29a2jxe3s7uhgn405w/position +decimals = 0 + +[factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON] +peggy_denom = factory/inj13gc95nsrtv3da5x6ujmktekaljwhj5npl2nszl/ELON +decimals = 6 + +[factory/inj13jjz8nlt7wjpt5m2semml2ytdjkfrltnjtphsv/position] +peggy_denom = factory/inj13jjz8nlt7wjpt5m2semml2ytdjkfrltnjtphsv/position +decimals = 0 + +[factory/inj13qr6jk3y20ulaj3mvjzn2rnxx9y8d8nl7ahxpg/position] +peggy_denom = factory/inj13qr6jk3y20ulaj3mvjzn2rnxx9y8d8nl7ahxpg/position +decimals = 0 + +[factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA] +peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/BABYKIRA +decimals = 6 + +[factory/inj13xdqhnegnj37fna95nyjtj68cyk4exut9mp9am/position] +peggy_denom = factory/inj13xdqhnegnj37fna95nyjtj68cyk4exut9mp9am/position +decimals = 0 + +[factory/inj13xwndajdxqz2jjg05caycedjdj099vy2mzdha2/INJ] +peggy_denom = factory/inj13xwndajdxqz2jjg05caycedjdj099vy2mzdha2/INJ +decimals = 6 + +[factory/inj140z6rk5x40rn842c648yvgl9zp7q206gyvj3w4/INJ] +peggy_denom = factory/inj140z6rk5x40rn842c648yvgl9zp7q206gyvj3w4/INJ +decimals = 6 + +[factory/inj144javr53kzz7qedyynwrpa83tnykw9lrzzxsr9/position] +peggy_denom = factory/inj144javr53kzz7qedyynwrpa83tnykw9lrzzxsr9/position +decimals = 0 + +[factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY] +peggy_denom = factory/inj1499ez5npathr0zkphz2yq6npdfc6xvg3d4zynj/ISILLY +decimals = 6 + +[factory/inj14czx0fv80fnkfxtj9zn9wg7thdca8ynlu6vrg8/INJ] +peggy_denom = factory/inj14czx0fv80fnkfxtj9zn9wg7thdca8ynlu6vrg8/INJ +decimals = 6 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj100cpphf3gjq4xwzaun8dm22h6zk6tjlzl57uhe] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj100cpphf3gjq4xwzaun8dm22h6zk6tjlzl57uhe +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj109hqm6wdaq2f6nlvrf46f4gj7rwl55nmhmcslp] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj109hqm6wdaq2f6nlvrf46f4gj7rwl55nmhmcslp +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10dctm5qkm722pgazwq0wy9lxnzh8mlnnv9mr65] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10dctm5qkm722pgazwq0wy9lxnzh8mlnnv9mr65 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10hyl7t5zxrs83thk33yk90lue34lttf9wuccf8] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10hyl7t5zxrs83thk33yk90lue34lttf9wuccf8 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10nfzrxq5jl9v3ymyuna49jhhxe3x4yd2sxxs8p] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10nfzrxq5jl9v3ymyuna49jhhxe3x4yd2sxxs8p +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10x6rq57rhc7ekce0jgzcjl3ywplcjh66ufqanv] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj10x6rq57rhc7ekce0jgzcjl3ywplcjh66ufqanv +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12sl2vnrja04juaan5rt3pn4h3lwa6d9348yh6h] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj12sl2vnrja04juaan5rt3pn4h3lwa6d9348yh6h +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13844sjp45gta5hshs0avptawnptz23gfdjy8eg] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13844sjp45gta5hshs0avptawnptz23gfdjy8eg +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13j6rdjsakqt6ymv48ytfkr563k7h9mc9h9lh5s] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13j6rdjsakqt6ymv48ytfkr563k7h9mc9h9lh5s +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13qqk8lgn6x68r34c9w938vxwmxm5pl72kzjufq] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13qqk8lgn6x68r34c9w938vxwmxm5pl72kzjufq +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13tqf9a4tssf8gsqejecp90a03nvfpa2h29sc6y] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13tqf9a4tssf8gsqejecp90a03nvfpa2h29sc6y +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13w3fqm6zn068slf6mh4jvf7lxva4qdchrlws9u] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13w3fqm6zn068slf6mh4jvf7lxva4qdchrlws9u +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj147ymh390v733ty3l0t7yv0w3vllnky5vr78xeh] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj147ymh390v733ty3l0t7yv0w3vllnky5vr78xeh +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1494q6d3un6rpew6znydq0a0l5edw80gptj3p27] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1494q6d3un6rpew6znydq0a0l5edw80gptj3p27 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14fjgyt69ayhlz9gtgrutqdqyaf50wfxs7xx89e] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14fjgyt69ayhlz9gtgrutqdqyaf50wfxs7xx89e +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14n26cr7dj79smrgg44hfylhph9y45h4yx5gvzm] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14n26cr7dj79smrgg44hfylhph9y45h4yx5gvzm +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14r3dv360jptv4wugpcca4h5ychltfn8j738l6k] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14r3dv360jptv4wugpcca4h5ychltfn8j738l6k +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14txwtn7rkt999kek39qlxwcm2fwfqzpfyrxcvq] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj14txwtn7rkt999kek39qlxwcm2fwfqzpfyrxcvq +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1557zqvn2lwg3lvl3cfk3kurd6d2gq9klypg83g] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1557zqvn2lwg3lvl3cfk3kurd6d2gq9klypg83g +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15f3xcpv3m9wgycmgc62gn3av9k7a9lydnkcrdr] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15f3xcpv3m9wgycmgc62gn3av9k7a9lydnkcrdr +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15hgev8qm20mhttw6xrjts37puqm068dfupj5m2] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15hgev8qm20mhttw6xrjts37puqm068dfupj5m2 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15xk5d4d3we8z9s9avcqfns2xsrqq9u5mgaw6q6] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj15xk5d4d3we8z9s9avcqfns2xsrqq9u5mgaw6q6 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1623vfn9glj9wtd34yv3ck5z3adp673ad2ssuh2] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1623vfn9glj9wtd34yv3ck5z3adp673ad2ssuh2 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj164j450vfh7chdsxdqna3925sdqg9xry38fxf4w] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj164j450vfh7chdsxdqna3925sdqg9xry38fxf4w +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16eggztyy9ul8hfkckwgjvj43naefhazt04ruzl] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16eggztyy9ul8hfkckwgjvj43naefhazt04ruzl +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj174whv2m9y92vawm0rnte3czu3g4anr56eacqpc] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj174whv2m9y92vawm0rnte3czu3g4anr56eacqpc +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17e3zurs95u5rqp7amj4hz9sk43hu5n6f06n5g8] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17e3zurs95u5rqp7amj4hz9sk43hu5n6f06n5g8 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17g3sn33ld59n2uyevp833u4pwynvfw7chfcxq6] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17g3sn33ld59n2uyevp833u4pwynvfw7chfcxq6 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17gvlu9v8h0kk06aqf66u9zk235824ksknugpqm] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17gvlu9v8h0kk06aqf66u9zk235824ksknugpqm +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17m8xuqntg5sc3m78jzajte5r4my4erwhujq3uh] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17m8xuqntg5sc3m78jzajte5r4my4erwhujq3uh +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pda96ujt7fzr3d5jmfkh4dzvrqzc0nk56kt34] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj17pda96ujt7fzr3d5jmfkh4dzvrqzc0nk56kt34 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj180zwmntk4yw8mp90qzedvgg63lc8g9ju4f79pn] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj180zwmntk4yw8mp90qzedvgg63lc8g9ju4f79pn +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj185gqewrlde8vrqw7j8lpad67v8jfrx9u28w38t] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj185gqewrlde8vrqw7j8lpad67v8jfrx9u28w38t +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj188yjwj0gpnd39ysgas0f95pngdacwma2jmm8ne] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj188yjwj0gpnd39ysgas0f95pngdacwma2jmm8ne +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18cd8sht8pksj07z8k36rwytn6gyg3kku8x6xgq] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18cd8sht8pksj07z8k36rwytn6gyg3kku8x6xgq +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18dc3m7xtxa6wx0auycyfrq239atvzwe9g2s0nt] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18dc3m7xtxa6wx0auycyfrq239atvzwe9g2s0nt +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18ms5jl7dtdjzsj0gwceqnc46apdfym7xpjqyes] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18ms5jl7dtdjzsj0gwceqnc46apdfym7xpjqyes +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18x46txl47l8gtcrl05a7xynhjx6w0xgtmnng7s] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18x46txl47l8gtcrl05a7xynhjx6w0xgtmnng7s +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19f6ww9peaa3tjhjynjcsxms9v4mcpqrpdxz76l] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19f6ww9peaa3tjhjynjcsxms9v4mcpqrpdxz76l +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19t6urf7j7t85xa8yf5h85323j5zmvpg030dr6w] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj19t6urf7j7t85xa8yf5h85323j5zmvpg030dr6w +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a36gng2z5p7m3ecx528zx09eclg5hsmnhrjaun] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a36gng2z5p7m3ecx528zx09eclg5hsmnhrjaun +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a52nehymq2m779j7zy6ra4eus70y6dnahfs4a5] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a52nehymq2m779j7zy6ra4eus70y6dnahfs4a5 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a7wd7ks949wxzcw69n6md60c0qhykk93w0r8g6] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a7wd7ks949wxzcw69n6md60c0qhykk93w0r8g6 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a8mlar2l3r25uaxdgk0zxyapq7h0435264h8jk] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1a8mlar2l3r25uaxdgk0zxyapq7h0435264h8jk +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1c43k77927yryd8wkzupnppen83alqkm5myt6we] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1c43k77927yryd8wkzupnppen83alqkm5myt6we +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ceq66p5aahn6txg5fvyg4mhy2vfq00cuk75y9r] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ceq66p5aahn6txg5fvyg4mhy2vfq00cuk75y9r +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ch7unkwz0v99ynz98v5p0xae4gg0yxnjw6meg7] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ch7unkwz0v99ynz98v5p0xae4gg0yxnjw6meg7 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1clr2v2jwx8umtd4t3ent5la6q2ngsureenjqtg] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1clr2v2jwx8umtd4t3ent5la6q2ngsureenjqtg +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ctr4vujpjvmqxxkqym9zgm76p4uf0hyklvdp25] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ctr4vujpjvmqxxkqym9zgm76p4uf0hyklvdp25 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cv6d835mxs5wsahaf6dp6pqs4h453s3lpk5wxd] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cv6d835mxs5wsahaf6dp6pqs4h453s3lpk5wxd +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d3rkrv8f4xm4zv5rcdkydy36xzdksq94ewy5md] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d3rkrv8f4xm4zv5rcdkydy36xzdksq94ewy5md +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d4vlrslnwxn3zpq64e8z7ap04c5svu5s83f2k5] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d4vlrslnwxn3zpq64e8z7ap04c5svu5s83f2k5 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d62ry5fwsafggxu67fwhavpu3954vf5n8e5pmt] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1d62ry5fwsafggxu67fwhavpu3954vf5n8e5pmt +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dsd2d4ac60gs2sc34nmwu6x9q2h5cvdr0vz4du] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dsd2d4ac60gs2sc34nmwu6x9q2h5cvdr0vz4du +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dtpqn48watxrezj6gg630x0xzxw4jm70mqxgpt] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1dtpqn48watxrezj6gg630x0xzxw4jm70mqxgpt +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e4r4gcx3z4f2cey2wyy27zcnr8tvjs0zrdvtvs] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e4r4gcx3z4f2cey2wyy27zcnr8tvjs0zrdvtvs +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e7zmlmkexknfseutx2anr0mhkry8mwg000xm0r] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1e7zmlmkexknfseutx2anr0mhkry8mwg000xm0r +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1elhv36r9nkw0praytqqgjpxgyd8lte7r4msp5y] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1elhv36r9nkw0praytqqgjpxgyd8lte7r4msp5y +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1esca7pkwcptl7xcwfntnye9lgmqj7exnh4waqw] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1esca7pkwcptl7xcwfntnye9lgmqj7exnh4waqw +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ete5curf5mjtznmtzu5xxyrvyxclgsscxd9qk9] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ete5curf5mjtznmtzu5xxyrvyxclgsscxd9qk9 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1eux0764t05hmmyfksjmwhahq9kh3yq4stcg0rs] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1eux0764t05hmmyfksjmwhahq9kh3yq4stcg0rs +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f8nq8vvlhms85ywsnp9vnkua3jszqjfd6ts4qq] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f8nq8vvlhms85ywsnp9vnkua3jszqjfd6ts4qq +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fz2tp874h856zuhtujjz3a65c0x6fh742lwdv9] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1fz2tp874h856zuhtujjz3a65c0x6fh742lwdv9 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1gzcx85m49u6y8a9dwx6eddfw8d9r4xtzzna83y] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1gzcx85m49u6y8a9dwx6eddfw8d9r4xtzzna83y +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1h5f6vxsn5hpln75c4mfmntza9m7maj6s396u4w] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1h5f6vxsn5hpln75c4mfmntza9m7maj6s396u4w +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hawmarr2vaswduu09xvkcqjqm79d5zp8zku95r] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hawmarr2vaswduu09xvkcqjqm79d5zp8zku95r +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hqp8mnaa0m9zj77y9qqrv33v3k8w2jx3xjahm2] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hqp8mnaa0m9zj77y9qqrv33v3k8w2jx3xjahm2 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hxq5q8h7d8up6j4jcmxje42zpkzr409j6ay4wu] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hxq5q8h7d8up6j4jcmxje42zpkzr409j6ay4wu +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hza9v3f32kt8vjx24twpj46c5gx52uhylj5qzm] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1hza9v3f32kt8vjx24twpj46c5gx52uhylj5qzm +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1j62tv3rr6ypyfft09q2uvgnplvdy5h7knas83w] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1j62tv3rr6ypyfft09q2uvgnplvdy5h7knas83w +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1jm4q2da9xutly7uslzce3ftgjr0xunvj6ek5ve] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1jm4q2da9xutly7uslzce3ftgjr0xunvj6ek5ve +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kvlz7j3meau8uy5upr95p2kn0j275jck9vjh4j] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1kvlz7j3meau8uy5upr95p2kn0j275jck9vjh4j +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln2tayrlh0vl73cdzxryhkuuppkycxpna5jm87] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln2tayrlh0vl73cdzxryhkuuppkycxpna5jm87 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln9zmpv8nruce89hrf6z0m5t8t93jswyrw89r9] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ln9zmpv8nruce89hrf6z0m5t8t93jswyrw89r9 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lp0lcf67tk4y8ccnmmggpj8c8wf3gkhtt439r8] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lp0lcf67tk4y8ccnmmggpj8c8wf3gkhtt439r8 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lpctts3ah545m8q0pnd696kwthdzgaxur70cm0] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lpctts3ah545m8q0pnd696kwthdzgaxur70cm0 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lt4tg3zxula8kgg4q73s02mqdnjnyu2mal4fv9] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1lt4tg3zxula8kgg4q73s02mqdnjnyu2mal4fv9 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m5czravjfjjmf6l0qujkvxtue373e4cff07d4n] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m5czravjfjjmf6l0qujkvxtue373e4cff07d4n +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m9chxsuw52eydkah423ue2e6w8pyj89zxlla6m] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1m9chxsuw52eydkah423ue2e6w8pyj89zxlla6m +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mgypkdu4esseefz7dgahuduft33a3any5lrx8a] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mgypkdu4esseefz7dgahuduft33a3any5lrx8a +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ms0ycmqsqnnd8zztvzrq0jts0cudfujjmzesw2] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ms0ycmqsqnnd8zztvzrq0jts0cudfujjmzesw2 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mve80zt9gyetq9e2qsjdz579qc9nnpxprkuqjt] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mve80zt9gyetq9e2qsjdz579qc9nnpxprkuqjt +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mw99k3jrxhzhktphtr55e9fhp2rncc2elh75js] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1mw99k3jrxhzhktphtr55e9fhp2rncc2elh75js +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n0cq8p8zd36ecq2tljtsg0uqkpxn830n5mk38j] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1n0cq8p8zd36ecq2tljtsg0uqkpxn830n5mk38j +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nemphsdeqekqr7j8ve8gz8jcz4z2lurzty9dw3] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nemphsdeqekqr7j8ve8gz8jcz4z2lurzty9dw3 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nkj7k722lduxvhs376qkl9lhjw0le0pwux57wp] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nkj7k722lduxvhs376qkl9lhjw0le0pwux57wp +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1np2ylwgqgyzwppx4k2lr8rkqq5vs8v5y84ghwp] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1np2ylwgqgyzwppx4k2lr8rkqq5vs8v5y84ghwp +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nssppa309t2pty5agwrmrjqx9md9764ntesce6] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1nssppa309t2pty5agwrmrjqx9md9764ntesce6 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pljwjmkngg7atyxwm8mpwwdayyqk0pfjz8d4j0] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pljwjmkngg7atyxwm8mpwwdayyqk0pfjz8d4j0 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ps7s09q5mldj3wghtcvpsflt0uvc9c0wllqvm0] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ps7s09q5mldj3wghtcvpsflt0uvc9c0wllqvm0 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pwqllsz0d7377v6gvx5vd3df9xurekpyrsscln] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1pwqllsz0d7377v6gvx5vd3df9xurekpyrsscln +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q37t59kug9hhjvht20uc8kheva0tfdjak4yys8] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q37t59kug9hhjvht20uc8kheva0tfdjak4yys8 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q62knrccf8n2386jzzv2plr6rat2lfvx95muqv] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1q62knrccf8n2386jzzv2plr6rat2lfvx95muqv +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qg8x9eec40aqjzezku7r2dpz0sz3962ljsk8ga] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qg8x9eec40aqjzezku7r2dpz0sz3962ljsk8ga +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qu0zyksruugw9az7e0m7wf9lmatacf5d2uznqw] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1qu0zyksruugw9az7e0m7wf9lmatacf5d2uznqw +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rl004yqz80hdkn5ctnqfxngv24cs2yc39zqaxt] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rl004yqz80hdkn5ctnqfxngv24cs2yc39zqaxt +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rm88t0crsdfkjpgs9k6tzupzf9qsv2az8u06a7] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rm88t0crsdfkjpgs9k6tzupzf9qsv2az8u06a7 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rn0hfpfcj09uq7r6l7tx2fhdwsufptv340w904] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rn0hfpfcj09uq7r6l7tx2fhdwsufptv340w904 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rnraxu54huv7wkmpff3v8mzhqh49g0e6fj67sd] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rnraxu54huv7wkmpff3v8mzhqh49g0e6fj67sd +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rx2yfurr3zh4nzv5gazh899dyc2v4lhx2fex3r] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1rx2yfurr3zh4nzv5gazh899dyc2v4lhx2fex3r +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ry55p3hcfwqd0r4d6hkd2hgldfamf63ehkem8a] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ry55p3hcfwqd0r4d6hkd2hgldfamf63ehkem8a +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s2rs23gg0mw6jr7s3rjhwsrssnnhn8vck24n2r] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s2rs23gg0mw6jr7s3rjhwsrssnnhn8vck24n2r +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s66zhks8v3fm24974crzxufh7w6ktt694g9t3j] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1s66zhks8v3fm24974crzxufh7w6ktt694g9t3j +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sn40ldl8ud3dalqk39mxp7t4unqaadnt9cg9a4] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sn40ldl8ud3dalqk39mxp7t4unqaadnt9cg9a4 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sqc9jap0yye84dx5uyqyvepg83p7hvqke5sjvk] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sqc9jap0yye84dx5uyqyvepg83p7hvqke5sjvk +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3] +peggy_denom = ibc/884A8507A762D0F1DE350C4E640ECA6EDD6F25617F39AD57BC6F5B7EC8DF7181 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ta03vxka8mpgem44xvhewekg89wxel8leyvugw] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ta03vxka8mpgem44xvhewekg89wxel8leyvugw +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ufx78kwvwpds77hxrmxkedsp6yhvflk5lz2a58] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1ufx78kwvwpds77hxrmxkedsp6yhvflk5lz2a58 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uhukgtdm0xyq35w34rxh73g3yhffxw4qg568sx] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uhukgtdm0xyq35w34rxh73g3yhffxw4qg568sx +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uq30shptkerand4zl6xr8ga2jt0mu0c6npak0a] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uq30shptkerand4zl6xr8ga2jt0mu0c6npak0a +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uu9dsss65z2dt6cz9avr2tk6wrdjxxe0cxh4d5] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1uu9dsss65z2dt6cz9avr2tk6wrdjxxe0cxh4d5 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v0dxtj5ku80w4h96jc0scyxlnk3j869dj2nnay] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v0dxtj5ku80w4h96jc0scyxlnk3j869dj2nnay +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v3z2nx0k9fjv83ktx4dtsau82ff2c68gxfqah9] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1v3z2nx0k9fjv83ktx4dtsau82ff2c68gxfqah9 +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vd8qv39y8ay7x0ldlhhnfcjc0k6ya69fvp2vzw] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vd8qv39y8ay7x0ldlhhnfcjc0k6ya69fvp2vzw +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vy9xhn2gmswm7xyt39wnnd8pz4w6e93zjzurdu] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1vy9xhn2gmswm7xyt39wnnd8pz4w6e93zjzurdu +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1w9z5t04v2jl6r85s8e0984f4v2drdpq8fnl6hs] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1w9z5t04v2jl6r85s8e0984f4v2drdpq8fnl6hs +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wea6emsvgrxnsg07wsf9kx5djn2r4fyqzsxcja] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wea6emsvgrxnsg07wsf9kx5djn2r4fyqzsxcja +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wyd57qlwdhfj4sepl4y2eedsn077gzgg95cgwh] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1wyd57qlwdhfj4sepl4y2eedsn077gzgg95cgwh +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1x9uecns088t3dw2map7q235nzvyfhtzqkgneux] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1x9uecns088t3dw2map7q235nzvyfhtzqkgneux +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xjvf8nzcx5uvjnmey6x7vx4xe08k95k7gx0fyl] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1xjvf8nzcx5uvjnmey6x7vx4xe08k95k7gx0fyl +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzjcwy4m2qyn3kvspgsxhdltxz5kw34n8x80xx] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzjcwy4m2qyn3kvspgsxhdltxz5kw34n8x80xx +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzm2tg8mv3ajgw4z4vnjynpanjqvezywcgjkzf] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1yzm2tg8mv3ajgw4z4vnjynpanjqvezywcgjkzf +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zcssxvw4x9zdqww2atu7at0n5ss2lv8gg8u6ul] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zcssxvw4x9zdqww2atu7at0n5ss2lv8gg8u6ul +decimals = 0 + +[factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zejzp0ne0hh7c0wupuspkcqwajlw6kww3r86jl] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1zejzp0ne0hh7c0wupuspkcqwajlw6kww3r86jl +decimals = 0 + +[factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI] +peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/SUSHI +decimals = 6 + +[factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI] +peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/UNI +decimals = 6 + +[factory/inj14fx6k6an38hmqz58nxzggxycmy7mpy9ju7mqxq/INJ] +peggy_denom = factory/inj14fx6k6an38hmqz58nxzggxycmy7mpy9ju7mqxq/INJ +decimals = 6 + +[factory/inj14r67lv9phdjs94x6zsd446ptw04cmkq2j4t6wm/position] +peggy_denom = factory/inj14r67lv9phdjs94x6zsd446ptw04cmkq2j4t6wm/position +decimals = 0 + +[factory/inj1532ekcsx3mqtmxx0s5uc32my0et9vazdkkfcna/INJ] +peggy_denom = factory/inj1532ekcsx3mqtmxx0s5uc32my0et9vazdkkfcna/INJ +decimals = 6 + +[factory/inj15446d66cyfqh97hp0x3n749mvq4kx0lnfvuwt5/INJ] +peggy_denom = factory/inj15446d66cyfqh97hp0x3n749mvq4kx0lnfvuwt5/INJ +decimals = 6 + +[factory/inj157g6qg542h735ww6kzk5jf7s2ayscgtcg7mvv3/position] +peggy_denom = factory/inj157g6qg542h735ww6kzk5jf7s2ayscgtcg7mvv3/position +decimals = 0 + +[factory/inj157l55k7pt6wlkmvs95kx96m2y30tgvxuld6zfc/INJ] +peggy_denom = factory/inj157l55k7pt6wlkmvs95kx96m2y30tgvxuld6zfc/INJ +decimals = 6 + +[factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke] +peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke +decimals = 6 + +[factory/inj158xvl6jgd6cgdetnxu4rus4vcv50u3q06wryjl/INJ] +peggy_denom = factory/inj158xvl6jgd6cgdetnxu4rus4vcv50u3q06wryjl/INJ +decimals = 6 + +[factory/inj1598f9vtwc3furg3dnat9lnjw5eflcyuazv2c3m/position] +peggy_denom = factory/inj1598f9vtwc3furg3dnat9lnjw5eflcyuazv2c3m/position +decimals = 0 + +[factory/inj15rddsgzhts4lyuk4a92aq7g4wemgf7r3u6w80p/INJ] +peggy_denom = factory/inj15rddsgzhts4lyuk4a92aq7g4wemgf7r3u6w80p/INJ +decimals = 6 + +[factory/inj15sqzlm42xks73nxez8tw8k6tp9xln7gfth2sv6/position] +peggy_denom = factory/inj15sqzlm42xks73nxez8tw8k6tp9xln7gfth2sv6/position +decimals = 0 + +[factory/inj15xxgscstfpaztar2hjluzphvq4m8jffjym8svh/lpinj1alqcad69f6y4zepfu3k8cx0ysynjemju4auc42] +peggy_denom = factory/inj15xxgscstfpaztar2hjluzphvq4m8jffjym8svh/lpinj1alqcad69f6y4zepfu3k8cx0ysynjemju4auc42 +decimals = 0 + +[factory/inj164shttz4dv6ec8m44gulucpej3pgl7tjqhdvyk/position] +peggy_denom = factory/inj164shttz4dv6ec8m44gulucpej3pgl7tjqhdvyk/position +decimals = 0 + +[factory/inj16936rlm3gm2z7gd8t677t926qz93hqy07qhh3z/position] +peggy_denom = factory/inj16936rlm3gm2z7gd8t677t926qz93hqy07qhh3z/position +decimals = 0 + +[factory/inj169rj69y0td97a0gvz3jthr63ml79h0ez2sc0rm/position] +peggy_denom = factory/inj169rj69y0td97a0gvz3jthr63ml79h0ez2sc0rm/position +decimals = 0 + +[factory/inj16hsmv4grd5ru3axtvgc8c0dygc0skpfct837dv/position] +peggy_denom = factory/inj16hsmv4grd5ru3axtvgc8c0dygc0skpfct837dv/position +decimals = 0 + +[factory/inj16tth6zcljja520fetw9u7plyza5e6sj0rta6ua/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc] +peggy_denom = factory/inj16tth6zcljja520fetw9u7plyza5e6sj0rta6ua/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 0 + +[factory/inj16xkr5efuae9ur5tftr5epxtse43falevltugdt/TEST] +peggy_denom = factory/inj16xkr5efuae9ur5tftr5epxtse43falevltugdt/TEST +decimals = 6 + +[factory/inj16zm5htn50fm4veztrazn2a6yjp2kjwnvthq8r8/PEPE] +peggy_denom = factory/inj16zm5htn50fm4veztrazn2a6yjp2kjwnvthq8r8/PEPE +decimals = 6 + +[factory/inj16zquths3dwk0varlj32ur9skutl640umvllxeu/position] +peggy_denom = factory/inj16zquths3dwk0varlj32ur9skutl640umvllxeu/position +decimals = 0 + +[factory/inj17g9jsj37jt0w77x4gfmt6rxf0r2zr307kky875/INJ] +peggy_denom = factory/inj17g9jsj37jt0w77x4gfmt6rxf0r2zr307kky875/INJ +decimals = 6 + +[factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/THUG] +peggy_denom = factory/inj17kqcwkgdayv585dr7mljclechqzymgfsqc8x9k/THUG +decimals = 6 + +[factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/SPUUN] +peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/SPUUN +decimals = 6 + +[factory/inj17vgy7dxx5j0a3xag8hg53e74ztjs50qrycj2pn/INJ] +peggy_denom = factory/inj17vgy7dxx5j0a3xag8hg53e74ztjs50qrycj2pn/INJ +decimals = 6 + +[factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura] +peggy_denom = factory/inj183fjyma33jsx0wndkmk69yukk3gpll7gunkyz6/sakurasakura +decimals = 6 + +[factory/inj18c9gq53gs52rmj6nevfg48v3xx222stnxgwpku/position] +peggy_denom = factory/inj18c9gq53gs52rmj6nevfg48v3xx222stnxgwpku/position +decimals = 0 + +[factory/inj18prwk9vqw82x86lx9d8kmymmzl9vzuznzye3l0/INJ] +peggy_denom = factory/inj18prwk9vqw82x86lx9d8kmymmzl9vzuznzye3l0/INJ +decimals = 6 + +[factory/inj19fa4pmpnxysawtps7aq7nhh7k2x8wvvqwxv7kl/position] +peggy_denom = factory/inj19fa4pmpnxysawtps7aq7nhh7k2x8wvvqwxv7kl/position +decimals = 0 + +[factory/inj19g8xh8wfaxl7a4z5pr67e908ph68n5zamsagxt/position] +peggy_denom = factory/inj19g8xh8wfaxl7a4z5pr67e908ph68n5zamsagxt/position +decimals = 0 + +[factory/inj19h8ypfpczenmslgvxk73kszedfd9h9ptn2a5ml/position] +peggy_denom = factory/inj19h8ypfpczenmslgvxk73kszedfd9h9ptn2a5ml/position +decimals = 0 + +[factory/inj19jeceymrrcvqty0mapdf7daa47gr33khpwpfnt/position] +peggy_denom = factory/inj19jeceymrrcvqty0mapdf7daa47gr33khpwpfnt/position +decimals = 0 + +[factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda] +peggy_denom = factory/inj19mznavp32fkmwzdyuute4al2lrjzvy6ym9em3h/babypanda +decimals = 6 + +[factory/inj19uyuzl6chkdp3ez8aua2marzqwuv3n23ynf2x0/position] +peggy_denom = factory/inj19uyuzl6chkdp3ez8aua2marzqwuv3n23ynf2x0/position +decimals = 0 + +[factory/inj19xq90yxtaar7xlz5jdzvqgkjw285rqzsjvxc2j/position] +peggy_denom = factory/inj19xq90yxtaar7xlz5jdzvqgkjw285rqzsjvxc2j/position +decimals = 0 + +[factory/inj19y42qwvf6s9aq6qqjk09qfe0f4n78e48cqe7w4/INJ] +peggy_denom = factory/inj19y42qwvf6s9aq6qqjk09qfe0f4n78e48cqe7w4/INJ +decimals = 6 + +[factory/inj19yyllwqvapt4hsn7cpcg540qt5c3fekxxhjppg/position] +peggy_denom = factory/inj19yyllwqvapt4hsn7cpcg540qt5c3fekxxhjppg/position +decimals = 0 + +[factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH] +peggy_denom = factory/inj1a0n3xm83w6d0gzheffkve30z8wpz6xq8zdf48r/ETH +decimals = 6 + +[factory/inj1a3lpj7yf5spw344pfa9gjcgwx3zyx5v9e6cpg2/INJ] +peggy_denom = factory/inj1a3lpj7yf5spw344pfa9gjcgwx3zyx5v9e6cpg2/INJ +decimals = 6 + +[factory/inj1a3m6hv5hmt4lxkw0uqqz7m3m7dgtd2uy4hmenp/position] +peggy_denom = factory/inj1a3m6hv5hmt4lxkw0uqqz7m3m7dgtd2uy4hmenp/position +decimals = 0 + +[factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL] +peggy_denom = factory/inj1a4hvejdwaf9gd9rltwftxf0fyz6mrzwmnauacp/SOL +decimals = 6 + +[factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/SYN] +peggy_denom = factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/SYN +decimals = 6 + +[factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/uabc] +peggy_denom = factory/inj1a6xdezq7a94qwamec6n6cnup02nvewvjtz6h6e/uabc +decimals = 0 + +[factory/inj1acyx78g70fwu2fcjx6dj9yff34gscu0g4tg8vw/INJ] +peggy_denom = factory/inj1acyx78g70fwu2fcjx6dj9yff34gscu0g4tg8vw/INJ +decimals = 6 + +[factory/inj1adam3fc7h0wjlhht0utgyl53rcataw3q70vntr/INJ] +peggy_denom = factory/inj1adam3fc7h0wjlhht0utgyl53rcataw3q70vntr/INJ +decimals = 6 + +[factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA] +peggy_denom = factory/inj1alwxgkns9x7d2sprymwwfvzl5t7teetym02lrj/NONJA +decimals = 6 + +[factory/inj1aq5rpkexhycqk54afj630ktmgaqvc468fwk34k/position] +peggy_denom = factory/inj1aq5rpkexhycqk54afj630ktmgaqvc468fwk34k/position +decimals = 0 + +[factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX] +peggy_denom = factory/inj1ary3d4xl6jjlkht33ktqc2py7lvc3l4mqrfq00/SEX +decimals = 6 + +[factory/inj1avm2ruactjhxlrd8cq7ja7vhmtqwpu2lpnnq79/position] +peggy_denom = factory/inj1avm2ruactjhxlrd8cq7ja7vhmtqwpu2lpnnq79/position +decimals = 0 + +[factory/inj1awuqzd4sgmw9pguaftekx87pnl8ylqhvm3n97y/INJ] +peggy_denom = factory/inj1awuqzd4sgmw9pguaftekx87pnl8ylqhvm3n97y/INJ +decimals = 6 + +[factory/inj1c6eq9yp3c3ray4prfyumyv9m5ttkdzxawpg6c0/position] +peggy_denom = factory/inj1c6eq9yp3c3ray4prfyumyv9m5ttkdzxawpg6c0/position +decimals = 0 + +[factory/inj1cjzufvday63thkgqkxnesgav69c5afsm5aws8w/test] +peggy_denom = factory/inj1cjzufvday63thkgqkxnesgav69c5afsm5aws8w/test +decimals = 6 + +[factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon] +peggy_denom = factory/inj1cm5lg3z9l3gftt0c09trnllmayxpwt8825zxw3/elon +decimals = 6 + +[factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/GME] +peggy_denom = factory/inj1cq5ygzlgh6l2pll2thtx82rhde2v7cpxlqfz93/GME +decimals = 6 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707147655.812049146InjUsdt1d1.08C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707147655.812049146InjUsdt1d1.08C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707151420.026670141InjUsdt1d1.08C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707151420.026670141InjUsdt1d1.08C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230551.918032637InjUsdt20d1.21C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230551.918032637InjUsdt20d1.21C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230884.525553719InjUsdt28d1.16C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707230884.525553719InjUsdt28d1.16C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231283.066300029InjUsdt20d1.21C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231283.066300029InjUsdt20d1.21C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231469.923471325InjUsdt16d0.87P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707231469.923471325InjUsdt16d0.87P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570015.556318592InjUsdt20d1.21C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570015.556318592InjUsdt20d1.21C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570076.365183070InjUsdt28d1.16C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570076.365183070InjUsdt28d1.16C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570225.110365254InjUsdt16d0.87P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707570225.110365254InjUsdt16d0.87P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915798.275383427InjUsdt24d1.22C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915798.275383427InjUsdt24d1.22C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915921.506232293InjUsdt30d1.16C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707915921.506232293InjUsdt30d1.16C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707916064.752464733InjUsdt18d0.87P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1707916064.752464733InjUsdt18d0.87P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434382.147236316InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434382.147236316InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434608.109548440InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434608.109548440InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434695.365984945InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708434695.365984945InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952496.551991999InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952496.551991999InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952558.556210993InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952558.556210993InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952714.916449575InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1708952714.916449575InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709471628.501760810InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1709989206.952525115InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1710512672.125817391InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711026012.447108856InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1711544412.396311094InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712063630.920057621InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1712583066.521732861InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt18d0.9P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt18d0.9P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt30d1.12C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713104421.579085515InjUsdt30d1.12C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713342050InjUsdt18d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713342050InjUsdt18d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713356956InjUsdt18d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713356956InjUsdt18d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt18d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt18d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618016InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618060InjUsdt16d0.89P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713618060InjUsdt16d0.89P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974295InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974295InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1713974528InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714309564InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1714658833InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715000420InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715346009InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1715691712InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716037433InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716385437InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1716728415InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717074021InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717419602InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1717769182InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718110812InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718456416InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1718802323InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt16d0.85P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt16d0.85P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt24d1.17C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt24d1.17C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt28d1.13C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719147607InjUsdt28d1.13C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719493268InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719804902InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719805152InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1719805152InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720184412InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720530062InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1720875614InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721221498InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721566814InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1721912418InjUsdt28d1.18C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt16d0.82P] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt16d0.82P +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt24d1.25C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt24d1.25C +decimals = 0 + +[factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt28d1.18C] +peggy_denom = factory/inj1cs57nurqssdy09a0tuzqetxn6nyzphj5w220jh/1722259395InjUsdt28d1.18C +decimals = 0 + +[factory/inj1csmzuxsp5vp2ng5cue7wdknudk8m69wlr62rq5/uLP] +peggy_denom = factory/inj1csmzuxsp5vp2ng5cue7wdknudk8m69wlr62rq5/uLP +decimals = 0 + +[factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EA] +peggy_denom = factory/inj1cus3dx8lxq2h2y9mzraxagaw8kjjcx6ul5feak/EA +decimals = 0 + +[factory/inj1cuv9fu0p28u60e5rtw7u6pch8zdm840zctlx84/position] +peggy_denom = factory/inj1cuv9fu0p28u60e5rtw7u6pch8zdm840zctlx84/position +decimals = 0 + +[factory/inj1cvhsxdjs64q9l83s7twdhsw3vjx54haqgv2d6k/position] +peggy_denom = factory/inj1cvhsxdjs64q9l83s7twdhsw3vjx54haqgv2d6k/position +decimals = 0 + +[factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK] +peggy_denom = factory/inj1cxcjn04l2vxg4zwrlhpghh32fdel856xn3a3rr/BONK +decimals = 6 + +[factory/inj1d4zluv70jrx4nl68fp7rqjhpq7egdey2433l96/position] +peggy_denom = factory/inj1d4zluv70jrx4nl68fp7rqjhpq7egdey2433l96/position +decimals = 0 + +[factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE] +peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE +decimals = 6 + +[factory/inj1d80r2q4lcsajwr494wyswykn46smag0yy8scfv/position] +peggy_denom = factory/inj1d80r2q4lcsajwr494wyswykn46smag0yy8scfv/position +decimals = 0 + +[factory/inj1dg6eay6q34r2eh88u6hghlz5r3y25n2wpp494v/position] +peggy_denom = factory/inj1dg6eay6q34r2eh88u6hghlz5r3y25n2wpp494v/position +decimals = 0 + +[factory/inj1dl8d43lz8ctmtka5d0tta8yj2urmgal7fgqcmh/position] +peggy_denom = factory/inj1dl8d43lz8ctmtka5d0tta8yj2urmgal7fgqcmh/position +decimals = 0 + +[factory/inj1dpyjsuehlrsmr78cddezd488euydtew3vukjmf/INJ] +peggy_denom = factory/inj1dpyjsuehlrsmr78cddezd488euydtew3vukjmf/INJ +decimals = 6 + +[factory/inj1drpns3cxn82e5q0nmmdaz8zxmla5lqsh6txmc9/position] +peggy_denom = factory/inj1drpns3cxn82e5q0nmmdaz8zxmla5lqsh6txmc9/position +decimals = 0 + +[factory/inj1dvr32vqxs8m6tmzv50xnnpzgph0wxp2jcfvl4u/INJ] +peggy_denom = factory/inj1dvr32vqxs8m6tmzv50xnnpzgph0wxp2jcfvl4u/INJ +decimals = 6 + +[factory/inj1dwfggufv8vkjcfkuk7fkkucs4rje0krav9ruyr/presale] +peggy_denom = factory/inj1dwfggufv8vkjcfkuk7fkkucs4rje0krav9ruyr/presale +decimals = 0 + +[factory/inj1dxprjkxz06cpahgqrv90hug9d8z504j52ms07n/test] +peggy_denom = factory/inj1dxprjkxz06cpahgqrv90hug9d8z504j52ms07n/test +decimals = 0 + +[factory/inj1e2pu02vjnh27mte3s0wqld9f85mzglyrxxuuvz/position] +peggy_denom = factory/inj1e2pu02vjnh27mte3s0wqld9f85mzglyrxxuuvz/position +decimals = 0 + +[factory/inj1e60tjgqhfsxutrcvklhgc7gechtq3pcej8gy4e/position] +peggy_denom = factory/inj1e60tjgqhfsxutrcvklhgc7gechtq3pcej8gy4e/position +decimals = 0 + +[factory/inj1e66ekacsxnv60yk006mymnrprged95n6crzzwg/INJ] +peggy_denom = factory/inj1e66ekacsxnv60yk006mymnrprged95n6crzzwg/INJ +decimals = 6 + +[factory/inj1e6wv0fn2cggsgwlmywp9u5pyd0zcx5vth3djrv/position] +peggy_denom = factory/inj1e6wv0fn2cggsgwlmywp9u5pyd0zcx5vth3djrv/position +decimals = 0 + +[factory/inj1e94cdzndq5xr2lx5dsjnz0ts5lm8nc8k9wanax/INJ] +peggy_denom = factory/inj1e94cdzndq5xr2lx5dsjnz0ts5lm8nc8k9wanax/INJ +decimals = 6 + +[factory/inj1ea4p8khg0e4zusfv339cy5h9h3myctfcl74ee6/INJ] +peggy_denom = factory/inj1ea4p8khg0e4zusfv339cy5h9h3myctfcl74ee6/INJ +decimals = 6 + +[factory/inj1egnhxmtnh76p2lgdky8985msrue92ag499ev6w/position] +peggy_denom = factory/inj1egnhxmtnh76p2lgdky8985msrue92ag499ev6w/position +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/GINGER.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/GINGER.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/HACHI.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/HACHI.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Hava.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Hava.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/KIRA.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/KIRA.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/SYN.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/SYN.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Talis.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/Talis.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/autism.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/autism.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/coping.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/coping.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/inj.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/inj.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/katana.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/katana.ash +decimals = 0 + +[factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/ninja.ash] +peggy_denom = factory/inj1ej2f3lmpxj4djsmmuxvnfuvplrut7zmwrq7zj8/ninja.ash +decimals = 0 + +[factory/inj1ejwjldm2k7k9zcgzvglkht5hhxg50lcnnnud9l/position] +peggy_denom = factory/inj1ejwjldm2k7k9zcgzvglkht5hhxg50lcnnnud9l/position +decimals = 0 + +[factory/inj1ekmnc56xkc3cl7wzrew8q89700vtry5wnjlgqw/INJ] +peggy_denom = factory/inj1ekmnc56xkc3cl7wzrew8q89700vtry5wnjlgqw/INJ +decimals = 6 + +[factory/inj1em0ejkywcq6lnzpgj9wx7z4jx7r9gpcntys04x/INJ] +peggy_denom = factory/inj1em0ejkywcq6lnzpgj9wx7z4jx7r9gpcntys04x/INJ +decimals = 6 + +[factory/inj1ep9yuk86cwdeaytmgsz3hz7qsargsn4sgnlrrs/INJ] +peggy_denom = factory/inj1ep9yuk86cwdeaytmgsz3hz7qsargsn4sgnlrrs/INJ +decimals = 6 + +[factory/inj1evy243kr8kh8prtgwv8vtvtj6m5vcahpt94f28/position] +peggy_denom = factory/inj1evy243kr8kh8prtgwv8vtvtj6m5vcahpt94f28/position +decimals = 0 + +[factory/inj1ezvtzukpf6x7aa4p52sejvyky8lkl6l5j47tym/position] +peggy_denom = factory/inj1ezvtzukpf6x7aa4p52sejvyky8lkl6l5j47tym/position +decimals = 0 + +[factory/inj1f4u2643nw7ennyadqmv428fmhg56jduc90xpgy/position] +peggy_denom = factory/inj1f4u2643nw7ennyadqmv428fmhg56jduc90xpgy/position +decimals = 0 + +[factory/inj1f79dkr20ax43ah3c3velf3ttxjdqe645k5rws3/position] +peggy_denom = factory/inj1f79dkr20ax43ah3c3velf3ttxjdqe645k5rws3/position +decimals = 0 + +[factory/inj1fa8ayqjnzup3af2heatnlyvmr2ljjm5f8x83fn/position] +peggy_denom = factory/inj1fa8ayqjnzup3af2heatnlyvmr2ljjm5f8x83fn/position +decimals = 0 + +[factory/inj1faqh7wcap9h2z007yx63eqvpqlzghdmser5l7u/position] +peggy_denom = factory/inj1faqh7wcap9h2z007yx63eqvpqlzghdmser5l7u/position +decimals = 0 + +[factory/inj1ff64ftrd6plvxurruzh3kthaxk5h050e0s5t95/position] +peggy_denom = factory/inj1ff64ftrd6plvxurruzh3kthaxk5h050e0s5t95/position +decimals = 0 + +[factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/LowQ +decimals = 6 + +[factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chain-factory] +peggy_denom = factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chain-factory +decimals = 0 + +[factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chainfactory] +peggy_denom = factory/inj1frr7kyd4nuemr0hrzlqyrgc72sggv7ukc3dfx0/chainfactory +decimals = 0 + +[factory/inj1fzej8p0acdplqad876a0mdewejqwuaea9e0rjl/position] +peggy_denom = factory/inj1fzej8p0acdplqad876a0mdewejqwuaea9e0rjl/position +decimals = 0 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT +decimals = 0 + +[factory/inj1g6j6w6860sfe7um3q6ja60cktfd50a2vxxy7qr/position] +peggy_denom = factory/inj1g6j6w6860sfe7um3q6ja60cktfd50a2vxxy7qr/position +decimals = 0 + +[factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI] +peggy_denom = factory/inj1gg43076kmy0prkxtn5xxka47lfmwwjsq6ygcfa/SAMURAI +decimals = 6 + +[factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE] +peggy_denom = factory/inj1ghcjw8w7a7ettwn97fadhamywvwf7kk3mhkndy/DOGE +decimals = 6 + +[factory/inj1gk4thnx4t9y4ltnau60mpst5xyu0u57hqfl0qs/uLP] +peggy_denom = factory/inj1gk4thnx4t9y4ltnau60mpst5xyu0u57hqfl0qs/uLP +decimals = 0 + +[factory/inj1gpf6gxs9hyz4jty423pxuns8cduhcuyvcxwxkv/position] +peggy_denom = factory/inj1gpf6gxs9hyz4jty423pxuns8cduhcuyvcxwxkv/position +decimals = 0 + +[factory/inj1gtpdm0dt5zg7p7nf9ftghrgvyt9ftz0w3f7kfk/WIF] +peggy_denom = factory/inj1gtpdm0dt5zg7p7nf9ftghrgvyt9ftz0w3f7kfk/WIF +decimals = 6 + +[factory/inj1gutzdupyjzzk46hrpf6lsf8ul030ty8wszvpta/INJ] +peggy_denom = factory/inj1gutzdupyjzzk46hrpf6lsf8ul030ty8wszvpta/INJ +decimals = 6 + +[factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha] +peggy_denom = factory/inj1h2dqvlca2lay8amfk5fgvateslp3h0sgf8wmmp/geisha +decimals = 6 + +[factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj] +peggy_denom = factory/inj1h3h0yjxlchmydvsjpazcfyhp57lajdurznpeh0/grinj +decimals = 6 + +[factory/inj1h3vcnx6f2r9hxf8mf7s3ck9pu02r3zxes6t50t/INJ] +peggy_denom = factory/inj1h3vcnx6f2r9hxf8mf7s3ck9pu02r3zxes6t50t/INJ +decimals = 6 + +[factory/inj1h4ppr74nmqmftmzd8d54nk439rftyxaxgx42fa/INJ] +peggy_denom = factory/inj1h4ppr74nmqmftmzd8d54nk439rftyxaxgx42fa/INJ +decimals = 6 + +[factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT] +peggy_denom = factory/inj1h75s3ne4vjpp3wtf300uv2xuz7r9lt2xu87jjk/BAT +decimals = 6 + +[factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI] +peggy_denom = factory/inj1hgs8gzt3ww6t6p5f3xvfjugk72h4lechll2qer/SEI +decimals = 6 + +[factory/inj1hkzntx25hpq37dfrms6ymtrch8dskx8t8u0e5r/INJ] +peggy_denom = factory/inj1hkzntx25hpq37dfrms6ymtrch8dskx8t8u0e5r/INJ +decimals = 6 + +[factory/inj1hteau2zqjwn2m62zshrg2v30hvhpwwrkymsaeq/INJ] +peggy_denom = factory/inj1hteau2zqjwn2m62zshrg2v30hvhpwwrkymsaeq/INJ +decimals = 6 + +[factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems] +peggy_denom = factory/inj1hvhtcmzphss9ks9rlst8xshw00dqq3nvdazm6w/cheems +decimals = 6 + +[factory/inj1j4vj8qzqyyf77ffxnwxwtm4lqvsalzfqg0yk9v/KIMJ] +peggy_denom = factory/inj1j4vj8qzqyyf77ffxnwxwtm4lqvsalzfqg0yk9v/KIMJ +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSP] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSP +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSTAYAWAY] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTSTAYAWAY +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTTSTAYAWAY] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TESTTSTAYAWAY +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/teeeeeeeeest] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/teeeeeeeeest +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt +decimals = 6 + +[factory/inj1j9sczxqcyhtvt586qywk8hmz3sk4rrk8rypv28/position] +peggy_denom = factory/inj1j9sczxqcyhtvt586qywk8hmz3sk4rrk8rypv28/position +decimals = 0 + +[factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO] +peggy_denom = factory/inj1ja9dyvqlx5u7rvlevmjwhr29p42424242pp3wn/CROCO +decimals = 6 + +[factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST] +peggy_denom = factory/inj1jc4zt6y82gy3n0j8g2mh9n3f7fwf35sj6jq5zu/TEST +decimals = 6 + +[factory/inj1jcvx3q6rfj7rdw60grjj3rah5uqsk64msnlafc/position] +peggy_denom = factory/inj1jcvx3q6rfj7rdw60grjj3rah5uqsk64msnlafc/position +decimals = 0 + +[factory/inj1jdvx7mpauukwhdlgay0jgxaj393rju42ht9mkn/position] +peggy_denom = factory/inj1jdvx7mpauukwhdlgay0jgxaj393rju42ht9mkn/position +decimals = 0 + +[factory/inj1jknhf2m8f9plqa2g7rm78vdhwr58nlyjfd62ru/BAMBOO] +peggy_denom = factory/inj1jknhf2m8f9plqa2g7rm78vdhwr58nlyjfd62ru/BAMBOO +decimals = 6 + +[factory/inj1jls5kflqlfylyq42n8e5k3t6wn5jnhhlyq3w2r/INJ] +peggy_denom = factory/inj1jls5kflqlfylyq42n8e5k3t6wn5jnhhlyq3w2r/INJ +decimals = 6 + +[factory/inj1jpaxtp8jvepvhc7pqk5xgumz3jghwuh7xrqatw/position] +peggy_denom = factory/inj1jpaxtp8jvepvhc7pqk5xgumz3jghwuh7xrqatw/position +decimals = 0 + +[factory/inj1js4qpjl2f9cpl8s764d0y9jl96ham3g4kkaaqd/position] +peggy_denom = factory/inj1js4qpjl2f9cpl8s764d0y9jl96ham3g4kkaaqd/position +decimals = 0 + +[factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN] +peggy_denom = factory/inj1k0mzgwd4ujuu9w95xzs8p7qu8udy3atqj3sau7/POTIN +decimals = 6 + +[factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE] +peggy_denom = factory/inj1k2kcx5n03pe0z9rfzvs9lt764jja9xpvwrxk7c/INJDOGE +decimals = 6 + +[factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON] +peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/ELON +decimals = 6 + +[factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON] +peggy_denom = factory/inj1k7ygz5ufgavnutv0hkgsz7u9g4c3yj6lq6p0jn/MOON +decimals = 6 + +[factory/inj1k9jy245r9749kl008h7nf764wnrnj9kgkmj6vz/position] +peggy_denom = factory/inj1k9jy245r9749kl008h7nf764wnrnj9kgkmj6vz/position +decimals = 0 + +[factory/inj1k9k62nfrsnznd2ekzgmsxr74apglqfa2h6wz9g/INJ] +peggy_denom = factory/inj1k9k62nfrsnznd2ekzgmsxr74apglqfa2h6wz9g/INJ +decimals = 6 + +[factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/test] +peggy_denom = factory/inj1k9tqa6al637y8qu9yvmsw3ke6r3knsn8ewv73f/test +decimals = 6 + +[factory/inj1k9xr7frkwkjjsd3w9yf8kdxu7wdfqtrkp0a809/position] +peggy_denom = factory/inj1k9xr7frkwkjjsd3w9yf8kdxu7wdfqtrkp0a809/position +decimals = 0 + +[factory/inj1kcda2te0sjxmcvykyr9cfpleyyx283d46nkspv/test] +peggy_denom = factory/inj1kcda2te0sjxmcvykyr9cfpleyyx283d46nkspv/test +decimals = 0 + +[factory/inj1kf7t8qjq83gg6kn7nl5zwzscfystyqzr62ydsn/injx] +peggy_denom = factory/inj1kf7t8qjq83gg6kn7nl5zwzscfystyqzr62ydsn/injx +decimals = 6 + +[factory/inj1khy2c3pzu22c25z2zg3vmzh2fw7eh8yhluzlux/INJ] +peggy_denom = factory/inj1khy2c3pzu22c25z2zg3vmzh2fw7eh8yhluzlux/INJ +decimals = 6 + +[factory/inj1kjpk9s9fm5c7ltgf54m5vz39n70x4quskl9sfu/INJ] +peggy_denom = factory/inj1kjpk9s9fm5c7ltgf54m5vz39n70x4quskl9sfu/INJ +decimals = 6 + +[factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/ENA] +peggy_denom = factory/inj1kk6dnn7pl7e508lj4qvllprwa44qtgf98es2ak/ENA +decimals = 18 + +[factory/inj1kkarwsh947c34emv3wju779ys2tt2g76m6kequ/position] +peggy_denom = factory/inj1kkarwsh947c34emv3wju779ys2tt2g76m6kequ/position +decimals = 0 + +[factory/inj1krsf4as63jnytzekzndlv9eflku5nmkavtr3d3/SNAPPY] +peggy_denom = factory/inj1krsf4as63jnytzekzndlv9eflku5nmkavtr3d3/SNAPPY +decimals = 6 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/SHRK +decimals = 6 + +[factory/inj1kvug5dcjdmkpdrjr088xdh9h4e8wvr04vrplmh/INJ] +peggy_denom = factory/inj1kvug5dcjdmkpdrjr088xdh9h4e8wvr04vrplmh/INJ +decimals = 6 + +[factory/inj1l2r43rx3p79yhspt48qvtd0qvqz4zyf70puxv6/position] +peggy_denom = factory/inj1l2r43rx3p79yhspt48qvtd0qvqz4zyf70puxv6/position +decimals = 0 + +[factory/inj1lcsc97wz2ztyn50vxqz2gcdjnzf53qd3gzvdt2/position] +peggy_denom = factory/inj1lcsc97wz2ztyn50vxqz2gcdjnzf53qd3gzvdt2/position +decimals = 0 + +[factory/inj1lgq2vj9xhptzflqk05fnaf585c2vtv33s76l68/INJ] +peggy_denom = factory/inj1lgq2vj9xhptzflqk05fnaf585c2vtv33s76l68/INJ +decimals = 6 + +[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ] +peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/BINJ +decimals = 6 + +[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/nbla] +peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/nbla +decimals = 0 + +[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/point] +peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/point +decimals = 0 + +[factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/zzzza] +peggy_denom = factory/inj1ljdraxlvy4cjdhytpxd7vhw387dq0r0g0fqucd/zzzza +decimals = 0 + +[factory/inj1lnealva69klvt2dxpe0gxzj4a2ea7jqcjar7rq/INJ] +peggy_denom = factory/inj1lnealva69klvt2dxpe0gxzj4a2ea7jqcjar7rq/INJ +decimals = 6 + +[factory/inj1lnvtsm9avzyqs67syzakg0mncq6naldlw6eqek/ELON] +peggy_denom = factory/inj1lnvtsm9avzyqs67syzakg0mncq6naldlw6eqek/ELON +decimals = 6 + +[factory/inj1m3cvaumsw5l9mnhu53g2s7nd8pwqhsgm0r7zc5/position] +peggy_denom = factory/inj1m3cvaumsw5l9mnhu53g2s7nd8pwqhsgm0r7zc5/position +decimals = 0 + +[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC] +peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC +decimals = 6 + +[factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems] +peggy_denom = factory/inj1mck4g2zd7p057un8l3kfamsyj57w7gymgrdyjw/cheems +decimals = 6 + +[factory/inj1me7s2kyfk7ffdwh8qatluy9nj8yvh89kuwr235/INJ] +peggy_denom = factory/inj1me7s2kyfk7ffdwh8qatluy9nj8yvh89kuwr235/INJ +decimals = 6 + +[factory/inj1mfe2m554uffc9lul3q3fxzmzw8k7cuglnxvxjc/INJ] +peggy_denom = factory/inj1mfe2m554uffc9lul3q3fxzmzw8k7cuglnxvxjc/INJ +decimals = 6 + +[factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON] +peggy_denom = factory/inj1mg2pnk0djfmvlrrfucnhsfs4um08mwdue3hp9x/DRAGON +decimals = 6 + +[factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN +decimals = 6 + +[factory/inj1mthhttrxpewts2k8vlp276xtsa5te9mt8vws38/position] +peggy_denom = factory/inj1mthhttrxpewts2k8vlp276xtsa5te9mt8vws38/position +decimals = 0 + +[factory/inj1mu6w5fmvrp8kkxpaxxdvkcqfmm7rh79tr9pzr4/position] +peggy_denom = factory/inj1mu6w5fmvrp8kkxpaxxdvkcqfmm7rh79tr9pzr4/position +decimals = 0 + +[factory/inj1n2f2ehc6eplk7s5kwwy6e0hl9vf08mdqjxdacs/INJ] +peggy_denom = factory/inj1n2f2ehc6eplk7s5kwwy6e0hl9vf08mdqjxdacs/INJ +decimals = 6 + +[factory/inj1nguhj0ph48vfs2pnrf0kqz5zyn7znys5cymx3y/SHINJI] +peggy_denom = factory/inj1nguhj0ph48vfs2pnrf0kqz5zyn7znys5cymx3y/SHINJI +decimals = 0 + +[factory/inj1p65r3rdzwxq9xykp3pvwvajukauxulsn28uxdr/position] +peggy_denom = factory/inj1p65r3rdzwxq9xykp3pvwvajukauxulsn28uxdr/position +decimals = 0 + +[factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/haki +decimals = 6 + +[factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/samurai +decimals = 6 + +[factory/inj1pgwrcf3j7yk0a5lxcyyuztr2ekpnzwqsqlkgke/position] +peggy_denom = factory/inj1pgwrcf3j7yk0a5lxcyyuztr2ekpnzwqsqlkgke/position +decimals = 0 + +[factory/inj1phq9r67sd6ypgsgsmh62dvf5eyj3lac6nqvdnt/position] +peggy_denom = factory/inj1phq9r67sd6ypgsgsmh62dvf5eyj3lac6nqvdnt/position +decimals = 0 + +[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/Shinobi] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/Shinobi +decimals = 6 + +[factory/inj1ptze5zs7f8upr3fdj6dsrh0gpq97rsugfl5efe/position] +peggy_denom = factory/inj1ptze5zs7f8upr3fdj6dsrh0gpq97rsugfl5efe/position +decimals = 0 + +[factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB] +peggy_denom = factory/inj1q42vrh9rhdnr20eq9ju9lymsxaqxcjpuqgd2cg/KZB +decimals = 6 + +[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS] +peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS +decimals = 6 + +[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK] +peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK +decimals = 9 + +[factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS] +peggy_denom = factory/inj1q7unmeeqkj8r4m4en50wqlfnptfvgf0wavuah8/BOYS +decimals = 6 + +[factory/inj1q8ky6w56wcv2ya3kxzg83s667q86xtrlvwytcs/position] +peggy_denom = factory/inj1q8ky6w56wcv2ya3kxzg83s667q86xtrlvwytcs/position +decimals = 0 + +[factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy] +peggy_denom = factory/inj1qdepvfux04s8pqvzs4leam4pgl46wy0fx37eyt/injoy +decimals = 9 + +[factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST] +peggy_denom = factory/inj1qjjhhdn95u8s6tqqhx27n8g9vqtn6uhn63szp8/TEST +decimals = 6 + +[factory/inj1qpf0xj4w824774q8mp9x29q547qe66607h96ll/ELON] +peggy_denom = factory/inj1qpf0xj4w824774q8mp9x29q547qe66607h96ll/ELON +decimals = 12 + +[factory/inj1qqc56qqlqyzsycj50kqne8ygr6r6dk4a3e23z9/position] +peggy_denom = factory/inj1qqc56qqlqyzsycj50kqne8ygr6r6dk4a3e23z9/position +decimals = 0 + +[factory/inj1qqc7ekvm06tch3dtyselt2rl5y4s9daman0ahv/uLP] +peggy_denom = factory/inj1qqc7ekvm06tch3dtyselt2rl5y4s9daman0ahv/uLP +decimals = 0 + +[factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB] +peggy_denom = factory/inj1qqge7uaftfykr9wjqy4khwwzyr2wgcctwwgqv2/MIB +decimals = 6 + +[factory/inj1qrdfxrx7kg0kvgapxyj8dc0wuj4yr2npw7gmkr/QTUM] +peggy_denom = factory/inj1qrdfxrx7kg0kvgapxyj8dc0wuj4yr2npw7gmkr/QTUM +decimals = 6 + +[factory/inj1qwlpnrg97jq0ytl28pm6c20apr6c6ga3fqc75t/position] +peggy_denom = factory/inj1qwlpnrg97jq0ytl28pm6c20apr6c6ga3fqc75t/position +decimals = 0 + +[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE] +peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/APE +decimals = 6 + +[factory/inj1qz4fua8emzx9h2sdafkpxazl5rwyl75t0d6vc8/position] +peggy_denom = factory/inj1qz4fua8emzx9h2sdafkpxazl5rwyl75t0d6vc8/position +decimals = 0 + +[factory/inj1r3krfh3nh6qhe3znwkfpzs4rdedgyu0wryfsjf/position] +peggy_denom = factory/inj1r3krfh3nh6qhe3znwkfpzs4rdedgyu0wryfsjf/position +decimals = 0 + +[factory/inj1r42k2w9rf6jtqktpfceg3f0a8eu2flm98vm9cs/position] +peggy_denom = factory/inj1r42k2w9rf6jtqktpfceg3f0a8eu2flm98vm9cs/position +decimals = 0 + +[factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj] +peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/crinj +decimals = 6 + +[factory/inj1rau42vnjsz7hrr3fh9nf7hyzrrv4ajuc2kzulq/INJ] +peggy_denom = factory/inj1rau42vnjsz7hrr3fh9nf7hyzrrv4ajuc2kzulq/INJ +decimals = 6 + +[factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/testor] +peggy_denom = factory/inj1rdu7lqpvq4h2fyrjdfnp9gycdkut5ewql3e4uq/testor +decimals = 6 + +[factory/inj1rfw3sugvss3z22zzuhlccqug0y8lvd4q95runz/position] +peggy_denom = factory/inj1rfw3sugvss3z22zzuhlccqug0y8lvd4q95runz/position +decimals = 0 + +[factory/inj1rlcfjuhupp56nkk3gspy0x0nstmd02ptzxzkvx/position] +peggy_denom = factory/inj1rlcfjuhupp56nkk3gspy0x0nstmd02ptzxzkvx/position +decimals = 0 + +[factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/HOSHI] +peggy_denom = factory/inj1rmf0pe6dns2kaasjt82j5lps3t8ke9dzyh3nqt/HOSHI +decimals = 0 + +[factory/inj1rmlm94wu0unvveueyvuczcgsae76esjm7wcudh/BRO] +peggy_denom = factory/inj1rmlm94wu0unvveueyvuczcgsae76esjm7wcudh/BRO +decimals = 6 + +[factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIP] +peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/CATNIP +decimals = 6 + +[factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/NIPPY] +peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/NIPPY +decimals = 6 + +[factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat] +peggy_denom = factory/inj1rrg35k5g58vunyze4tqvqhef2fgrurkpxxdr43/KiraWifHat +decimals = 6 + +[factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE] +peggy_denom = factory/inj1rvg9a58qtcf8f464w2hkynrvpnl9x59wsaq922/NINJAPE +decimals = 6 + +[factory/inj1rw5ndf4g2ppl586guwgx6ry06tr2sk9vmpd9jk/position] +peggy_denom = factory/inj1rw5ndf4g2ppl586guwgx6ry06tr2sk9vmpd9jk/position +decimals = 0 + +[factory/inj1s0tcn9c42fz3fpfdy7pargxj4rwrcp0aushf2p/INJ] +peggy_denom = factory/inj1s0tcn9c42fz3fpfdy7pargxj4rwrcp0aushf2p/INJ +decimals = 6 + +[factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN] +peggy_denom = factory/inj1s79ssggksqujyrwhq5zwxart33t98mmm2xd8f7/CHEN +decimals = 6 + +[factory/inj1s8uw9vqpk7tvhjj2znqyhfxwfcvfl9g6d2drtc/position] +peggy_denom = factory/inj1s8uw9vqpk7tvhjj2znqyhfxwfcvfl9g6d2drtc/position +decimals = 0 + +[factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB] +peggy_denom = factory/inj1s9pckznjz4hmgtxu5t9gerxtalch7wtle4y3a6/MIB +decimals = 6 + +[factory/inj1sdkwtcjd0wkp5sft3pyzpaesfgllxl06sgvnkk/INJ] +peggy_denom = factory/inj1sdkwtcjd0wkp5sft3pyzpaesfgllxl06sgvnkk/INJ +decimals = 6 + +[factory/inj1se3jy798wzjtlf588e8qh7342pqs4n0yhjxd0p/position] +peggy_denom = factory/inj1se3jy798wzjtlf588e8qh7342pqs4n0yhjxd0p/position +decimals = 0 + +[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGIY +decimals = 6 + +[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGY] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/FROGY +decimals = 0 + +[factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test +decimals = 6 + +[factory/inj1sf0ldwenurgttrmvgt65xgsj8jn487dggsy7el/position] +peggy_denom = factory/inj1sf0ldwenurgttrmvgt65xgsj8jn487dggsy7el/position +decimals = 0 + +[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR] +peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/LIOR +decimals = 6 + +[factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK] +peggy_denom = factory/inj1sgnkljwsekkf36p4lgd7v9qa0p66rj64xa756j/BONK +decimals = 6 + +[factory/inj1sgvrzysd32xdqtscaen2gprrjyg997lkn2h4wg/uLP] +peggy_denom = factory/inj1sgvrzysd32xdqtscaen2gprrjyg997lkn2h4wg/uLP +decimals = 0 + +[factory/inj1sm4l3jrh4cynhwv3x3yudkf4gtepv3wdjsryj3/INJ] +peggy_denom = factory/inj1sm4l3jrh4cynhwv3x3yudkf4gtepv3wdjsryj3/INJ +decimals = 6 + +[factory/inj1sz76uf4fj7jn4wptpsszt63x27uthjvehhwsk9/MEOW] +peggy_denom = factory/inj1sz76uf4fj7jn4wptpsszt63x27uthjvehhwsk9/MEOW +decimals = 6 + +[factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/BONK +decimals = 6 + +[factory/inj1t6wfs24ewwnx9mxtm26n6q6zpm73wsan9u8n0v/position] +peggy_denom = factory/inj1t6wfs24ewwnx9mxtm26n6q6zpm73wsan9u8n0v/position +decimals = 0 + +[factory/inj1taqmwnnd3rucr8ydyl8u30vc29dkyc9rzrjy6r/position] +peggy_denom = factory/inj1taqmwnnd3rucr8ydyl8u30vc29dkyc9rzrjy6r/position +decimals = 0 + +[factory/inj1tdv8p2pp68veauzezvgt8ze0wpf6ysddh99s6g/hINJ] +peggy_denom = factory/inj1tdv8p2pp68veauzezvgt8ze0wpf6ysddh99s6g/hINJ +decimals = 6 + +[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO] +peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/DINO +decimals = 6 + +[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] +peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior +decimals = 6 + +[factory/inj1tl8w4z9a7ykdmardg2a5qgryzc9e92fduqy8vj/position] +peggy_denom = factory/inj1tl8w4z9a7ykdmardg2a5qgryzc9e92fduqy8vj/position +decimals = 0 + +[factory/inj1tm6kuf59h46q0sy73cdyxyjwexwjp4a3h07yvt/position] +peggy_denom = factory/inj1tm6kuf59h46q0sy73cdyxyjwexwjp4a3h07yvt/position +decimals = 0 + +[factory/inj1tn2nqgzsgu8ts87fe3fdhh2zy85ymdrc4qd37s/position] +peggy_denom = factory/inj1tn2nqgzsgu8ts87fe3fdhh2zy85ymdrc4qd37s/position +decimals = 0 + +[factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro] +peggy_denom = factory/inj1tpuscn4wl7sf35zx5w95d74ulzsdfle67x7cq5/Sekiro +decimals = 6 + +[factory/inj1tuemzz3xa2gurzv828y795r7uycmcafr0ktzwk/uLP] +peggy_denom = factory/inj1tuemzz3xa2gurzv828y795r7uycmcafr0ktzwk/uLP +decimals = 0 + +[factory/inj1tvnxhtnlkad7xzq7kkd0fcrtn0lncnvydp8mh3/position] +peggy_denom = factory/inj1tvnxhtnlkad7xzq7kkd0fcrtn0lncnvydp8mh3/position +decimals = 0 + +[factory/inj1u2nhcc06qvxscfmqwqwq5x6saf0smlhmykgg2j/position] +peggy_denom = factory/inj1u2nhcc06qvxscfmqwqwq5x6saf0smlhmykgg2j/position +decimals = 0 + +[factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj13t8y6evvue023zg5q4f4ngaav54285pfw482xd] +peggy_denom = factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj13t8y6evvue023zg5q4f4ngaav54285pfw482xd +decimals = 0 + +[factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj1tpmwkd0psrutlqd4ytjq7pugj5dedjys9u0wd3] +peggy_denom = factory/inj1u7xh7k9w5kddcyjjkq2rmpmnw7scrx25526x0k/lpinj1tpmwkd0psrutlqd4ytjq7pugj5dedjys9u0wd3 +decimals = 0 + +[factory/inj1ucamzt4l70qnwwtqac4wjpvqdfmuhuft5ezy6x/sniperfactory] +peggy_denom = factory/inj1ucamzt4l70qnwwtqac4wjpvqdfmuhuft5ezy6x/sniperfactory +decimals = 6 + +[factory/inj1uja2y06ef8mmygnalg5hsugpa8q5m4pscjduec/INJ] +peggy_denom = factory/inj1uja2y06ef8mmygnalg5hsugpa8q5m4pscjduec/INJ +decimals = 6 + +[factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG] +peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/FROG +decimals = 6 + +[factory/inj1ul7m4hcf72jn3ah4rgez6vsykqjs90jwyqkkjm/position] +peggy_denom = factory/inj1ul7m4hcf72jn3ah4rgez6vsykqjs90jwyqkkjm/position +decimals = 0 + +[factory/inj1uq9wzg2hc6gsl9hue8qj5ymdfv4k8ccluxhesj/INJ] +peggy_denom = factory/inj1uq9wzg2hc6gsl9hue8qj5ymdfv4k8ccluxhesj/INJ +decimals = 6 + +[factory/inj1ur2gpeg5yw67dagpcm5946lnd6v8l2s2k9tx3q/position] +peggy_denom = factory/inj1ur2gpeg5yw67dagpcm5946lnd6v8l2s2k9tx3q/position +decimals = 0 + +[factory/inj1utkmtctnp767m0rdl294ypshrjjv8qendcm3md/position] +peggy_denom = factory/inj1utkmtctnp767m0rdl294ypshrjjv8qendcm3md/position +decimals = 0 + +[factory/inj1utyrpze9qzx037av0vrxz2w63y2et4wcd84j3q/position] +peggy_denom = factory/inj1utyrpze9qzx037av0vrxz2w63y2et4wcd84j3q/position +decimals = 0 + +[factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/DOGO] +peggy_denom = factory/inj1uv64p5ky9c298dlswy5krq4xcn78qearqaqqc9/DOGO +decimals = 0 + +[factory/inj1uyvpwvurunezljvear62kswrcduup8e4hkf3er/INJ] +peggy_denom = factory/inj1uyvpwvurunezljvear62kswrcduup8e4hkf3er/INJ +decimals = 6 + +[factory/inj1uz997yw7vq5ala7hhr5rpn386v7w7uva9v4e23/INJ] +peggy_denom = factory/inj1uz997yw7vq5ala7hhr5rpn386v7w7uva9v4e23/INJ +decimals = 6 + +[factory/inj1uzasxz38jtgjmsd6m52h2yy3zqy36wswy5hta9/position] +peggy_denom = factory/inj1uzasxz38jtgjmsd6m52h2yy3zqy36wswy5hta9/position +decimals = 0 + +[factory/inj1v06t5cjcnzawlvk665s0wynqy6zfjuulvaadhh/position] +peggy_denom = factory/inj1v06t5cjcnzawlvk665s0wynqy6zfjuulvaadhh/position +decimals = 0 + +[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cook] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cook +decimals = 6 + +[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cookie] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/cookie +decimals = 6 + +[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/frog] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/frog +decimals = 6 + +[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninja] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninja +decimals = 6 + +[factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wif] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wif +decimals = 6 + +[factory/inj1vc3d90452zqh5vp265maz69wdg4dhj7m0g6aty/position] +peggy_denom = factory/inj1vc3d90452zqh5vp265maz69wdg4dhj7m0g6aty/position +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12hrath9g2c02e87vjadnlqnmurxtr8md7djyxm] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12hrath9g2c02e87vjadnlqnmurxtr8md7djyxm +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12s6eccju5addagv2f74sphfmenv9xwp0ynmtqv] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj12s6eccju5addagv2f74sphfmenv9xwp0ynmtqv +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj13ly2q9g40lta4dcn7n6z9nack42r2hk64un07x] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj13ly2q9g40lta4dcn7n6z9nack42r2hk64un07x +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14gmk6jg5kduvy882yjdq4967e46jaka7ffuf58] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14gmk6jg5kduvy882yjdq4967e46jaka7ffuf58 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14xy8dvgjyhqjn8dhegf9zz5g7c3yeflt0kgarp] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj14xy8dvgjyhqjn8dhegf9zz5g7c3yeflt0kgarp +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15599wr9jzgrt6e04xkue9l6409mlc3l7lqr38d] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15599wr9jzgrt6e04xkue9l6409mlc3l7lqr38d +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15s4c3kqa0j6glrgppcn0h357jac40ndyptv3sr] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj15s4c3kqa0j6glrgppcn0h357jac40ndyptv3sr +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16mz5n3dsnal4m0emy4pa02d67hh0r70tlm8095] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16mz5n3dsnal4m0emy4pa02d67hh0r70tlm8095 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16vjf4nnyqvjws6chw6u3t3kmujhllj4wjn9nlh] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj16vjf4nnyqvjws6chw6u3t3kmujhllj4wjn9nlh +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17hm5smrnrmdr88slpfzfmyxxna9fe6xtvzlr0p] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17hm5smrnrmdr88slpfzfmyxxna9fe6xtvzlr0p +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17jdcvmkpvhgwfnukxjt6uvu2cptuqv309rz8pu] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj17jdcvmkpvhgwfnukxjt6uvu2cptuqv309rz8pu +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj19ujrgrvsm5zn6d389lua74y6pyldxzv5gdrln9] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj19ujrgrvsm5zn6d389lua74y6pyldxzv5gdrln9 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1a9hcr7zf5a2ahkv5fvumyky50ww7ds2cg5tk95] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1a9hcr7zf5a2ahkv5fvumyky50ww7ds2cg5tk95 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ckyym37k9u3gne0qdcpu7ty20p59d3lutepkge] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ckyym37k9u3gne0qdcpu7ty20p59d3lutepkge +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1djuudn6jj6g70kunu8sgtnrvytw9e27xtzyphe] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1djuudn6jj6g70kunu8sgtnrvytw9e27xtzyphe +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1dvrvhcpq6aru0g5d9m9wjnz7utr67we5dlaq79] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1dvrvhcpq6aru0g5d9m9wjnz7utr67we5dlaq79 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1e6f0ma2j0j9duwyn7vv0jdn6qaztxgmqpr56hu] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1e6f0ma2j0j9duwyn7vv0jdn6qaztxgmqpr56hu +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1g89dl74lyre9q6rjua9l37pcc7psnw66capurp] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1g89dl74lyre9q6rjua9l37pcc7psnw66capurp +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1gqmr3vdr9k0hwyjkkphn9etqqsj06mm0tuj7vl] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1gqmr3vdr9k0hwyjkkphn9etqqsj06mm0tuj7vl +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hffc8x68rp843ygjg9e4eaxj54v5w6vcev9vvu] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hffc8x68rp843ygjg9e4eaxj54v5w6vcev9vvu +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hw4vgqyvgw5vca224mpg2e0ccqguhnu7yawpu8] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1hw4vgqyvgw5vca224mpg2e0ccqguhnu7yawpu8 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1j0hepy2mrfc705djm2q53ucnyq5ygejq5mr4n2] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1j0hepy2mrfc705djm2q53ucnyq5ygejq5mr4n2 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1jd845wf6zr4cxjne8j4580qq7cg0g5ueeaxpk4] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1jd845wf6zr4cxjne8j4580qq7cg0g5ueeaxpk4 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1k7kvdzm7n8g5xf6c733lsyp6tugvxwsnvdcgur] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1k7kvdzm7n8g5xf6c733lsyp6tugvxwsnvdcgur +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kf09fn0mjq3d9v7x25xlmvacp9rfjqw96039e3] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kf09fn0mjq3d9v7x25xlmvacp9rfjqw96039e3 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1khp440nluesxmnr0mgdstzxujhkmcu8mad797f] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1khp440nluesxmnr0mgdstzxujhkmcu8mad797f +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kv5amrnaczurcyc9rw0uve4e3wh2jfujxn3zlz] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1kv5amrnaczurcyc9rw0uve4e3wh2jfujxn3zlz +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1l6e65hq8w79zepulpt768rj8qd2e2qejxl5uga] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1l6e65hq8w79zepulpt768rj8qd2e2qejxl5uga +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nvq8pyvt2kf5xctc4v3xt4gszq5a9lhpadyfwg] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nvq8pyvt2kf5xctc4v3xt4gszq5a9lhpadyfwg +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nyv50r7vnktgpp5s22fh8nzf7ak8sthh6l7s3t] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1nyv50r7vnktgpp5s22fh8nzf7ak8sthh6l7s3t +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1p9djw5xkg7dfgteqnh3cqmef2xs6meycd2k5r5] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1p9djw5xkg7dfgteqnh3cqmef2xs6meycd2k5r5 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pwf7q5vtq0thplnkdsp4v09mr66jkfyrsjr5g3] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pwf7q5vtq0thplnkdsp4v09mr66jkfyrsjr5g3 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pww37pr6qnnndzz2azxhxl0rcvtxcftg0y70vh] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1pww37pr6qnnndzz2azxhxl0rcvtxcftg0y70vh +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r4pjz70l4ytk06dfparzd6na5qqjeq09fkxdt4] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r4pjz70l4ytk06dfparzd6na5qqjeq09fkxdt4 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r86atmuulmhzw63pqx5tp989nmupvn4fd94m7u] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1r86atmuulmhzw63pqx5tp989nmupvn4fd94m7u +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rayjg2wktsj9aa9j5ps52v3qunn80m7fjhdstp] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rayjg2wktsj9aa9j5ps52v3qunn80m7fjhdstp +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rduwtul0x7fkryzpdn85yuujntwyel8z04h7cq] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1rduwtul0x7fkryzpdn85yuujntwyel8z04h7cq +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sfk9r0jk9wxs7n726qfjg5e649zf34yq6q65gn] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sfk9r0jk9wxs7n726qfjg5e649zf34yq6q65gn +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sm36lxmzynkt9q37nwspf8n6pzplktul006u08] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sm36lxmzynkt9q37nwspf8n6pzplktul006u08 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sqj6x44uxtmklyewqxk9frqjrkjqjjmu6u0mrm] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1sqj6x44uxtmklyewqxk9frqjrkjqjjmu6u0mrm +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ucj4veavs4jeuhe98xx8fe6yk0n83ulvjqank3] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ucj4veavs4jeuhe98xx8fe6yk0n83ulvjqank3 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ulxnf3qhjk8l383nllhglfaautcstkmth089jp] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ulxnf3qhjk8l383nllhglfaautcstkmth089jp +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1v8v8jepsjdsxj29hxmm62qwzmg54r75v6mq6q9] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1v8v8jepsjdsxj29hxmm62qwzmg54r75v6mq6q9 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ve3uga90prrwtpsptjrhnxlfd9u0qwuf0v43ke] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1ve3uga90prrwtpsptjrhnxlfd9u0qwuf0v43ke +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1wzt78jy575ejcps76gpc2m8k2v4x2526aksnk0] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1wzt78jy575ejcps76gpc2m8k2v4x2526aksnk0 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xar9nfhqc9al47hkh7eljrc3g66lntqch8hh0r] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xar9nfhqc9al47hkh7eljrc3g66lntqch8hh0r +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xkq56rjtpcqgwh9yut6zwh3lxcle2yz4dljyxc] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1xkq56rjtpcqgwh9yut6zwh3lxcle2yz4dljyxc +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zqe2p2xegqyr3zeltt9kh7c934v7tlevmk6xg7] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zqe2p2xegqyr3zeltt9kh7c934v7tlevmk6xg7 +decimals = 0 + +[factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zxk9xvs6mnq2m5yws8gdgqstrmcqntuedlnua3] +peggy_denom = factory/inj1vcqkkvqs7prqu70dpddfj7kqeqfdz5gg662qs3/lpinj1zxk9xvs6mnq2m5yws8gdgqstrmcqntuedlnua3 +decimals = 0 + +[factory/inj1vk2re2ak5xf4w2vnscy4ym2a23cwx375872e73/INJ] +peggy_denom = factory/inj1vk2re2ak5xf4w2vnscy4ym2a23cwx375872e73/INJ +decimals = 6 + +[factory/inj1vr0te6wepj0pne8qaw5gt9jjm78g2aqgl4lz26/INJ] +peggy_denom = factory/inj1vr0te6wepj0pne8qaw5gt9jjm78g2aqgl4lz26/INJ +decimals = 6 + +[factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG] +peggy_denom = factory/inj1vrktrmvtxkzd52kk45ptc5m53zncm56d278qza/GINGERDOG +decimals = 6 + +[factory/inj1vss35hmc5fzy0d4glcyt39w425pvwfsqk9zu3p/ABC] +peggy_denom = factory/inj1vss35hmc5fzy0d4glcyt39w425pvwfsqk9zu3p/ABC +decimals = 6 + +[factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS] +peggy_denom = factory/inj1vug68m8evczhxm26hfe7tetycsfnmm92mr6aaj/GODS +decimals = 6 + +[factory/inj1vyelgqnlmnwd8sq2rcmg7d0jglrvggdk6s5y4k/position] +peggy_denom = factory/inj1vyelgqnlmnwd8sq2rcmg7d0jglrvggdk6s5y4k/position +decimals = 0 + +[factory/inj1w4ru8gx7mjhagafdn2ljumrc8s5aaefzmynuqd/black] +peggy_denom = factory/inj1w4ru8gx7mjhagafdn2ljumrc8s5aaefzmynuqd/black +decimals = 0 + +[factory/inj1wc3a7mqvdvhe8mkglvzq6pmelex53e2x8safdv/position] +peggy_denom = factory/inj1wc3a7mqvdvhe8mkglvzq6pmelex53e2x8safdv/position +decimals = 0 + +[factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE] +peggy_denom = factory/inj1weyajq6ksmzzhfpum9texpsgm9u20fc0kdqpgy/PEPE +decimals = 6 + +[factory/inj1whxcxhncnftrc76w0zns3l6934rqfenj5fl0kg/position] +peggy_denom = factory/inj1whxcxhncnftrc76w0zns3l6934rqfenj5fl0kg/position +decimals = 0 + +[factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon] +peggy_denom = factory/inj1wjtuzkprkc4gdf4r7dlh9gu96yyxml8qpzzy9p/elon +decimals = 6 + +[factory/inj1wl8fjknkq2ge4tgynls5kdkkmwstj5fm3ts7s4/BINJ] +peggy_denom = factory/inj1wl8fjknkq2ge4tgynls5kdkkmwstj5fm3ts7s4/BINJ +decimals = 6 + +[factory/inj1wm66m98g8yluvl7vzcmsq5fvh4c7eacs32u5xh/INJ] +peggy_denom = factory/inj1wm66m98g8yluvl7vzcmsq5fvh4c7eacs32u5xh/INJ +decimals = 6 + +[factory/inj1wrltqpkxk8w5whk09knfyq4tkx06j5c9553fwh/INJ] +peggy_denom = factory/inj1wrltqpkxk8w5whk09knfyq4tkx06j5c9553fwh/INJ +decimals = 6 + +[factory/inj1ws4f65dx7kmspn28v22lmta3hkfps9cqfjwkyj/INJ] +peggy_denom = factory/inj1ws4f65dx7kmspn28v22lmta3hkfps9cqfjwkyj/INJ +decimals = 6 + +[factory/inj1wud39wkdk6vlqy65v4ytqrmldagvaz8c7gtnjm/position] +peggy_denom = factory/inj1wud39wkdk6vlqy65v4ytqrmldagvaz8c7gtnjm/position +decimals = 0 + +[factory/inj1wx6k6wkamm5pudf43d8q77ug094rydd6gkg622/INJ] +peggy_denom = factory/inj1wx6k6wkamm5pudf43d8q77ug094rydd6gkg622/INJ +decimals = 6 + +[factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK] +peggy_denom = factory/inj1x8larhqwxyr39ytv38476rqpz723uy2ycc66cf/BONK +decimals = 6 + +[factory/inj1xaw8dvp6v05vsnxxwa4y7gpuddxhes97rqmcv6/position] +peggy_denom = factory/inj1xaw8dvp6v05vsnxxwa4y7gpuddxhes97rqmcv6/position +decimals = 0 + +[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] +peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi +decimals = 6 + +[factory/inj1xdmkzn2zpfh0rp38mjly8xza4xhx54vrlslqad/position] +peggy_denom = factory/inj1xdmkzn2zpfh0rp38mjly8xza4xhx54vrlslqad/position +decimals = 0 + +[factory/inj1xfl2jxuwpvpxxc5upxm8fxxzv6nxd65z5kpqny/position] +peggy_denom = factory/inj1xfl2jxuwpvpxxc5upxm8fxxzv6nxd65z5kpqny/position +decimals = 0 + +[factory/inj1xhzt72xa3pyk25chwa3kh5j2dpuwehmycukh38/test] +peggy_denom = factory/inj1xhzt72xa3pyk25chwa3kh5j2dpuwehmycukh38/test +decimals = 6 + +[factory/inj1xns9khp247zkasydzvkcvv7et2qrf679gkudmy/FOMO] +peggy_denom = factory/inj1xns9khp247zkasydzvkcvv7et2qrf679gkudmy/FOMO +decimals = 6 + +[factory/inj1xnw3266sqst4xatdgu7qme69rf58vnlj99vsty/INJ] +peggy_denom = factory/inj1xnw3266sqst4xatdgu7qme69rf58vnlj99vsty/INJ +decimals = 6 + +[factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk] +peggy_denom = factory/inj1xzjfandwwadxws0a8x2p2vfwg9lzyfksceuhxr/bonk +decimals = 18 + +[factory/inj1y4mmnuck96ffjswgd37963f5ch9kph8sk99zuj/position] +peggy_denom = factory/inj1y4mmnuck96ffjswgd37963f5ch9kph8sk99zuj/position +decimals = 0 + +[factory/inj1y5lrg2p5cmlne4jr8uj479ns05srq59cw99gm8/INJ] +peggy_denom = factory/inj1y5lrg2p5cmlne4jr8uj479ns05srq59cw99gm8/INJ +decimals = 6 + +[factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO] +peggy_denom = factory/inj1y6zxg76ltrjdx7xppvtrdqlc5ujyhfra8aqr3f/CROCO +decimals = 6 + +[factory/inj1yc2pc60avmdv3sfvamt27nk3kxhcxlf53q8ysr/position] +peggy_denom = factory/inj1yc2pc60avmdv3sfvamt27nk3kxhcxlf53q8ysr/position +decimals = 0 + +[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] +peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk +decimals = 6 + +[factory/inj1yg49drflp8vmf4hj07jy9c8wl2fmqrfq09etpm/position] +peggy_denom = factory/inj1yg49drflp8vmf4hj07jy9c8wl2fmqrfq09etpm/position +decimals = 0 + +[factory/inj1ykf3aln7wwx7la80z5xc7w572d7vwtq92x09h5/INJ] +peggy_denom = factory/inj1ykf3aln7wwx7la80z5xc7w572d7vwtq92x09h5/INJ +decimals = 6 + +[factory/inj1yq82w2mugv4qvuy863p2urrwqegde4fyksmcmj/position] +peggy_denom = factory/inj1yq82w2mugv4qvuy863p2urrwqegde4fyksmcmj/position +decimals = 0 + +[factory/inj1yqgc6sv5eyhkf3p3nynrq5lsffnwp5vwvwqgqf/position] +peggy_denom = factory/inj1yqgc6sv5eyhkf3p3nynrq5lsffnwp5vwvwqgqf/position +decimals = 0 + +[factory/inj1yqnt9aswsjdujxxdeyzm4twqchjtaw2ddrxkqv/position] +peggy_denom = factory/inj1yqnt9aswsjdujxxdeyzm4twqchjtaw2ddrxkqv/position +decimals = 0 + +[factory/inj1yt3dxjvwyq5f4hw86sadk5jd9nqu6dnml3v7sv/INJ] +peggy_denom = factory/inj1yt3dxjvwyq5f4hw86sadk5jd9nqu6dnml3v7sv/INJ +decimals = 6 + +[factory/inj1yu54sj0phd59dgcd023hhlezxmtzqwgf44c6ka/position] +peggy_denom = factory/inj1yu54sj0phd59dgcd023hhlezxmtzqwgf44c6ka/position +decimals = 0 + +[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/Test] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/Test +decimals = 6 + +[factory/inj1z3mux0g3fw2ggem5qnuqcy46nl5wwsdcm9q5eg/position] +peggy_denom = factory/inj1z3mux0g3fw2ggem5qnuqcy46nl5wwsdcm9q5eg/position +decimals = 0 + +[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN] +peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/SHURIKEN +decimals = 6 + +[factory/inj1z60w4nx27cyt8tygmwxe045aa5h8u0acupv3dl/position] +peggy_denom = factory/inj1z60w4nx27cyt8tygmwxe045aa5h8u0acupv3dl/position +decimals = 0 + +[factory/inj1z7mx2tc9ea4y2y0nx230pe7knm8fryk3rv6r2c/uLP] +peggy_denom = factory/inj1z7mx2tc9ea4y2y0nx230pe7knm8fryk3rv6r2c/uLP +decimals = 0 + +[factory/inj1ze3ad8k5aw7ejwlpvwfdht9yslnpfqez45sd3v/BCAT] +peggy_denom = factory/inj1ze3ad8k5aw7ejwlpvwfdht9yslnpfqez45sd3v/BCAT +decimals = 6 + +[factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY] +peggy_denom = factory/inj1zgpg4laenyplsjeqz4pxfhmsv55vcx70lf2sgz/MONKEY +decimals = 6 + +[factory/inj1zjd5nqyvyksjqzsc207v80pcd9a0r9fec8rvn6/INJ] +peggy_denom = factory/inj1zjd5nqyvyksjqzsc207v80pcd9a0r9fec8rvn6/INJ +decimals = 6 + +[factory/inj1zmlf85er8we52r9qsq8wdumwpkdrhqh0f0u27j/INJ] +peggy_denom = factory/inj1zmlf85er8we52r9qsq8wdumwpkdrhqh0f0u27j/INJ +decimals = 6 + +[factory/inj1zt0ts2z4r0sx0g3ae87ct9r9pgjmxexe4lj2h3/position] +peggy_denom = factory/inj1zt0ts2z4r0sx0g3ae87ct9r9pgjmxexe4lj2h3/position +decimals = 0 + +[factory/inj1zthvl3awskg6a7l2v4yq9srxjjatvl4ydesfhc/position] +peggy_denom = factory/inj1zthvl3awskg6a7l2v4yq9srxjjatvl4ydesfhc/position +decimals = 0 + +[factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk] +peggy_denom = factory/inj1zy0r4d9s4zmssym0u46j5vxqatt5k5phfxt6rf/bonk +decimals = 18 + +[factory/neutron133xakkrfksq39wxy575unve2nyehg5npx75nph/GOP] +peggy_denom = ibc/B6DEF77F4106DE5F5E1D5C7AA857392A8B5CE766733BA23589AD4760AF953819 +decimals = 0 + +[factory/neutron133xakkrfksq39wxy575unve2nyehg5npx75nph/MOO] +peggy_denom = ibc/572EB1D6454B3BF6474A30B06D56597D1DEE758569CC695FF628D4EA235EFD5D +decimals = 0 + +[factory/neutron154gg0wtm2v4h9ur8xg32ep64e8ef0g5twlsgvfeajqwghdryvyqsqhgk8e/APOLLO] +peggy_denom = ibc/1B47F9D980CBB32A87022E1381C15005DE942A71CB61C1B498DBC2A18F43A8FE +decimals = 0 + +[factory/osmo1q77cw0mmlluxu0wr29fcdd0tdnh78gzhkvhe4n6ulal9qvrtu43qtd0nh8/djjtga] +peggy_denom = ibc/50DC83F6AD408BC81CE04004C86BF457F9ED9BF70839F8E6BA6A3903228948D7 +decimals = 0 + +[factory/osmo1q77cw0mmlluxu0wr29fcdd0tdnh78gzhkvhe4n6ulal9qvrtu43qtd0nh8/test] +peggy_denom = ibc/40C510742D7CE7F5EB2EF894AA9AD5056183D80628A73A04B48708A660FD088D +decimals = 0 + +[factory/sei189adguawugk3e55zn63z8r9ll29xrjwca636ra7v7gxuzn98sxyqwzt47l/9fELvUhFo6yWL34ZaLgPbCPzdk9MD1tAzMycgH45qShH] +peggy_denom = ibc/8A8AA255C5C0C1C58A35D74FE992620E10292BDCE1D2C7F8C7C439D642C42040 +decimals = 0 + +[factory/sei189adguawugk3e55zn63z8r9ll29xrjwca636ra7v7gxuzn98sxyqwzt47l/Hq4tuDzhRBnxw3tFA5n6M52NVMVcC19XggbyDiJKCD6H] +peggy_denom = ibc/247FF5EB358DA07AE08BC0E975E1AD955494A51B6C11452271A216E67AF1E4D1 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/2Wb6ueMFc9WLc2eyYVha6qnwHKbwzUXdooXsg6XXVvos] +peggy_denom = ibc/8D59D4FCFE77CA4F11F9FD9E9ACA645197E9BFFE48B05ADA172D750D3C5F47E7 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/3wftBtqKjWFXFWhtsG6fjaLTbpnaLhN3bhfSMdvEVdXT] +peggy_denom = ibc/6C1F980F3D295DA21EC3AFD71008CC7674BA580EBEDBD76FD5E25E481067AF09 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/576uQXyQrjFdqzDRvBnXihn467ipuc12a5yN8v8H99f8] +peggy_denom = ibc/0F18C33D7C2C28E24A67BEFA2689A1552DCE9856E1BB3A16259403D5398EB23C +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/5MeVz64BbVszQaCqCTQ2zfWTmnQ5uKwNMaDDSJDRuqTY] +peggy_denom = ibc/B7936BF07D9035C66C83B81B61672A05F30DE4196BE0A016A6CD4EDD20CB8F24 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/5cKyTGhoHu1VFNPd6iXdKYTm3CkTtz1MeCdYLUGgF4zt] +peggy_denom = ibc/3C2EEA34EAF26698EE47A58FA2142369CE42E105E8452E1C074A32D34431484B +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/6wMmXNYNi8tYB32cCAGPoPrr6nHLKx4j9kpGv5moBnuT] +peggy_denom = ibc/13055E6ECA7C05091DD7B93DF81F0BB12479779DE3B9410CF445CC34B8361664 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/7KQX8bVDa8W4EdpED8oHqhSfJsgF79XDcxcd8ELUws7G] +peggy_denom = ibc/0A44483A7AFF7C096B2A4FB00A12E912BE717CD7703CF7F33ED99DB35230D404 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/8iuAc6DSeLvi2JDUtwJxLytsZT8R19itXebZsNReLLNi] +peggy_denom = ibc/6D434846D1535247426AA917BBEC53BE1A881D49A010BF7EDACBFCD84DE4A5B8 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/8sYgCzLRJC3J7qPn2bNbx6PiGcarhyx8rBhVaNnfvHCA] +peggy_denom = ibc/1E4DACCD788219206F93485352B39DF83F6268F389997141498FAFB5BA06493B +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/9weDXCi5EPvG2xk6VTiKKxhijYuq79U6UzPwBniF1cET] +peggy_denom = ibc/C2C022DC63E598614F39C575BC5EF4EC54E5D081365D9BE090D75F743364E54D +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/AsSyBMk2D3FmntrGtd539XWDGwmJ7Uv8vVXQTwTjyqBw] +peggy_denom = ibc/7A39488A287BF7DBC4A33DDA2BE3DDAC0F281FBCFF23934B7194893C136AAA99 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/BSWyXu2ZJFGaSau3aLDwNZMCDwenWhwPfWALpYna7WzV] +peggy_denom = ibc/CB8E08B5C734BDA8344DDCFE5C9CCCC91521763BA1BC9F61CADE6E8F0B556E3D +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/BjqmpMWFUphe7Qr3v8rLCZh8aoH2qfi2S1z8649b62TY] +peggy_denom = ibc/4F72D2F3EAFB61D8615566B3C80AEF2778BB14B648929607568C79CD90416188 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/CroEB5zf21ea42ezHnpcv1jj1jANLY4A1sQL6y4UsHGR] +peggy_denom = ibc/8E7F71072C97C5D8D19978C7E38AE90C0FBCCE551AF95FEB000EA9EBBFD6396B +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/Cv4gKZrfUhNZtcjUDgdodrup397e9Nm7hMaqFwSCPVjj] +peggy_denom = ibc/44EC7BD858EC12CE9C2F882119F522937264B50DD26DE73270CA219242E9C1B2 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/EfeMLPMU8BcwMbzNy5DfbYCzRDvDVdo7nLZt7GZG4a8Y] +peggy_denom = ibc/366870891D57A5076D117307C42F597A000EB757793A9AB58019660B896292AA +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/Eh6t4Hgff8mveKYH5Csa7zyoq5hgKNnLF8qq9YhSsu7j] +peggy_denom = ibc/AA2394D484EADAC0B982A8979B18109FAEDD5D47E36D8153955369FEC16D027B +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/Ej6p2SmCeEnkLsZR2pwSCK9L1LUQWgKsMd3iVdYMFaJq] +peggy_denom = ibc/6912080A54CAB152D10CED28050E6DBE87B49E4F77D6BA6D54A05DBF4C3CCA88 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/F6QdZRjBTFmK1BNMrws1D9uPqQkHE25qqR2bMpeTuLjb] +peggy_denom = ibc/473D128E740A340B0663BD09CFC9799A0254564448B62CAA557D65DB23D0FCCD +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/FrbRcKDffWhKiHimzrWBpQRyM65uJkYDSf4J3QksasJ9] +peggy_denom = ibc/E2C56B24C032D2C54CF12EAD43432D65FDF22C64E819F97AAD3B141829EF3E60 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/G4b8zJq7EUqVTwgbokQiHyYa5PzhQ1bLiyAeK3Yw9en8] +peggy_denom = ibc/683CD81C466CF3678E78B5E822FA07F0C23107B1F8FA06E80EAD32D569C4CF84 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/G8PQ2heLLT8uBjoCfkkD3pNmTGZo6hNtSEEuJUGn9daJ] +peggy_denom = ibc/65CF217605B92B4CD37AC22955C5C59DE39CFD2A7A2E667861CCAFC810C4F5BD +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/GGh9Ufn1SeDGrhzEkMyRKt5568VbbxZK2yvWNsd6PbXt] +peggy_denom = ibc/389982EAC0D365D49FABD2DA625B9EB2C5D4369EFC09FA05D7D324055A9B2FE7 +decimals = 0 + +[factory/wormhole14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les00fpjx/HJk1XMDRNUbRrpKkNZYui7SwWDMjXZAsySzqgyNcQoU3] +peggy_denom = ibc/126D6F24002F098804B70C133E0BBCEE40EE2ED489373C648805FEA4FF206333 +decimals = 0 + +[factory:kujira13ryry75s34y4sl5st7g5mhk0he8rc2nn7ah6sl:SPERM] +peggy_denom = ibc/EBC2F00888A965121201A6150B7C55E0941E49438BC7F02385A632D6C4E68E2A +decimals = 0 + +[factory:kujira1e224c8ry0nuun5expxm00hmssl8qnsjkd02ft94p3m2a33xked2qypgys3:urcpt] +peggy_denom = ibc/49994E6147933B46B83CCEDE3528C6B3E5960ECE5A85548C2A519CF3B812E8B9 +decimals = 0 + +[factory:kujira1jelmu9tdmr6hqg0d6qw4g6c9mwrexrzuryh50fwcavcpthp5m0uq20853h:urcpt] +peggy_denom = ibc/E970A80269F0867B0E9C914004AB991E6AF94F3EF2D4E1DFC92E140ACB6BBD5C +decimals = 0 + +[factory:kujira1yntegc5v3tvl0xfrde0rupnt9kfnx0sy9lytge9g2mryjknudk6qg4zyw9:urcpt] +peggy_denom = ibc/D4D75686C76511349744536403E94B31AC010EB6EA1B579C01B2D64B6888E068 +decimals = 0 + +[faot] +peggy_denom = inj1vnhhrcnnnr6tq96eaa8gcsuaz55ugnhs3dmfqq +decimals = 18 + +[fatPEPE] +peggy_denom = factory/inj1an9qflgvpvjdhczce6xwrh4afkaap77c72k4yd/fatpepe +decimals = 6 + +[fff] +peggy_denom = factory/inj1xy7dcllc7wn5prcy73xr7xhpt9zwg49c6szqcz/fff +decimals = 6 + +[fiftycent] +peggy_denom = inj1rtgfdnja2xav84ta0twq8cmmvkqzycnu9uxzw5 +decimals = 18 + +[fmXEN] +peggy_denom = inj14vluf5wc7tsptnfzrjs9g579uyp9gvvlwre5e4 +decimals = 8 + +[foo] +peggy_denom = factory/inj12vxhuaamfs33sxgnf95lxvzy9lpugpgjsrsxl3/foo +decimals = 6 + +[footjob] +peggy_denom = inj1gn7tah4p0uvgmtwgwe5lp9q7ce8d4yr8jxrfcv +decimals = 18 + +[fox] +peggy_denom = factory/inj1ddmyuzh42n8ymyhcm5jla3aaq9tucjnye02dlf/fox +decimals = 6 + +[frINJa] +peggy_denom = factory/inj1sm0feg2fxpmx5yg3ywzdzyn0s93m6d9dt87jf5/frINJa +decimals = 7 + +[franklin] +peggy_denom = inj1zd0043cf6q7yft07aaqgsurgh53xy5gercpzuu +decimals = 18 + +[gay] +peggy_denom = inj15x48ts4jw429zd9vvkwxf0advg9j24z2q948fl +decimals = 18 + +[gayasf] +peggy_denom = inj1qu6eldq9ftz2wvr43848ff8x5586xm0639kg7a +decimals = 18 + +[get] +peggy_denom = factory/inj1ldee0qev4khjdpw8wpqpyeyw0n0z8nnqtc423g/get +decimals = 6 + +[ginj] +peggy_denom = factory/inj1r4usuj62gywdwhq9uvx6tg0ywqpppcjqu7z4js/ginj +decimals = 6 + +[gipsyCOINS] +peggy_denom = inj1pyeutpz66lhapppt2ny36s57zfspglqtvdwywd +decimals = 6 + +[godzilla] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/godzilla +decimals = 6 + +[gravity0xA0b73E1Ff0B80914AB6fe0444E65848C4C34450b] +peggy_denom = ibc/FF8F4C5D1664F946E88654921D6C1E81D5C167B8A58A4E75B559BAA2DBBF0101 +decimals = 0 + +[gravity0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48] +peggy_denom = ibc/7C2AA3086423029B3E915B5563975DB87EF2E552A40F996C7F6D19FFBD5B2AEA +decimals = 0 + +[gravity0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] +peggy_denom = ibc/E7C0089E196DB00A88D6EA6D1CD87D80C320D721ACFAEFF4342CEF15AE9EDAE0 +decimals = 0 + +[gravity0xe28b3B32B6c345A34Ff64674606124Dd5Aceca30] +peggy_denom = ibc/57E7FEFD5872F89EB1C792C4B06B51EA565AC644EA2F64B88F8FC40704F8E9C4 +decimals = 0 + +[gto] +peggy_denom = inj1ehnt0lcek8wdf0xj7y5mmz7nzr8j7ytjgk6l7g +decimals = 18 + +[h2o] +peggy_denom = factory/inj1utlxkwfxhmfc826gu07w20mvguysavz72edy4n/fbi +decimals = 6 + +[hINJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 18 + +[httuy] +peggy_denom = inj1996tdgklvleuja56gfpv9v3cc2uflmm9vavw05 +decimals = 18 + +[hug] +peggy_denom = inj1ncjqkvnxpyyhvm475std34eyn5c7eydpxxagds +decimals = 18 + +[ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542] +peggy_denom = ibc/02683677B1A58ECF74FFF25711E09735C44153FE9490BE5EF9FD21DE82BCB542 +decimals = 6 + +[ibc/063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8] +peggy_denom = ibc/063F4461F7317CFF10F50AB044E44932D22AAD84FA7107082744946E6DB7B7A8 +decimals = 6 + +[ibc/0D2C8BD2BF7C53A7873D5D038273DF6E4E44092193202021308B90C6D035A98A] +peggy_denom = ibc/0D2C8BD2BF7C53A7873D5D038273DF6E4E44092193202021308B90C6D035A98A +decimals = 0 + +[ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80] +peggy_denom = ibc/0F3A724673F682CF7812D0ED1A0C41D344C09E94C939E79D12712DC7C0676E80 +decimals = 6 + +[ibc/10CE34C15047F36C29C0644383FD0908646D67C198A35CF089AD53902FE3CA28] +peggy_denom = ibc/10CE34C15047F36C29C0644383FD0908646D67C198A35CF089AD53902FE3CA28 +decimals = 0 + +[ibc/10E1BF4C7142E07AA8CE7C91292E89B806F31263FCE48E966385FD47B53C1FFA] +peggy_denom = ibc/10E1BF4C7142E07AA8CE7C91292E89B806F31263FCE48E966385FD47B53C1FFA +decimals = 0 + +[ibc/15FE2BB9D596F81B40D72E95953E0CB6E2280813799AED7058D499E0C2B561C6] +peggy_denom = ibc/15FE2BB9D596F81B40D72E95953E0CB6E2280813799AED7058D499E0C2B561C6 +decimals = 0 + +[ibc/1D4FB764C95C003A2E274D52EBDA0590DE2CD5DF21BA56C06E285BC1167E5073] +peggy_denom = ibc/1D4FB764C95C003A2E274D52EBDA0590DE2CD5DF21BA56C06E285BC1167E5073 +decimals = 0 + +[ibc/2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D] +peggy_denom = ibc/2138C4EA63EFD757D42F75B90177FE34A9508DC0046DC48844CFF26659AE7A9D +decimals = 5 + +[ibc/334B68D79945DEE86E2F8E20D8C744E98C87D0FED274D9684AA35ABD5F661699] +peggy_denom = ibc/334B68D79945DEE86E2F8E20D8C744E98C87D0FED274D9684AA35ABD5F661699 +decimals = 0 + +[ibc/359EA1E69EF84A02FD453B9FC462F985287F51310FF2E3ECEDABFDF7D3EAC91A] +peggy_denom = ibc/359EA1E69EF84A02FD453B9FC462F985287F51310FF2E3ECEDABFDF7D3EAC91A +decimals = 0 + +[ibc/365501AC8CD65F1BCB22C4A546458C3CA702985A30443120992B61483399B836] +peggy_denom = ibc/365501AC8CD65F1BCB22C4A546458C3CA702985A30443120992B61483399B836 +decimals = 0 + +[ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675] +peggy_denom = ibc/377F82FD1E4F6408B1CB7C8BFF9134A1F2C5D5E5CC2760BAD972AF0F7F6D4675 +decimals = 6 + +[ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8] +peggy_denom = ibc/433133545CF68587777A01C3EFCF720EFE1B42F14AB2153D349DC4559984F2E8 +decimals = 6 + +[ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82] +peggy_denom = ibc/45C1BDD0F44EA61B79E6F07C61F6FBC601E496B281316C867B542D7964A4BD82 +decimals = 6 + +[ibc/465B094023AC8545B0E07163C7111D4A876978712D8A33E546AADDDB4E11F265] +peggy_denom = ibc/465B094023AC8545B0E07163C7111D4A876978712D8A33E546AADDDB4E11F265 +decimals = 0 + +[ibc/46AA3E75F15D7EFA00BF6747E8CE668F6A515182B2355942C567F47B88761072] +peggy_denom = ibc/46AA3E75F15D7EFA00BF6747E8CE668F6A515182B2355942C567F47B88761072 +decimals = 0 + +[ibc/46FFF1A18F4AE92224E19065630685A16837C17FA3C59C23FE7012982216D0D5] +peggy_denom = ibc/46FFF1A18F4AE92224E19065630685A16837C17FA3C59C23FE7012982216D0D5 +decimals = 0 + +[ibc/4A1CC41B019E6D412E3A337A1E5C1F301E9D2CAE8EA8EF449538CBA4BED6E2FA] +peggy_denom = ibc/4A1CC41B019E6D412E3A337A1E5C1F301E9D2CAE8EA8EF449538CBA4BED6E2FA +decimals = 0 + +[ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F] +peggy_denom = ibc/4C8A332AE4FDE42709649B5F9A2A336192158C4465DF74B4513F5AD0C583EA6F +decimals = 8 + +[ibc/4CE2DDC2BE301B92DD08ECBBF39910A4F055DC68156132B222B8CEF651941D31] +peggy_denom = ibc/4CE2DDC2BE301B92DD08ECBBF39910A4F055DC68156132B222B8CEF651941D31 +decimals = 0 + +[ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5] +peggy_denom = ibc/4D29F082A3C083C85C886B92A1EB438C3FC0632E5F9E4D875479BEB7B9511BD5 +decimals = 6 + +[ibc/4D5A68067A682C1EFEAE08E2355A2DE229E62145943E53CAC97EF5E1DE430072] +peggy_denom = ibc/4D5A68067A682C1EFEAE08E2355A2DE229E62145943E53CAC97EF5E1DE430072 +decimals = 0 + +[ibc/557C8BDED38445765DAEBEB4EBBFC88F8ACBD9C414F95A1795AB45017F4A1786] +peggy_denom = ibc/557C8BDED38445765DAEBEB4EBBFC88F8ACBD9C414F95A1795AB45017F4A1786 +decimals = 0 + +[ibc/5B8F90B1E3A33B45FF7AE086621456E8C2C162CABCC95406001322818AE92B63] +peggy_denom = ibc/5B8F90B1E3A33B45FF7AE086621456E8C2C162CABCC95406001322818AE92B63 +decimals = 0 + +[ibc/5B9385ABA4F72BD0CD5D014BBF58C48B103C3FAF82A6283AA689AC76F5A80F66] +peggy_denom = ibc/5B9385ABA4F72BD0CD5D014BBF58C48B103C3FAF82A6283AA689AC76F5A80F66 +decimals = 0 + +[ibc/60DC18B7771F14C0069205E538C0758FED60E92077F19C9485203743BC174C77] +peggy_denom = ibc/60DC18B7771F14C0069205E538C0758FED60E92077F19C9485203743BC174C77 +decimals = 0 + +[ibc/63F1FCA502ADCA376A83257828085E542A10CD5CF3CF7FB3CFB33E055958EAB9] +peggy_denom = ibc/63F1FCA502ADCA376A83257828085E542A10CD5CF3CF7FB3CFB33E055958EAB9 +decimals = 0 + +[ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201] +peggy_denom = ibc/64431EE79F3216B8F7773A630549ADA852EA8E4B545D22BD35B0BF56FD5D5201 +decimals = 6 + +[ibc/646315E3B0461F5FA4C5C8968A88FC45D4D5D04A45B98F1B8294DD82F386DD85] +peggy_denom = ibc/646315E3B0461F5FA4C5C8968A88FC45D4D5D04A45B98F1B8294DD82F386DD85 +decimals = 0 + +[ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6] +peggy_denom = ibc/64D95807CA13CD9EC5BEF9D3709138A14295DDBDFBC9EF58A9FFE34B911545E6 +decimals = 6 + +[ibc/66DB244867B50966FCD71C0457A9C0E239AB8228EFF2E60216A83B8710B23EBE] +peggy_denom = ibc/66DB244867B50966FCD71C0457A9C0E239AB8228EFF2E60216A83B8710B23EBE +decimals = 0 + +[ibc/69C979B0833FC4B34A9FCF6B75F2EAA4B93507E7F8629C69C03081C21837D038] +peggy_denom = ibc/69C979B0833FC4B34A9FCF6B75F2EAA4B93507E7F8629C69C03081C21837D038 +decimals = 0 + +[ibc/6BBCFE43BE414294606BF4B05BB9EB18D685A9183DF5FD8CC5154879B8279C8D] +peggy_denom = ibc/6BBCFE43BE414294606BF4B05BB9EB18D685A9183DF5FD8CC5154879B8279C8D +decimals = 0 + +[ibc/6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4] +peggy_denom = ibc/6C55598A43348E41BCE1CE3C9313208CB953A036955869C47C3265A3BE2BB8D4 +decimals = 18 + +[ibc/6E2FE0B25FE6DE428D16B25D42832D13B8A6DF65B40844EA4AB49C94896BB932] +peggy_denom = ibc/6E2FE0B25FE6DE428D16B25D42832D13B8A6DF65B40844EA4AB49C94896BB932 +decimals = 0 + +[ibc/705B1CA519312502768926783464F5E1581D8626A837C55BD62B21ED121FB68F] +peggy_denom = ibc/705B1CA519312502768926783464F5E1581D8626A837C55BD62B21ED121FB68F +decimals = 0 + +[ibc/710DA81083B469FE562770EE16DCA2DB088D5796937BCB548DF27DA87156C5B3] +peggy_denom = ibc/710DA81083B469FE562770EE16DCA2DB088D5796937BCB548DF27DA87156C5B3 +decimals = 0 + +[ibc/72C208D790F59429C66542C648D69EDA1DC8A81C4B869C11444D906233678D3D] +peggy_denom = ibc/72C208D790F59429C66542C648D69EDA1DC8A81C4B869C11444D906233678D3D +decimals = 0 + +[ibc/745D31EA5FF54979B57A0797FF3E1B767E624D32498C9735A13E31A53DBC17F5] +peggy_denom = ibc/745D31EA5FF54979B57A0797FF3E1B767E624D32498C9735A13E31A53DBC17F5 +decimals = 0 + +[ibc/74BFF6BAC652D00C8F3382B1D1CFF086A91F1AF281E84F849A28358D6B81915B] +peggy_denom = ibc/74BFF6BAC652D00C8F3382B1D1CFF086A91F1AF281E84F849A28358D6B81915B +decimals = 0 + +[ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5] +peggy_denom = ibc/7965483148018AFAA12DC569959897E7A5E474F4B41A87FFC5513B552C108DB5 +decimals = 6 + +[ibc/7A007AE05C3DDE189E554697450A2BF8FFF380E88F7BA6DC7DF39E329E80A49D] +peggy_denom = ibc/7A007AE05C3DDE189E554697450A2BF8FFF380E88F7BA6DC7DF39E329E80A49D +decimals = 0 + +[ibc/7A073FD73CCAD05DCF4571B92BC1E16D6E6211EF79A5AD1FEE6E5464D8348F27] +peggy_denom = ibc/7A073FD73CCAD05DCF4571B92BC1E16D6E6211EF79A5AD1FEE6E5464D8348F27 +decimals = 0 + +[ibc/7A2FE4D6F3156F60E38623C684C21A9F4684B730F035D75712928F71B0DB08B5] +peggy_denom = ibc/7A2FE4D6F3156F60E38623C684C21A9F4684B730F035D75712928F71B0DB08B5 +decimals = 0 + +[ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6] +peggy_denom = ibc/7C4A4847D6898FA8744A8F2A4FC287E98CA5A95E05842B897B3FB301103C8AB6 +decimals = 6 + +[ibc/7CF12F727C8C8A6589016D8565830B6DE0D87F70ED1A2C80270B2ABC77426DE7] +peggy_denom = ibc/7CF12F727C8C8A6589016D8565830B6DE0D87F70ED1A2C80270B2ABC77426DE7 +decimals = 0 + +[ibc/819B5FB8FA371CC26976CAF8CDF54F3B146060400AD55591B5F1BE3036E915D8] +peggy_denom = ibc/819B5FB8FA371CC26976CAF8CDF54F3B146060400AD55591B5F1BE3036E915D8 +decimals = 0 + +[ibc/81B7F37966A8066DFAF1B2F07A3D3AFBBA2AAC479B1F0D4135AD85725592D7B1] +peggy_denom = ibc/81B7F37966A8066DFAF1B2F07A3D3AFBBA2AAC479B1F0D4135AD85725592D7B1 +decimals = 0 + +[ibc/83601F79992DCDF21ECCE0D876C6E1E9578AB97D77CD3E975B92B715CA851F19] +peggy_denom = ibc/83601F79992DCDF21ECCE0D876C6E1E9578AB97D77CD3E975B92B715CA851F19 +decimals = 0 + +[ibc/85C83BD4F9557A367AA5D890D58CA60E6691833679167ED1E65A00268E480287] +peggy_denom = ibc/85C83BD4F9557A367AA5D890D58CA60E6691833679167ED1E65A00268E480287 +decimals = 0 + +[ibc/8A58946864367695DE89CE93634F5D76CCF7C8995915A0388FDF4D15A8BA8C4B] +peggy_denom = ibc/8A58946864367695DE89CE93634F5D76CCF7C8995915A0388FDF4D15A8BA8C4B +decimals = 0 + +[ibc/8B42C90767030357E99BE35BB5BCBD5A69F6E9E20F4A9FD0498823FD10FF86F9] +peggy_denom = ibc/8B42C90767030357E99BE35BB5BCBD5A69F6E9E20F4A9FD0498823FD10FF86F9 +decimals = 0 + +[ibc/8D0DA5929A6E7B901319D05D5434FB4BEB28459D72470A3A1C593A813FE461C8] +peggy_denom = ibc/8D0DA5929A6E7B901319D05D5434FB4BEB28459D72470A3A1C593A813FE461C8 +decimals = 0 + +[ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE] +peggy_denom = ibc/8D311D92BCD4E87F145DEB9DDA339416DEF7E13571D92A3521CAB0BF62760FBE +decimals = 6 + +[ibc/948D16A08718820A10DE8F7B35CE60409E7B5DC61043E88BB368C776147E70E8] +peggy_denom = ibc/948D16A08718820A10DE8F7B35CE60409E7B5DC61043E88BB368C776147E70E8 +decimals = 0 + +[ibc/949FD45325A74482FB0FC29CB19B744CED7340511EDA8E4F9337D9500F29D169] +peggy_denom = ibc/949FD45325A74482FB0FC29CB19B744CED7340511EDA8E4F9337D9500F29D169 +decimals = 0 + +[ibc/95B32740756E6DF2EAA242978EBF0FF6F3B632B8601DC12CB912D5957E8AB118] +peggy_denom = ibc/95B32740756E6DF2EAA242978EBF0FF6F3B632B8601DC12CB912D5957E8AB118 +decimals = 0 + +[ibc/95E6CD4D649BD33F938B2B7B2BED3CA6DC78F7765F7E5B01329D92DD22259AF3] +peggy_denom = ibc/95E6CD4D649BD33F938B2B7B2BED3CA6DC78F7765F7E5B01329D92DD22259AF3 +decimals = 0 + +[ibc/999FD9811C895A63FE1A2FCDDA24DEC6AF7D70D907BD97E9C455BDFD57B373CA] +peggy_denom = ibc/999FD9811C895A63FE1A2FCDDA24DEC6AF7D70D907BD97E9C455BDFD57B373CA +decimals = 0 + +[ibc/9CAF108FCC3EB3815E029462100828461FFAA829002C4366716437F8C07F5F9C] +peggy_denom = ibc/9CAF108FCC3EB3815E029462100828461FFAA829002C4366716437F8C07F5F9C +decimals = 0 + +[ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340] +peggy_denom = ibc/9D9B59CA222E54842555DBD81B22EEABE61796D4C6EC8AB47A97C388333AC340 +decimals = 6 + +[ibc/A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3] +peggy_denom = ibc/A07BB73539F556DA5238F1B7E9471B34DD19897B1EE7050B959989F13EFE73B3 +decimals = 8 + +[ibc/A211992C4D639DD2E59A45850BFC9CF1304519C1B7F46D7EDCFC1CFDFE9BFD31] +peggy_denom = ibc/A211992C4D639DD2E59A45850BFC9CF1304519C1B7F46D7EDCFC1CFDFE9BFD31 +decimals = 0 + +[ibc/A2C433944E7989D2B32565DDF6B6C2806B2AF4500675AA39D3C3A061D37CE576] +peggy_denom = ibc/A2C433944E7989D2B32565DDF6B6C2806B2AF4500675AA39D3C3A061D37CE576 +decimals = 0 + +[ibc/A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7] +peggy_denom = ibc/A83851234A83F3FE51CDB44FF1A4435472A197C096EF9E7312B69E67C16B7FB7 +decimals = 6 + +[ibc/AB1E9C841105F28E9B70ED5EF1239B2D5E567F6E16818D87EFFA75E62778C8E4] +peggy_denom = ibc/AB1E9C841105F28E9B70ED5EF1239B2D5E567F6E16818D87EFFA75E62778C8E4 +decimals = 0 + +[ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5] +peggy_denom = ibc/ABF6109CA87727E3945C2DB5EA17D819D57041A91BFB0BC73320AFE097C230F5 +decimals = 6 + +[ibc/AC45D6359281E50A7498B10B9F38B7BE4868628E45E531D68F77422EFE430365] +peggy_denom = ibc/AC45D6359281E50A7498B10B9F38B7BE4868628E45E531D68F77422EFE430365 +decimals = 0 + +[ibc/AC8181FE5ECAC9A01FBC5C4A3A681537A01A95007C32C2FAF3CF7101E9DAE081] +peggy_denom = ibc/AC8181FE5ECAC9A01FBC5C4A3A681537A01A95007C32C2FAF3CF7101E9DAE081 +decimals = 0 + +[ibc/AE198193A04103DD1AE4C8698E25DEDCA81396A4C484DA19E4221B3C3A3D2F2A] +peggy_denom = ibc/AE198193A04103DD1AE4C8698E25DEDCA81396A4C484DA19E4221B3C3A3D2F2A +decimals = 0 + +[ibc/AE6D267A64EEFE1430D11221D579C91CFC6D7B0E7F885874AE1BC715FE8753E1] +peggy_denom = ibc/AE6D267A64EEFE1430D11221D579C91CFC6D7B0E7F885874AE1BC715FE8753E1 +decimals = 0 + +[ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69] +peggy_denom = ibc/B024EC4AE846F690CB46C1CE886BE7DCE27CBBB6CE1E4EFBA4AA764E07B81A69 +decimals = 6 + +[ibc/B5BB79AC621108184E03AD6B82456EBC96041B877A1652445CF32619CC9DA5C1] +peggy_denom = ibc/B5BB79AC621108184E03AD6B82456EBC96041B877A1652445CF32619CC9DA5C1 +decimals = 0 + +[ibc/B99CCD408EB17CBC3D295647F0D3A035576B109648ED833D4039B42C09DB4BDB] +peggy_denom = ibc/B99CCD408EB17CBC3D295647F0D3A035576B109648ED833D4039B42C09DB4BDB +decimals = 0 + +[ibc/BA26BE85B9D5F046FC7071ED0F77053662A4B2F5B7552B3834A3F1B2DD3BD18F] +peggy_denom = ibc/BA26BE85B9D5F046FC7071ED0F77053662A4B2F5B7552B3834A3F1B2DD3BD18F +decimals = 0 + +[ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58] +peggy_denom = ibc/BCE43BA530FBE35282B62C1E1EA4AD1F51522C61D40FB761005E1A02F18E0E58 +decimals = 6 + +[ibc/BDDF86413BCEAD3660A60F2B5B5C1D95635FA76B3E510924FEE2F6890CBD7E14] +peggy_denom = ibc/BDDF86413BCEAD3660A60F2B5B5C1D95635FA76B3E510924FEE2F6890CBD7E14 +decimals = 0 + +[ibc/BE3E2A75AFBA5F56017D7BB68FBAB013E08BF1633F92528197286C26967FBF42] +peggy_denom = ibc/BE3E2A75AFBA5F56017D7BB68FBAB013E08BF1633F92528197286C26967FBF42 +decimals = 0 + +[ibc/BE749147EF2813020A5A77D29183336CFAA1A53B67E522EF103D6803DE0E084B] +peggy_denom = ibc/BE749147EF2813020A5A77D29183336CFAA1A53B67E522EF103D6803DE0E084B +decimals = 0 + +[ibc/BE8166C09385A65A64366092FA14CEAD171EBB8E2464400196A1B19B4DC3AD50] +peggy_denom = ibc/BE8166C09385A65A64366092FA14CEAD171EBB8E2464400196A1B19B4DC3AD50 +decimals = 0 + +[ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536] +peggy_denom = ibc/C2025C1D34ED74CD6F9DF86CD650D92219AF645E9D0ADFFACF4E2CBECE649536 +decimals = 6 + +[ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546] +peggy_denom = ibc/C35A94A42FEDA8E01903CD7A78FB33AE60B2064C0007BF2E4FD5A6368BDBC546 +decimals = 6 + +[ibc/C3BD5051E685B9A447352FB2D5773F8E4A015521CBD0A534B3F514FCA17C9030] +peggy_denom = ibc/C3BD5051E685B9A447352FB2D5773F8E4A015521CBD0A534B3F514FCA17C9030 +decimals = 0 + +[ibc/C443ADA9C3388000268B8B892A07AB6838A904E1CCA2A1F084CB9572CA66F0E2] +peggy_denom = ibc/C443ADA9C3388000268B8B892A07AB6838A904E1CCA2A1F084CB9572CA66F0E2 +decimals = 0 + +[ibc/C49B72C4E85AE5361C3E0F0587B24F509CB16ECEB8970B6F917D697036AF49BE] +peggy_denom = ibc/C49B72C4E85AE5361C3E0F0587B24F509CB16ECEB8970B6F917D697036AF49BE +decimals = 0 + +[ibc/C508488741426E40AAE98E374F6D8DEA733A391D3388EBEC055F1C2A6845CBCA] +peggy_denom = ibc/C508488741426E40AAE98E374F6D8DEA733A391D3388EBEC055F1C2A6845CBCA +decimals = 0 + +[ibc/C7132831617D38D152402A1F0E3B98A719C8288423A5116167E03A51D9B8B6D0] +peggy_denom = ibc/C7132831617D38D152402A1F0E3B98A719C8288423A5116167E03A51D9B8B6D0 +decimals = 0 + +[ibc/C740C029985A03309A990268DEC5084C53F185A99C0A42F1D61D7A89DE905230] +peggy_denom = ibc/C740C029985A03309A990268DEC5084C53F185A99C0A42F1D61D7A89DE905230 +decimals = 0 + +[ibc/C8099767548EA68F722AD0F8A8C807A5E6B6A8CA0A6FD7B8BD9B1AE96D19AC3E] +peggy_denom = ibc/C8099767548EA68F722AD0F8A8C807A5E6B6A8CA0A6FD7B8BD9B1AE96D19AC3E +decimals = 0 + +[ibc/C9EC3080B046D49949239E1704522EE8B7BE0A668027028059A7FE7BC20B0976] +peggy_denom = ibc/C9EC3080B046D49949239E1704522EE8B7BE0A668027028059A7FE7BC20B0976 +decimals = 6 + +[ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C] +peggy_denom = ibc/CA0B808874A9890C171944FA44B35287E9701402C732FE5B2C6371BA8113462C +decimals = 6 + +[ibc/CB9BA999A7CDA4CE00784BFF705A1D0BDB95AD80334FD0F95A5BA306078C96E9] +peggy_denom = ibc/CB9BA999A7CDA4CE00784BFF705A1D0BDB95AD80334FD0F95A5BA306078C96E9 +decimals = 0 + +[ibc/CC610E1295BCF3ADE3C3DD4ABF3496C6EAA7541A1E45696E9D642D7B0A27B127] +peggy_denom = ibc/CC610E1295BCF3ADE3C3DD4ABF3496C6EAA7541A1E45696E9D642D7B0A27B127 +decimals = 0 + +[ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4] +peggy_denom = ibc/CDA55861E9E491479CB52D5C89F942F5EAF221F80B7CDDBBA8EE94D3658B03B4 +decimals = 6 + +[ibc/CFD97474BEB91453470ABF422E94B4C55ACF2CBA300B1FE7ED494DB5F5E012B1] +peggy_denom = ibc/CFD97474BEB91453470ABF422E94B4C55ACF2CBA300B1FE7ED494DB5F5E012B1 +decimals = 6 + +[ibc/D0474D169562F9773959C7CF69ED413D77883F5B958BD52B5D31DE7F9CB64F9E] +peggy_denom = ibc/D0474D169562F9773959C7CF69ED413D77883F5B958BD52B5D31DE7F9CB64F9E +decimals = 0 + +[ibc/D18907CCF379EEA71AE2C3725A135AE678A67A35B7C6556A77A4E0B3520F7854] +peggy_denom = ibc/D18907CCF379EEA71AE2C3725A135AE678A67A35B7C6556A77A4E0B3520F7854 +decimals = 0 + +[ibc/D208E775E677BAC87EB85C359E7A6BD123C7E6F0709D34DD4D8A1650CED77A77] +peggy_denom = ibc/D208E775E677BAC87EB85C359E7A6BD123C7E6F0709D34DD4D8A1650CED77A77 +decimals = 0 + +[ibc/D24B4564BCD51D3D02D9987D92571EAC5915676A9BD6D9B0C1D0254CB8A5EA34] +peggy_denom = ibc/D24B4564BCD51D3D02D9987D92571EAC5915676A9BD6D9B0C1D0254CB8A5EA34 +decimals = 0 + +[ibc/D2E5F3E4E591C72C9E36CFA9EF962D58165D4CF8D63F4FCA64CA6833AF9486AF] +peggy_denom = ibc/D2E5F3E4E591C72C9E36CFA9EF962D58165D4CF8D63F4FCA64CA6833AF9486AF +decimals = 0 + +[ibc/D3AAE460452B8D16C4569F108CB0462A68891278CCA73C82364D48DCAC258A0B] +peggy_denom = ibc/D3AAE460452B8D16C4569F108CB0462A68891278CCA73C82364D48DCAC258A0B +decimals = 0 + +[ibc/D3AF228E8FD11597F699BBE5428361A49F8EF808E271909E6A5AF9C76CB5E5AC] +peggy_denom = ibc/D3AF228E8FD11597F699BBE5428361A49F8EF808E271909E6A5AF9C76CB5E5AC +decimals = 0 + +[ibc/D3FA7185FEB5D4A07F08F8A0847290A2BAC9372C5C5DF1E7F7BFEEDD852E9052] +peggy_denom = ibc/D3FA7185FEB5D4A07F08F8A0847290A2BAC9372C5C5DF1E7F7BFEEDD852E9052 +decimals = 0 + +[ibc/D4ED143E25535EBF6374A1A077BE205A687B69872484DF064ED2BAD6E5C3D762] +peggy_denom = ibc/D4ED143E25535EBF6374A1A077BE205A687B69872484DF064ED2BAD6E5C3D762 +decimals = 0 + +[ibc/D5AF5FAEA92918A24ACBF0DEB61C674C8951A97D13CFBF7F6617280E82ECB1E6] +peggy_denom = ibc/D5AF5FAEA92918A24ACBF0DEB61C674C8951A97D13CFBF7F6617280E82ECB1E6 +decimals = 0 + +[ibc/D64620F915AD2D3B93C958996CD0BD099DC5837490706FDE15E79440CF77CB36] +peggy_denom = ibc/D64620F915AD2D3B93C958996CD0BD099DC5837490706FDE15E79440CF77CB36 +decimals = 0 + +[ibc/DC9E276D4E80CD04F8A8C681842A3A16C59F85963FB262E34BBB6CB4F5BFDB14] +peggy_denom = ibc/DC9E276D4E80CD04F8A8C681842A3A16C59F85963FB262E34BBB6CB4F5BFDB14 +decimals = 0 + +[ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1] +peggy_denom = ibc/DDE000907D85FB1F358B3FBB1143452BE13F68E0BEA0DFFD8787095B76EEE0A1 +decimals = 6 + +[ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6] +peggy_denom = ibc/DF32F083238097AD2CA5444BFB8F338534C32865EFE0696C5AF89AFB3A0144D6 +decimals = 6 + +[ibc/E01C45463D148F2B469F17DB0497DFA70A746D0CFF6A90EE82825590ADE5F752] +peggy_denom = ibc/E01C45463D148F2B469F17DB0497DFA70A746D0CFF6A90EE82825590ADE5F752 +decimals = 0 + +[ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2] +peggy_denom = ibc/E175256127F32A27BB1FF863D15D8C4BB14968ED069B6A292723D485A33514A2 +decimals = 6 + +[ibc/E247857D53653BA3592A6CCAF9914227153B938BA768C415FF3BAD6CE6CFA316] +peggy_denom = ibc/E247857D53653BA3592A6CCAF9914227153B938BA768C415FF3BAD6CE6CFA316 +decimals = 0 + +[ibc/E43E4F1FD4B84EE30EDB8E0BE6F03E0A5596B292EAA0F198789DDF0C1301FB85] +peggy_denom = ibc/E43E4F1FD4B84EE30EDB8E0BE6F03E0A5596B292EAA0F198789DDF0C1301FB85 +decimals = 0 + +[ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E] +peggy_denom = ibc/E4BDC3A9935959C715961FFC6C12159EAD8FA4A5955D069EE19D0423FF810C6E +decimals = 18 + +[ibc/E801CF19C7B3FFC5FD81A1C9662BCFAE08F4976B054923BC0DA377F1863D3E56] +peggy_denom = ibc/E801CF19C7B3FFC5FD81A1C9662BCFAE08F4976B054923BC0DA377F1863D3E56 +decimals = 0 + +[ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610] +peggy_denom = ibc/E8E84092B9063AAC97846712D43D6555928073B8A0BFFCC2549E55EE224F1610 +decimals = 6 + +[ibc/EA180E422271F35D66E7B9B57AFF072DABEE97EDA4522DAB91F97AE6DD45426D] +peggy_denom = ibc/EA180E422271F35D66E7B9B57AFF072DABEE97EDA4522DAB91F97AE6DD45426D +decimals = 0 + +[ibc/ECBEA5A9A992EE96B327CBA081AA35EB4E62C6A1A3990D2C0326E9A5840793A4] +peggy_denom = ibc/ECBEA5A9A992EE96B327CBA081AA35EB4E62C6A1A3990D2C0326E9A5840793A4 +decimals = 0 + +[ibc/ECC0DF3D9C80F79B81056569EE2140FD977886AB274FA08BA03E987264D6DE19] +peggy_denom = ibc/ECC0DF3D9C80F79B81056569EE2140FD977886AB274FA08BA03E987264D6DE19 +decimals = 0 + +[ibc/EEB2EB2A678B5788DB413B5A7EC81085B34F33DA9750C1C790CE8E1EDC8282B5] +peggy_denom = ibc/EEB2EB2A678B5788DB413B5A7EC81085B34F33DA9750C1C790CE8E1EDC8282B5 +decimals = 0 + +[ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808] +peggy_denom = ibc/EED40547772504DF629EFEC08892E689CD14498B1C0AD766CD5075BBBEE3D808 +decimals = 6 + +[ibc/F1EEC63548B066D76B9B82D04DE25C424932DABD9234116836BAF759E8130BC3] +peggy_denom = ibc/F1EEC63548B066D76B9B82D04DE25C424932DABD9234116836BAF759E8130BC3 +decimals = 0 + +[ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475] +peggy_denom = ibc/F28C5C931D2673B7A2F06FC74934F7BDC0D2906D2AF40D582ED27D1E5C48D475 +decimals = 18 + +[ibc/F433CC4D2A46173B47A691E8C432F11E47E8C06C574CEF798F6F7BA116EACCAC] +peggy_denom = ibc/F433CC4D2A46173B47A691E8C432F11E47E8C06C574CEF798F6F7BA116EACCAC +decimals = 0 + +[ibc/F72F979601BD2FCF748C2E93092E9CB55A8BDB738567AB42C19D403A7C636110] +peggy_denom = ibc/F72F979601BD2FCF748C2E93092E9CB55A8BDB738567AB42C19D403A7C636110 +decimals = 0 + +[ibc/FA2E855E713B5D73C6AA54822791ADFD1BA73EFA5FDFDA903120A1FB0FF12733] +peggy_denom = ibc/FA2E855E713B5D73C6AA54822791ADFD1BA73EFA5FDFDA903120A1FB0FF12733 +decimals = 0 + +[ibc/FAFBDE851E97E4B566B050B843F6BBCE14D7DC88DA69840850271BA8DF72EAEE] +peggy_denom = ibc/FAFBDE851E97E4B566B050B843F6BBCE14D7DC88DA69840850271BA8DF72EAEE +decimals = 0 + +[ibc/FE2F22FEFB9E5F2EA063FD3135533B916577149A3D69CC2BF7BB4224BC9B1230] +peggy_denom = ibc/FE2F22FEFB9E5F2EA063FD3135533B916577149A3D69CC2BF7BB4224BC9B1230 +decimals = 0 + +[ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591] +peggy_denom = ibc/FECCDCFA89278B117C76A11A946A7991A68E5DD12DED6EB938ADC1B1286AC591 +decimals = 6 + +[inj] +peggy_denom = ibc/052AF4B0650990067B8FC5345A39206497BCC12F0ABE94F15415413739B93B26 +decimals = 0 + +[inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s] +peggy_denom = inj104y5dpcdtga79tczv6rg3rsekx4hasw2k83h5s +decimals = 18 + +[inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3] +peggy_denom = inj106kv9he9xlj4np4qthlzeq6hyj7ns6hqfapyt3 +decimals = 6 + +[inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0] +peggy_denom = inj10jl28fj7yc2pmj7p08vmaa85nxm4a09kteqng0 +decimals = 18 + +[inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge] +peggy_denom = inj10yr5mmvxez3h0xzrpaa89my99qlv3u2rmzg0ge +decimals = 8 + +[inj122az278echmzpccw30yy4a4kfull4sfnytqqt7] +peggy_denom = inj122az278echmzpccw30yy4a4kfull4sfnytqqt7 +decimals = 18 + +[inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk] +peggy_denom = inj12e5vzu6a8jqr5dnl4mh04hdskjnx9rw5n86exk +decimals = 6 + +[inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55] +peggy_denom = inj12kq4zh7kckuu0rfpxcr9l6l2x26ajf23uc0w55 +decimals = 18 + +[inj12pt3p50kgsn6p33cchf5qvlf9mw2y0del8fnj3] +peggy_denom = inj12pt3p50kgsn6p33cchf5qvlf9mw2y0del8fnj3 +decimals = 18 + +[inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam] +peggy_denom = inj12xn584cdkhnz2nn08xz4yrwxscxa8tr2fuxwam +decimals = 18 + +[inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws] +peggy_denom = inj134pxgsexyt782qp3kvxf8nf9xl0q7dfdxk5tws +decimals = 18 + +[inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr] +peggy_denom = inj1395ty2rphfvxa6jdwxugk3qrk8h49wn245afcr +decimals = 6 + +[inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485] +peggy_denom = inj148quxv5nyu244hdzy37tmpn3f9s42hsk4tx485 +decimals = 18 + +[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] +peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp +decimals = 6 + +[inj14m99e5ge2cactnstklfz8w7rc004w0e0p7ezze] +peggy_denom = inj14m99e5ge2cactnstklfz8w7rc004w0e0p7ezze +decimals = 0 + +[inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2] +peggy_denom = inj14na0udjrdtsqjk22fgr44gfgph4cp220agmwe2 +decimals = 6 + +[inj14nursn4ezeqy9cgxmush6vk2p2wjsrucsl6gc9] +peggy_denom = inj14nursn4ezeqy9cgxmush6vk2p2wjsrucsl6gc9 +decimals = 18 + +[inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s] +peggy_denom = inj14pq4ewrxju997x0y7g2ug6cn3lqyp66ygz5x6s +decimals = 8 + +[inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy] +peggy_denom = inj14rgkkvwar36drhuajheu3u84jh9gdk27acfphy +decimals = 0 + +[inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch] +peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch +decimals = 5 + +[inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh] +peggy_denom = inj14vcn23l3jdn50px0wxmj2s24h5pn3eawcnktkh +decimals = 6 + +[inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf] +peggy_denom = inj14yh3a5jrcg4wckwdhj9sjxezkmdpuamkw9pghf +decimals = 6 + +[inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w] +peggy_denom = inj154ksu0cw6ra2wqv7ujay8crg6hqe03jpxp7l4w +decimals = 0 + +[inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7] +peggy_denom = inj15993xgce2tml487uhx6u2df8ltskgdlghc8zx7 +decimals = 18 + +[inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns] +peggy_denom = inj15fa69t6huq8nujze28ykdsldmtf23yk3sgxpns +decimals = 18 + +[inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6] +peggy_denom = inj15hvdwk0zxxl2uegnryswvxre7pufuluahrl6s6 +decimals = 18 + +[inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck] +peggy_denom = inj15m47mfu8qjh9uc7cr04txp9udea635vkuwduck +decimals = 18 + +[inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef] +peggy_denom = inj15mfkraj8dhgye7s6gmrxm308w5z0ezd8pu2kef +decimals = 6 + +[inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5] +peggy_denom = inj15sslujc0pv3kdjsw0fhzvclwmgv2zh7a00fcx5 +decimals = 6 + +[inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227] +peggy_denom = inj15wqfmtvdmzy34hm5jafm6uqnqf53ykr0kz6227 +decimals = 6 + +[inj15xz5537eujskaayp600gkke7qu82p5sa76lg50] +peggy_denom = inj15xz5537eujskaayp600gkke7qu82p5sa76lg50 +decimals = 18 + +[inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p] +peggy_denom = inj16exmkvtzkqgxgl44w6793hzjta78f4zpyv8z9p +decimals = 6 + +[inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t] +peggy_denom = inj16ny2lq4tnxnfwz745kaanqyuq7997nk3tkkm0t +decimals = 6 + +[inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv] +peggy_denom = inj16pcxmpl3nquute5hrjta0rgrzc0ga5sj8n6vpv +decimals = 6 + +[inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0] +peggy_denom = inj16tp2zfy0kd5jjd0vku879j43757qqmt5nezfl0 +decimals = 6 + +[inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j] +peggy_denom = inj16yxzdpw4fkyfzld98zt9l3txqpzj88pnme904j +decimals = 6 + +[inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al] +peggy_denom = inj17dtlpkmw4rtc02p7s9qwqz6kyx4nx8v380m0al +decimals = 6 + +[inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar] +peggy_denom = inj17gh0tgtr2d7l5lv47x4ra557jq27qv0tenqxar +decimals = 18 + +[inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za] +peggy_denom = inj17jwmn6gfrwvc9rz6atx3f3rc2g8zuxklcpw8za +decimals = 6 + +[inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh] +peggy_denom = inj17k84dsdjty50rs5pv5pvm9spz75qqe9stnx0vh +decimals = 18 + +[inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d] +peggy_denom = inj17n0zrpvl3u67z4mphxq9qmhv6fuqs8sywxt04d +decimals = 0 + +[inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk] +peggy_denom = inj182d65my2lfcc07fx658nt8zuf6yyham4r9dazk +decimals = 6 + +[inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz] +peggy_denom = inj187xc89gy4ffsl2n8dme88dzrpgazfkf8kgjkmz +decimals = 18 + +[inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6] +peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 +decimals = 8 + +[inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns] +peggy_denom = inj18ehdtnlrreg0ptdtvzx05nzpfvvjgnt8y95hns +decimals = 6 + +[inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k] +peggy_denom = inj18jn6s6605pa42qgxqekhqtku56gcmf24n2y03k +decimals = 18 + +[inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0] +peggy_denom = inj18ywez34uk9n6y3u590pqr8hjmtel0ges6radf0 +decimals = 6 + +[inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq] +peggy_denom = inj18zfazlnerhgsv0nur6tnm97uymf7zrazzghrtq +decimals = 18 + +[inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8] +peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 +decimals = 6 + +[inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9] +peggy_denom = inj194p79raj0qjesr26kzvhx9l2y77vyshvdpcgs9 +decimals = 6 + +[inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s] +peggy_denom = inj19dux2glqedeamjwltjv5srvhgxkf6gyawtce5s +decimals = 6 + +[inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5] +peggy_denom = inj19hqn3gnxnwg4rm4c7kzc2k7gy9dj00ke9s9lm5 +decimals = 6 + +[inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm] +peggy_denom = inj19l7z2pezzt0xn52w647zxrffyrqag02ft88grm +decimals = 18 + +[inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3] +peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 +decimals = 6 + +[inj1aj27yjf5cg6aaccj0xxdpep9h5kymtmu3ccz9h] +peggy_denom = inj1aj27yjf5cg6aaccj0xxdpep9h5kymtmu3ccz9h +decimals = 6 + +[inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk] +peggy_denom = inj1ajws3g8x0r9p350xs4y3agyvmk4698ncmx72zk +decimals = 0 + +[inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy] +peggy_denom = inj1ap9u5fa47yhgs4xv4dcnzn08qvlcpqn0dt59sy +decimals = 18 + +[inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj] +peggy_denom = inj1aqjd9n8m86prgx0a2umtpjcyd6nu22gc82zjwj +decimals = 6 + +[inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a] +peggy_denom = inj1as2gqhf6ct8fms53uashc2jtaejlj79h3rem2a +decimals = 6 + +[inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms] +peggy_denom = inj1c78258q4ahmaujmmj4emg7upx9n4muv0fzjrms +decimals = 6 + +[inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2] +peggy_denom = inj1cfjpn3mh0z0ptsn4ujmm5hdf9x4jmh3hvwd9c2 +decimals = 18 + +[inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u] +peggy_denom = inj1cgmxmra82qtxxjypjesnvu43e7nf6ucv3njy9u +decimals = 18 + +[inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f] +peggy_denom = inj1cjft36fxcspjdkcc5j45z6ucuqyxp7ky9ktu4f +decimals = 18 + +[inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw] +peggy_denom = inj1cjvssl698h094n6c2uqdx75degfewey26yt6uw +decimals = 6 + +[inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr] +peggy_denom = inj1cncjaeg0q6d8kdr77wxz90t6jhmm5wn23s2gxr +decimals = 6 + +[inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29] +peggy_denom = inj1cnqf8xld9a2tezf4sq56lc3f9kfs257s45fd29 +decimals = 6 + +[inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v] +peggy_denom = inj1d205gq2wm72x2unrz9pslsgqf53mhe09w9gx5v +decimals = 6 + +[inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em] +peggy_denom = inj1d8x73kj4xtgzhpztf6d60vcjnrw9w0sh2vq8em +decimals = 6 + +[inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz] +peggy_denom = inj1dg3xz7pj56kqph98pnput5kuj5h2fq97c68mfz +decimals = 6 + +[inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct] +peggy_denom = inj1dmfj6fuz0w5ffaxthax959w4jmswjdxr4f5jct +decimals = 0 + +[inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d] +peggy_denom = inj1dmn43jyt6w6kycgsuu5a3ygtmtk6fm49yvf73d +decimals = 0 + +[inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu] +peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu +decimals = 6 + +[inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s] +peggy_denom = inj1edtqq8mvtlv83yfhuxcnayq2ks9fyvy670045s +decimals = 0 + +[inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m] +peggy_denom = inj1ele6z2tg7cglx2ul2ss94crc60wt70uec8rs9m +decimals = 18 + +[inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp] +peggy_denom = inj1elwp603lt09g8s4ezyp6gg8axhh2n3zkffwfmp +decimals = 6 + +[inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv] +peggy_denom = inj1emeyr4q657cw6wu4twqx6c59mzfv00fkf9nukv +decimals = 18 + +[inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3] +peggy_denom = inj1eqtcpx655e582j5xyu7rf2z8w92pah2re5jmm3 +decimals = 0 + +[inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d] +peggy_denom = inj1ezt2a9azlwp5ucq84twup0skx9vsewpvjhh20d +decimals = 6 + +[inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k] +peggy_denom = inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k +decimals = 18 + +[inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c] +peggy_denom = inj1f59h6qh6vckz8asg307zajzrht948vlymesg8c +decimals = 6 + +[inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5] +peggy_denom = inj1f6ejww220hnygsehh7pl7pd484dg4k9fl7wkr5 +decimals = 6 + +[inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp] +peggy_denom = inj1fg8ffu74pm99nwd584ne3gwa9pexnh39csm7qp +decimals = 6 + +[inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up] +peggy_denom = inj1fjg0pmf0fttg0g3vawttlshq7k58a49gv5u7up +decimals = 6 + +[inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t] +peggy_denom = inj1ft73gxa35pzcqv6zjzqgllwtzs5hf4wnjsfq3t +decimals = 6 + +[inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck] +peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck +decimals = 18 + +[inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q] +peggy_denom = inj1fx6cg4xruk55rld4p9urrjc2v3gvmaqh2yx32q +decimals = 6 + +[inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g] +peggy_denom = inj1gaszym657k5mmxp3z5gaz2ze0drs6xv0dz6u6g +decimals = 18 + +[inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r] +peggy_denom = inj1ghdvetj39n6fze4lsfvqq42qjya0e8ljfx420r +decimals = 6 + +[inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa] +peggy_denom = inj1gkc8ajx5pfkvdux3574r90ahgmtkpnprx0fuaa +decimals = 18 + +[inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap] +peggy_denom = inj1gulvsqvun9qcdfxrsfc33ym82fuccu55zsw6ap +decimals = 18 + +[inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj] +peggy_denom = inj1h0ka230k265jtv5hnujr6tszd66rjk3dutmfuj +decimals = 6 + +[inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a] +peggy_denom = inj1h2ewqh3mjzm72sfrtvxhzd34kxn0qstc6phl4a +decimals = 18 + +[inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55] +peggy_denom = inj1h37nmz0r2dt8l33kt2c6us5hj00ykzgxmvyw55 +decimals = 18 + +[inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a] +peggy_denom = inj1h8l2xcn4h9v0m67qem8x7rmf2akjwc34tjmm7a +decimals = 18 + +[inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z] +peggy_denom = inj1h9tu7ul5pyu2fl2qwpsyvshhqt2g4xqaqxm89z +decimals = 6 + +[inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8] +peggy_denom = inj1hd7pwkcwz9pweklkap04ucwztllxp70xu26dc8 +decimals = 18 + +[inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7] +peggy_denom = inj1hgh3dqc2kxl464qg9rnt3kctzplmsnqzycdtt7 +decimals = 18 + +[inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf] +peggy_denom = inj1hnap888nfhv2gnlp4zvjlyq9wmsw6hm3afvhuf +decimals = 18 + +[inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7] +peggy_denom = inj1hsv0y599unrnv02xntzmcdquh4wagrns8gqfh7 +decimals = 18 + +[inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm] +peggy_denom = inj1j0spyxgnxavasfnj5r4pvc4wwmnd6psjf8j6rm +decimals = 6 + +[inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8] +peggy_denom = inj1j36ddpvef5jgmp4ngy6kl0r45c2tftu4qjuke8 +decimals = 6 + +[inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh] +peggy_denom = inj1j4pwxtnf27qelps9erqg3fg47r9tz9qyl9l7gh +decimals = 18 + +[inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449] +peggy_denom = inj1j9ld52dpgzyc6j42fv5ggk2xkzukm4tjun6449 +decimals = 6 + +[inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz] +peggy_denom = inj1jdn48px2andzq693c2uu4k3pnr9fm5rtywtvmz +decimals = 6 + +[inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq] +peggy_denom = inj1jnswzkkdvkc6chwzffggrlp69efghlqdha6jaq +decimals = 18 + +[inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e] +peggy_denom = inj1jt20t0scnm6r048rklny7z7gyc4lfmm6s5c96e +decimals = 18 + +[inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh] +peggy_denom = inj1jusxykgkl04rgaam65gmvyyymth9flxjdpdruh +decimals = 9 + +[inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5] +peggy_denom = inj1k0f8fqym9t3gz8qq3f72d3x5uk2gx4prs6mld5 +decimals = 18 + +[inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw] +peggy_denom = inj1k23r395k2q5z4fw0zhtyzdymx5let8qw7q76lw +decimals = 6 + +[inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc] +peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc +decimals = 8 + +[inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9] +peggy_denom = inj1kjfeuqtp56newrdye4d5rczfkwe4dg3llc0kc9 +decimals = 18 + +[inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z] +peggy_denom = inj1kpsej4ejcwut5wgu4jyvwvyel6kezjzuf3fd6z +decimals = 8 + +[inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj] +peggy_denom = inj1ky5zcvc82t6hrfsu6da3d9u9u33jt30rjr0cnj +decimals = 0 + +[inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03] +peggy_denom = inj1kz94v8anl9j64cqwntd30l8vqw2p03w3fk7d03 +decimals = 6 + +[inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66] +peggy_denom = inj1l3uhj7dd5sx5fk87z0pxu0jum6rkpgmmv37a66 +decimals = 6 + +[inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0] +peggy_denom = inj1l73x8hh6du0h8upp65r7ltzpj5twadtp5490n0 +decimals = 18 + +[inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj] +peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj +decimals = 6 + +[inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02] +peggy_denom = inj1ljrzvjuupmglq62frdcywzlc9a90xrf3vrcp02 +decimals = 18 + +[inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76] +peggy_denom = inj1llatk73a2935vky6nzv78w80ff5v3etqadzv76 +decimals = 8 + +[inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r] +peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r +decimals = 6 + +[inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8] +peggy_denom = inj1ltu2smt40xmz8lxvrg9xhkdc75rswkyflqf2p8 +decimals = 6 + +[inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc] +peggy_denom = inj1lvnuam0w70d4yj03vy30umqv4rr7gwfkfsemnc +decimals = 6 + +[inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg] +peggy_denom = inj1m2h20qlrhs5nr89s48gm083qdl7333j3v83yjg +decimals = 6 + +[inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g] +peggy_denom = inj1m6ntlp05hxg6gvmkzyjej8a5at0jemamydzx4g +decimals = 8 + +[inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz] +peggy_denom = inj1m84527ec0zxfsssrp5c4an5xgjz9hp4d2ev0pz +decimals = 6 + +[inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r] +peggy_denom = inj1mas3j8u02wzcfysjhgrx0uj0qprua2lm0gx27r +decimals = 18 + +[inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf] +peggy_denom = inj1mdzxqh9kag3a9e7x5488vn8hkeh42cuw0hnhrf +decimals = 6 + +[inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6] +peggy_denom = inj1mpm6l6g77c0flupzynj4lqvktdh5xuj0g4arn6 +decimals = 18 + +[inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5] +peggy_denom = inj1mv9jlerndqham75cp2sfyzkzxdz2rwqx20mpd5 +decimals = 6 + +[inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf] +peggy_denom = inj1nlcg7dgufuytaa2sfxam5hm0l38dyv3uk47kdf +decimals = 18 + +[inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx] +peggy_denom = inj1nqy47ullz048d8lzck9yr89dnpfefrdx30c7fx +decimals = 18 + +[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] +peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 +decimals = 8 + +[inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3] +peggy_denom = inj1pvestds0e0f7y6znfjqa8vwws9ylz6eutny8c3 +decimals = 0 + +[inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c] +peggy_denom = inj1qaakagef76lgu56uhdc9rdsycdrznf7pjfjt2c +decimals = 6 + +[inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd] +peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd +decimals = 6 + +[inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p] +peggy_denom = inj1qqn3urdskeq9mlm37c375978kv3rxgjx2kff9p +decimals = 18 + +[inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn] +peggy_denom = inj1qt32en8rjd0x486tganvc6u7q25xlr5wqr68xn +decimals = 18 + +[inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh] +peggy_denom = inj1quy82cgpf0jajc76w7why9kt94ph99uff2q7xh +decimals = 6 + +[inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst] +peggy_denom = inj1ra46mrdcc4qd7m8mhdjd9fkut50pa07lwxsvst +decimals = 18 + +[inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4] +peggy_denom = inj1rd2ej0vcg8crpgllv9k8f9dks96whhf3yqftd4 +decimals = 0 + +[inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey] +peggy_denom = inj1rdy2hzjw83hs2dec28lw6q3f8an5pma8l38uey +decimals = 0 + +[inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs] +peggy_denom = inj1rluhqhev2v4kmz0m8qjfrlyrlrlqckajuf0ajs +decimals = 6 + +[inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f] +peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f +decimals = 18 + +[inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy] +peggy_denom = inj1rtyuaxaqfxczuys3k3cdvlg89ut66ulmp8mvuy +decimals = 18 + +[inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36] +peggy_denom = inj1rytr7mwrentqhng3gldplyf59k23qd3x5umc36 +decimals = 18 + +[inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e] +peggy_denom = inj1ryzgvggaktks2pz69pugltfu7f3hpq7wc98t5e +decimals = 18 + +[inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l] +peggy_denom = inj1s3w6k5snskregtfrjqdc2ee6t3llypw2yy4w3l +decimals = 18 + +[inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5] +peggy_denom = inj1savfv8nemxsp0870m0dsqgprcwwr447jrj2yh5 +decimals = 18 + +[inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl] +peggy_denom = inj1sfvyudz7m8jfsqu4s53uw2ls2k07yjg8tmcgzl +decimals = 0 + +[inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq] +peggy_denom = inj1sgdvujejhvc0yqw26jz2kvg9fx2wvfvvjtjnjq +decimals = 6 + +[inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch] +peggy_denom = inj1shlkety7fs0n7l2lxz3pyg6hr0j6dkcdvgvjch +decimals = 8 + +[inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3] +peggy_denom = inj1shzx0tx7x74ew6ewjdhvw2l3a828tfaggk5lj3 +decimals = 18 + +[inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87] +peggy_denom = inj1sp8f3hg3qtjr75qxm89fgawwnme6lvldqxrz87 +decimals = 6 + +[inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf] +peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf +decimals = 10 + +[inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv] +peggy_denom = inj1ss3d6gw5xzk5gdt9w4qhp3px62mqygk69uxwyv +decimals = 8 + +[inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t] +peggy_denom = inj1ss6rtzavmpr9ssf0pcw8x20vxmphfqdmlfyz9t +decimals = 18 + +[inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367] +peggy_denom = inj1svrvyqm8uu6u4xnkz6tva207pztglcjylxe367 +decimals = 18 + +[inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd] +peggy_denom = inj1sx8qf8upzccasf7ylv2adsek8nwzgwu944tqkd +decimals = 0 + +[inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd] +peggy_denom = inj1syak43khmndn5t0f67kmmdzjzuf0cz3tnhm6wd +decimals = 0 + +[inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr] +peggy_denom = inj1t9r3s40sr3jjd20kp2w8dunff2466zwr89n2xr +decimals = 18 + +[inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg] +peggy_denom = inj1tcgye8ekwd0fcnrwncdtt7k9r7eg7k824c0pdg +decimals = 18 + +[inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh] +peggy_denom = inj1tjnjj9hvecuj3dpdvvl4yxhshgwzqyg57k7fnh +decimals = 18 + +[inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp] +peggy_denom = inj1tr8dz3dudtnc7z3umjg7s5nwcw387phnjsy3pp +decimals = 18 + +[inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8] +peggy_denom = inj1ttngjl2y886dcr7r34gp3r029f8l2pv8tdelk8 +decimals = 18 + +[inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu] +peggy_denom = inj1u0y6k9grtux3dlzpvj6hspkg6n0l0l2zmlhygu +decimals = 18 + +[inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u] +peggy_denom = inj1u5mf7ueeym5qvvgtfkhgcu40gcc04fv7qmqx5u +decimals = 18 + +[inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd] +peggy_denom = inj1ufew4geh63l45ugk6aett2rdtatjm9xtycjcyd +decimals = 6 + +[inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02] +peggy_denom = inj1uqhcsup58gjfxl26z9esenmr03hn8wyz2mlc02 +decimals = 18 + +[inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3] +peggy_denom = inj1ur3qac37axxmuqpsegr7cts77t78jyupucpua3 +decimals = 8 + +[inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd] +peggy_denom = inj1usr473hh8hlff874tvcl4pe6qzsmc08w3k32nd +decimals = 6 + +[inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz] +peggy_denom = inj1uv2arm5gzd35zrxd7ghsslegn0cwpc9jwc0enz +decimals = 18 + +[inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw] +peggy_denom = inj1vgm0pwes4fusmvha62grh5aq55yxdz2x5k58xw +decimals = 18 + +[inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz] +peggy_denom = inj1vgmpx429y5jv8z5hkcxxv3r4x6hwtmxzhve0xz +decimals = 0 + +[inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf] +peggy_denom = inj1vhsam3xn26fq6lpfpnsnrrg66tjfxts8p7hrrf +decimals = 6 + +[inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0] +peggy_denom = inj1vllv3w7np7t68acdn6xj85yd9dzkxdfcuyluz0 +decimals = 6 + +[inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc] +peggy_denom = inj1vt2sgyzrna5uj6yetju8k0fjex4g8t7fr3w0vc +decimals = 6 + +[inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav] +peggy_denom = inj1vulh2mq9awyexpsmntff0wyumafcte4p5pqeav +decimals = 6 + +[inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf] +peggy_denom = inj1vwhkr9qmntsfe9vzegh7xevvfaj4lnx9t783nf +decimals = 18 + +[inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy] +peggy_denom = inj1w2w4n4mjzlx5snwf65l54a2gh4x0kmpvzm43fy +decimals = 18 + +[inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5] +peggy_denom = inj1w2wlt28t93szklu38wnw4dsgegug5rk3jar5k5 +decimals = 6 + +[inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl] +peggy_denom = inj1w3j52pppjr452f8ukj5apwpf9sc4t4p5cmyfjl +decimals = 6 + +[inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38] +peggy_denom = inj1wjh8gnp7a6yfcldnp82s0e4yt7n98xpm363c38 +decimals = 18 + +[inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru] +peggy_denom = inj1wltxzzuvl9tz8jrawcw756wcawcjt4l4cmsjru +decimals = 18 + +[inj1wze83lt3jk84f89era4ldakyv3mf90pj4af9cx] +peggy_denom = inj1wze83lt3jk84f89era4ldakyv3mf90pj4af9cx +decimals = 6 + +[inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc] +peggy_denom = inj1wzqsfnz6936efkejd9znvtp6m75eg085yl7wzc +decimals = 6 + +[inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40] +peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 +decimals = 18 + +[inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd] +peggy_denom = inj1xnk5ca6u4hl9rfm2qretz6p5wjt3yptvng2jvd +decimals = 18 + +[inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9] +peggy_denom = inj1xvlxqaxw0ef0596d96ecfwpta29y2jc9n5w9s9 +decimals = 8 + +[inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk] +peggy_denom = inj1xx04zkrkrplefzgdgl78mrq3qmy9e3fkgspujk +decimals = 18 + +[inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2] +peggy_denom = inj1y7q956uxwk7xgyft49n7k3j3gt5faeskje6gq2 +decimals = 6 + +[inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv] +peggy_denom = inj1yd07kujagk0t6rlj0zca2xsm6qpekv8mmwqknv +decimals = 18 + +[inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme] +peggy_denom = inj1yevjg9fdp7px757d6g3j2dkpzmeczturx3vpme +decimals = 6 + +[inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6] +peggy_denom = inj1ykfurk0jsxcz6hp9tqm8vn2p5k0hn76y6uans6 +decimals = 6 + +[inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam] +peggy_denom = inj1ypa69pvev7rlv8d2rdxkaxn23tk7rx5vgnxaam +decimals = 6 + +[inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f] +peggy_denom = inj1yv2mdu33whk4z6xdjxu6fkzjtl5c0ghdgt337f +decimals = 0 + +[inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5] +peggy_denom = inj1z647rvv0cfv5xx3tgsdx77qclkwu2ng7tg2zq5 +decimals = 18 + +[inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd] +peggy_denom = inj1z7d2f66wh0r653qp7lqpj6tx3z0yetnjahnsrd +decimals = 18 + +[inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr] +peggy_denom = inj1zdhl0fk08tr8xwppych2f7apzdymw4r3gf9kyr +decimals = 18 + +[inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz] +peggy_denom = inj1zfcny0x77lt6z4rg04zt2mp6j4zuwm5uufkguz +decimals = 6 + +[inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s] +peggy_denom = inj1zhqnqzdg6738q9wjrkr50c6qkkd5ghar9fp36s +decimals = 18 + +[inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5] +peggy_denom = inj1zr4fs5xkkf4h99sdalaxyglr3txjuewtyzjvg5 +decimals = 8 + +[inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn] +peggy_denom = inj1zw35mh6q23cnxa0j6kdh2n4dtss795avxmn9kn +decimals = 6 + +[injJay] +peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/injJay +decimals = 6 + +[injape] +peggy_denom = inj15ta6ukknq82qcaq38erkvv3ycvmuqc83kn2vqh +decimals = 18 + +[injbulls] +peggy_denom = factory/inj14t4aafu7v0vmls8f73ssrzptcm3prkx2r4tp0n/injbulls +decimals = 6 + +[injera] +peggy_denom = inj1curmejva2lcpu7r887q3skr5ew2jxh8kl0m50t +decimals = 8 + +[injmeme] +peggy_denom = inj18n3gzxa40ht824clrvg2p83fy6panstngkjakt +decimals = 18 + +[injpad] +peggy_denom = factory/inj17yqt8f5677hnxpv5gxjt7uwdrjxln0qhhfcj9j/injpad +decimals = 6 + +[injshiba] +peggy_denom = factory/inj1pgkwcngxel97d9qjvg75upe8y3lvvzncq5tdr0/injshiba +decimals = 6 + +[jack11] +peggy_denom = factory/inj17kgavlktg96nf6uhpje6sutjp60jj8wppx3y3p/jack11 +decimals = 6 + +[jack12] +peggy_denom = factory/inj1maj952d7h8ecseelsur6urhm7lwwnrasuug4y0/jack12 +decimals = 6 + +[jim] +peggy_denom = inj13f6gll3666sa2wnj978lhrvjv2803tu5q8kuqd +decimals = 18 + +[jomanji] +peggy_denom = inj1gy76l9p5ar4yqquk7mqqlmpygxtluu2nf7mt4c +decimals = 18 + +[kami] +peggy_denom = factory/inj1hyjg677dqp3uj3dh9vny874k2gjr5fuvdjjzk7/kami +decimals = 6 + +[keke] +peggy_denom = inj1037seqrvafhzmwffe2rqgcad3akh935d5p3kgk +decimals = 6 + +[ken] +peggy_denom = inj19ajm97y78hpqg5pxwy4ezyf437mccy57k4krh7 +decimals = 6 + +[kimo] +peggy_denom = inj1czegjew4z5tfq8mwljx3qax5ql5k57t38zpkg5 +decimals = 18 + +[kis] +peggy_denom = factory/inj1ygeap3ypldmjgl22al5rpqafemyw7dt6k45n8r/kis +decimals = 0 + +[kishida] +peggy_denom = factory/inj1gt60kj3se0yt8pysnygc3e0syrkrl87k4qc3mz/kishida +decimals = 6 + +[koINJ] +peggy_denom = factory/inj1ruwdh4vc29t75eryvxs7vwzt7trtrz885teuwa/koinj +decimals = 6 + +[ksdhjkahkjhaskj] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ksdhjkahkjhaskj +decimals = 6 + +[localstorage] +peggy_denom = inj17auxme00fj267ccyhx9y9ue4tuwwuadgxshl7x +decimals = 18 + +[loki] +peggy_denom = ibc/28325391B9F257ABED965813D29AE67D1FE5C58E40AB6D753250CD83306EC7A3 +decimals = 0 + +[lootbox1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 +decimals = 0 + +[lord] +peggy_denom = inj1xysu0n9sv5wv6aeygdegywz9qkq0v77culynum +decimals = 18 + +[lsdSHARK] +peggy_denom = ibc/E62FEA8924CD79277BD5170852416E863466FB39A6EC0E6AE95E98D6A487AE5F +decimals = 6 + +[mBERB] +peggy_denom = factory/inj168casv2pd0qhjup5u774qeyxlh8gd3g77yneuy/mBERB +decimals = 6 + +[massi] +peggy_denom = inj12n44z9mk0vmga7kv8gysv5w7tgdh6zh4q6t8r7 +decimals = 18 + +[mcNINJA] +peggy_denom = factory/inj1056f9jwmdxjmc3xf3urpka00gjfsnna7ct3gy3/mcNINJA +decimals = 6 + +[memegod] +peggy_denom = factory/inj18fql07frqe0lkvk6ajmpq4smk3q6c0f0qa5yfw/memegod +decimals = 6 + +[memej] +peggy_denom = factory/inj1g5aagfv2t662prxul8ynlzsfmtcx8699w0j7tz/memej +decimals = 6 + +[milkTIA] +peggy_denom = ibc/C2A70D6717D595F388B115200E789DC6E7EE409167B918B5F4E73838B8451A71 +decimals = 6 + +[miniSHROOM] +peggy_denom = inj1mcdhsphq3rkyg9d0sax0arm95tkac4qxdynlkz +decimals = 6 + +[miniSUSHI] +peggy_denom = inj1ex7an3yw5hvw7a6rzd8ljaq9vfd4vc0a06skdp +decimals = 6 + +[mininonja] +peggy_denom = inj1zwhu648g5zm9dqtxfaa6vcja56q7rqz4vff988 +decimals = 18 + +[minions] +peggy_denom = inj1tq0fhr0p05az32c0ehx425c63xrm6ajhak2zpw +decimals = 18 + +[mockBERB] +peggy_denom = inj1s4fua53u7argmq3npm0x9lnm8hkamjjtwayznf +decimals = 6 + +[mycelium] +peggy_denom = factory/inj14cpnzf4mxyxel7le3wp2zxyvwr8g0wukch9865/mycelium +decimals = 6 + +[nATOM] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 +decimals = 6 + +[nINJ] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +decimals = 18 + +[nTIA] +peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv +decimals = 6 + +[nUSD] +peggy_denom = factory/inj18nm3q7r2rckklp7h8hgfzu2dlc20sftvd2893w/nUSD +decimals = 18 + +[nUSDT] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s +decimals = 6 + +[nWETH] +peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt +decimals = 18 + +[needle] +peggy_denom = inj145ueepjcu9xd42vkwvvwvqa3fvk0q66rnzdkxn +decimals = 6 + +[nibba] +peggy_denom = inj1rk68f3a4kvcrt2nra6klz6npealww2g2avknuj +decimals = 18 + +[ninga] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/ninga +decimals = 6 + +[nipniptestest] +peggy_denom = factory/inj1rnlhp35xqtl0zwlp9tnrelykea9f52nd8av7ec/nipniptestest +decimals = 6 + +[nodevnorug] +peggy_denom = factory/inj14epxlhe56lhk5s3nc8wzmetwh6rpehuufe89ak/NODEVNORUG +decimals = 6 + +[nonjainu] +peggy_denom = factory/inj1gxq2pk3ufkpng5s4qc62rcq5rssdxsvk955xdw/nonjainu +decimals = 6 + +[nonjaktif] +peggy_denom = factory/inj1x6u4muldaqn2cm95yn7g07z5wwvpd6d6rpt4da/nonjaktif +decimals = 6 + +[notDOJO] +peggy_denom = inj1n2l9mq2ndyp83u6me4hf7yw76xkx7h792juksq +decimals = 6 + +[nub] +peggy_denom = inj1jaahfnl4zf5azy8x20kw43j2qv2vlhavecy9u5 +decimals = 8 + +[oneCENT] +peggy_denom = inj12fdu6zgd9z5pv9cm8klv9w98ue7hs25z7uukdg +decimals = 6 + +[ooga] +peggy_denom = inj1rysrq2nzm0fz3h7t25deh5wetlqz4k9rl06guu +decimals = 18 + +[opps] +peggy_denom = inj1wazl9873fqgs4p7rjvn6a4qgqfdafacz9jzzjd +decimals = 18 + +[orai] +peggy_denom = ibc/7FF5CED7EF2ED6DFBC5B1278B5BE9ECBFB5939CC04218AC244A5E51D64ED50C8 +decimals = 0 + +[paam] +peggy_denom = factory/inj1hg6n7nfhtevnxq87y2zj4xf28n4p38te6q56vx/paam +decimals = 6 + +[peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B] +peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B +decimals = 18 + +[peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B] +peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B +decimals = 4 + +[peggy0x43123e1d077351267113ada8bE85A058f5D492De] +peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De +decimals = 6 + +[peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32] +peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 +decimals = 18 + +[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] +peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 +decimals = 6 + +[peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] +peggy_denom = peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 +decimals = 18 + +[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] +peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 +decimals = 10 + +[peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53] +peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 +decimals = 5 + +[peggy0xdAC17F958D2ee523a2206206994597C13D831ec7] +peggy_denom = ibc/13EF490ADD26F95B3FEFBA0C8BC74345358B4C5A8D431AAE92CDB691CF8796FF +decimals = 0 + +[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] +peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 +decimals = 18 + +[peipei] +peggy_denom = inj1rd0ympknmutwvvq8egl6j7ukjyqeh2uteqyyx7 +decimals = 6 + +[pepe] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1f2vr6hd9w4xujncyprw670l3g7x2esj50umn8k +decimals = 18 + +[peresident] +peggy_denom = inj1txs2fdchzula47kt7pygs7fzxfjmp73zhqs4dj +decimals = 18 + +[pigs] +peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS +decimals = 6 + +[poolDFB8434D5A80B4EAFA94B6878BD5B85265AC6C5D37204AB899B1C3C52543DA7E] +peggy_denom = ibc/9E9FFBF2C6921D1DFB3326DF5A140D1F802E336FE0BF38C0D708B62492A7326D +decimals = 0 + +[popINJay] +peggy_denom = factory/inj1rn2snthhvdt4m62uakp7snzk7melj2x8nfqkx5/popINJay +decimals = 6 + +[ppica] +peggy_denom = ibc/455C0229DFEB1ADCA527BAE29F4F5B30EE50F282DBEB7124D2836D2DD31514C8 +decimals = 0 + +[pumping] +peggy_denom = inj1rts275s729dqcf7htz4hulrerpz85leufsh8xl +decimals = 8 + +[qcAQLA] +peggy_denom = ibc/F33465130E040E67BFEA9BFF0F805F6B08BD49F87CC6C02EEBEB6D4E2D94FDCE +decimals = 6 + +[qcFUZN] +peggy_denom = ibc/5E44326A289ED1CA0536517BC958881B611D21CBB33EBE068F1E04A502A9F548 +decimals = 6 + +[qcKUJI] +peggy_denom = ibc/B7C8418ABE8CF56B42A37215F6A715097FDD82AC322FE560CA589833FEE8C50D +decimals = 6 + +[qcMNTA] +peggy_denom = ibc/F770E830BC7E2992BC0DBECAC789432995B64BD6714C36EA092D877E28AA9493 +decimals = 6 + +[rBAGGIO] +peggy_denom = inj13z8pahkrcu2zk44el6lcnw9z3amstuneay5efs +decimals = 6 + +[rETH] +peggy_denom = ibc/8906BF683A89D1ABE075A49EFA35A3128D7E9D809775B8E9D5AEEAA55D2889DD +decimals = 18 + +[rFUZN] +peggy_denom = ibc/F5FFC37BBF4B24F94D920BC7DAFCCE5B9403B2DB33DF759B8CED76EA8A6E3E24 +decimals = 6 + +[ra] +peggy_denom = factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/ra +decimals = 6 + +[rat] +peggy_denom = factory/inj1evhsnsrfpvq7jrjzkkn7zwcdtm9k5ac8rh47n8/rat +decimals = 9 + +[rdl] +peggy_denom = inj1q6khaa8av7pet763qmz0ytvgndl6g4sn37tvs5 +decimals = 18 + +[roba] +peggy_denom = inj1gn3py3euhfunvt5qe8maanzuwzf8y2lm2ysy24 +decimals = 18 + +[sINJ] +peggy_denom = inj162hf4hjntzpdghq2c5e966g2ldd83jkmqcvqgq +decimals = 6 + +[sUSDE] +peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 +decimals = 18 + +[santakurosu] +peggy_denom = factory/inj1dzd34k9x3pt09pc68emp85usgeyk33qn9a4euv/santakurosu +decimals = 6 + +[sclaleX Finance] +peggy_denom = inj1x04gt4mtdepdjy5j3dk22g8mymw3jgqkzrm0fc +decimals = 18 + +[scorpion] +peggy_denom = factory/inj1a37dnkznmek8l5uyg24xl5f7rvftpvqsduex24/scorpion +decimals = 6 + +[sei] +peggy_denom = sei +decimals = 6 + +[sentinel] +peggy_denom = inj172tsvz4t82m28rrthmvatfzqaphen66ty06qzn +decimals = 18 + +[seven] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/seven +decimals = 6 + +[sfrxETH] +peggy_denom = ibc/E918585C09958BD328DD9E7215E4726623E7A9A94342FEA5BE126A2AAF920730 +decimals = 18 + +[share1] +peggy_denom = share1 +decimals = 18 + +[share10] +peggy_denom = share10 +decimals = 18 + +[share11] +peggy_denom = share11 +decimals = 18 + +[share15] +peggy_denom = share15 +decimals = 18 + +[share16] +peggy_denom = share16 +decimals = 18 + +[share18] +peggy_denom = share18 +decimals = 18 + +[share2] +peggy_denom = share2 +decimals = 18 + +[share20] +peggy_denom = share20 +decimals = 18 + +[share24] +peggy_denom = share24 +decimals = 18 + +[share25] +peggy_denom = share25 +decimals = 18 + +[share26] +peggy_denom = share26 +decimals = 18 + +[share27] +peggy_denom = share27 +decimals = 18 + +[share28] +peggy_denom = share28 +decimals = 18 + +[share29] +peggy_denom = share29 +decimals = 18 + +[share3] +peggy_denom = share3 +decimals = 18 + +[share30] +peggy_denom = share30 +decimals = 18 + +[share31] +peggy_denom = share31 +decimals = 18 + +[share32] +peggy_denom = share32 +decimals = 18 + +[share33] +peggy_denom = share33 +decimals = 18 + +[share34] +peggy_denom = share34 +decimals = 18 + +[share35] +peggy_denom = share35 +decimals = 18 + +[share36] +peggy_denom = share36 +decimals = 18 + +[share37] +peggy_denom = share37 +decimals = 18 + +[share38] +peggy_denom = share38 +decimals = 18 + +[share39] +peggy_denom = share39 +decimals = 18 + +[share4] +peggy_denom = share4 +decimals = 18 + +[share40] +peggy_denom = share40 +decimals = 18 + +[share41] +peggy_denom = share41 +decimals = 18 + +[share42] +peggy_denom = share42 +decimals = 18 + +[share43] +peggy_denom = share43 +decimals = 18 + +[share44] +peggy_denom = share44 +decimals = 18 + +[share45] +peggy_denom = share45 +decimals = 18 + +[share46] +peggy_denom = share46 +decimals = 18 + +[share47] +peggy_denom = share47 +decimals = 18 + +[share48] +peggy_denom = share48 +decimals = 18 + +[share49] +peggy_denom = share49 +decimals = 18 + +[share5] +peggy_denom = share5 +decimals = 18 + +[share50] +peggy_denom = share50 +decimals = 18 + +[share51] +peggy_denom = share51 +decimals = 18 + +[share52] +peggy_denom = share52 +decimals = 18 + +[share53] +peggy_denom = share53 +decimals = 18 + +[share54] +peggy_denom = share54 +decimals = 18 + +[share55] +peggy_denom = share55 +decimals = 18 + +[share56] +peggy_denom = share56 +decimals = 18 + +[share57] +peggy_denom = share57 +decimals = 18 + +[share58] +peggy_denom = share58 +decimals = 18 + +[share59] +peggy_denom = share59 +decimals = 18 + +[share6] +peggy_denom = share6 +decimals = 18 + +[share60] +peggy_denom = share60 +decimals = 18 + +[share61] +peggy_denom = share61 +decimals = 18 + +[share8] +peggy_denom = share8 +decimals = 18 + +[share9] +peggy_denom = share9 +decimals = 18 + +[shark] +peggy_denom = inj13y7ft3ppnwvnwey2meslv3w60arx074vlt6zwl +decimals = 18 + +[shiba] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba +decimals = 6 + +[shromin] +peggy_denom = inj1x084w0279944a2f4hwcr7hay5knrmuuf8xrvvs +decimals = 6 + +[shroomin] +peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 +decimals = 18 + +[shuriken] +peggy_denom = inj1afr2er5nrevh90nywpka0gv8ywcx3fjhlpz4w3 +decimals = 6 + +[smokingNONJA] +peggy_denom = factory/inj1907wkvrn9q256pulcc6n4dkk9425d2rd8t2qwt/smokingNONJA +decimals = 6 + +[socks] +peggy_denom = factory/inj1an64kx7fr7fgyrpsuhlzjmuw4a5mmwnwyk3udq/socks +decimals = 6 + +[solana.USDC.wh] +peggy_denom = ibc/FF3CF830E60679530072C4787A76D18E81C04F9725C3523F941DF0D8B7EB24F0 +decimals = 6 + +[space candy for degens] +peggy_denom = inj1qt78z7xru0fcks54ca56uehuzwal026ghhtxdv +decimals = 6 + +[spore] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore +decimals = 6 + +[spuun] +peggy_denom = factory/inj168pjvcxwdr28uv295fchjtkk6pc5cd0lg3h450/spuun +decimals = 6 + +[sqATOM] +peggy_denom = ibc/C63E6285FA0EE014B89671A7A633E1CE7F62310312843B9AC7248910619143C6 +decimals = 6 + +[sqBTC] +peggy_denom = ibc/81C212661A115B9799C71173DD131B5077B14A3FBD26A8A9A0C669F76F434E23 +decimals = 6 + +[sqOSMO] +peggy_denom = ibc/AFCDF4348DBDF92BCF631B1D38628F75683F45A8A0DCE304FC9AAD4F31609916 +decimals = 6 + +[sqTIA] +peggy_denom = ibc/D2098712E1B9398AD8D05966A5766D4C32137D9A06CF839376221176CFD9AF0B +decimals = 6 + +[squid] +peggy_denom = factory/inj1nhswhqrgfu3hpauvyeycz7pfealx4ack2c5hfp/squid +decimals = 6 + +[stATOM] +peggy_denom = ibc/A8F39212ED30B6A8C2AC736665835720D3D7BE4A1D18D68566525EC25ECF1C9B +decimals = 6 + +[stBAND] +peggy_denom = ibc/95A65C08D2A7BFE5630E1B7FDCD89B2134D1A5ACE0C5726D6060A992CBAFA504 +decimals = 6 + +[stCMDX] +peggy_denom = ibc/0CAB2CA45981598C95B6BE18252AEFE1E9E1691D8B4C661997AD7B836FD904D6 +decimals = 6 + +[stDYDX] +peggy_denom = ibc/9B324282388BEBD0E028749E9E10627BA2BA13ADBE7FF04274F2CFBDD271BA4B +decimals = 18 + +[stDYM] +peggy_denom = ibc/7F4BE10120E17C0F493124FFEDC1A3397B8BECEA83701CE8DC8D8B1E3A2A7763 +decimals = 18 + +[stETH] +peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 +decimals = 18 + +[stEVMOS] +peggy_denom = ibc/75F64E20A70C5059F8EA792F1C47260DC7C6CBAC69DBA60E151AD5416E93C34C +decimals = 18 + +[stIBCX] +peggy_denom = ibc/0A6B424A8207047D9FD499F59177BABD8DB08BBC2316B29B702A403BFB414419 +decimals = 6 + +[stISLM] +peggy_denom = ibc/813891E20F25E46CF9DE9836EB7F34BCABA45927754DDE8C0E74FE694968F8C2 +decimals = 18 + +[stJUNO] +peggy_denom = ibc/580E52A2C2DB126EE2160D1BDBBA33B5839D53B5E59D04D4FF438AE9BB7BFAAB +decimals = 6 + +[stLUNA] +peggy_denom = ibc/E98796F283A8B56A221011C2EDF7079BB62D1EA3EEF3E7CF4C679E91C6D97D08 +decimals = 6 + +[stOSMO] +peggy_denom = ibc/6D821F3CFAE78E9EBD872FAEC61C400C0D9B72E77FA14614CF1B775A528854FD +decimals = 6 + +[stSAGA] +peggy_denom = ibc/7C9A65FC985CCD22D0B56F1CEB2DDA3D552088FCE17E9FDF6D18F49BEDBEBF97 +decimals = 6 + +[stSOMM] +peggy_denom = ibc/9C234DA49B8DDAFB8F71F21BEB109F6255ECA146A32FD3A36CB9210647CBD037 +decimals = 6 + +[stSTARS] +peggy_denom = ibc/DD0F92D576A9A60487F17685A987AB6EDB359E661D281ED31F3AE560650ECFCB +decimals = 6 + +[stTIA] +peggy_denom = ibc/32F6EDA3E2B2A7F9C4A62F11935CF5D25948372A5A85281D7ABB9A2D0F0B7182 +decimals = 6 + +[stUMEE] +peggy_denom = ibc/FC8E98DF998AE88129183094E49383F94B3E5F1844C939D380AF18061FEF41EB +decimals = 6 + +[stinj] +peggy_denom = ibc/E9BBE9BBF0925155892D6E47553E83B8476C880F65DEB33859E751C0B107B0B1 +decimals = 0 + +[stkATOM] +peggy_denom = ibc/B8E30AECB0FB5BA1B02747BE003E55934A9E42488495412C7E9934FBEC06B201 +decimals = 6 + +[stkDYDX] +peggy_denom = ibc/93948A8FB433293F1C89970EA4596C4E8D4DD7E9F041058C7C47F0760F7C9693 +decimals = 18 + +[stkHUAHUA] +peggy_denom = ibc/7DC72C8C753E145A627515EC6DFFD23CDED27D443C79E4B8DB2B1AB1F18B6A66 +decimals = 6 + +[stkOSMO] +peggy_denom = ibc/F60E1792296F6264E594B5F87C3B5CDE859A1D9B3421F203E986B7BA3C4E05F1 +decimals = 6 + +[stkSTARS] +peggy_denom = ibc/77F4E05BDB54051FAF0BE956FCE83D8E0E4227DD53F764BB32D8ECF685A93F55 +decimals = 6 + +[stkXPRT] +peggy_denom = ibc/6E5EEA7EC6379417CA5A661AD367753359607BD74A58FD4F60E8D26254FB8D12 +decimals = 6 + +[storage] +peggy_denom = inj1dzatga5p63z2rpfqx7vh4fp6as8y46enkrfst0 +decimals = 18 + +[subs] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/subs +decimals = 6 + +[super] +peggy_denom = inj1fq8mjddyvkas32ltzzaqru6nesse2ft8xnn3vs +decimals = 18 + +[symbol] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/inj-test +decimals = 6 + +[tBTC] +peggy_denom = ibc/CDF0747148A7E6FCF27143312A8A5B7F9AEF0EF8BD4FA4381815A5EDBFC9B87E +decimals = 8 + +[tama] +peggy_denom = factory/inj18feu0k5w2r0jsffgx8ue8pfj2nntfucaj0dr8v/tama +decimals = 6 + +[teclub] +peggy_denom = inj125hp6pmxyajhldefkrcmc87lx08kvwtag382ks +decimals = 18 + +[terever] +peggy_denom = inj14tepyvvxsn9yy2hgqrl4stqzm2h0vla9ee8ya9 +decimals = 18 + +[test] +peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/test +decimals = 6 + +[test1] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/test1 +decimals = 6 + +[test2] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test2 +decimals = 6 + +[test3] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test3 +decimals = 6 + +[test4] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test4 +decimals = 6 + +[test5] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test5 +decimals = 6 + +[test6] +peggy_denom = factory/inj1senn2rj7avpqerf0ha9xn7t6fmqlyr8hafu8ld/test6 +decimals = 6 + +[testclub] +peggy_denom = inj15v7mu4ywf8rvy5wk9ptrq7we32e3q0shkhuhg8 +decimals = 18 + +[testclubss] +peggy_denom = inj1r0rkq2v70lur23jczassuqu5qwc5npcjpp3e8c +decimals = 18 + +[testdaojo] +peggy_denom = inj174v6mke336kqzf7rl7ud43ddc4vsqh2q4mnl6t +decimals = 18 + +[testooo] +peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/testooo +decimals = 6 + +[testt] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/testt +decimals = 6 + +[testtesttest] +peggy_denom = inj1w4clv0alsnt5ez2v7dl9yjzmg7mkfzjs0cf7cz +decimals = 18 + +[testuuu] +peggy_denom = factory/inj17pn6nwvk33404flhglujj4n5y3p2esy5x0cfhm/testuuu +decimals = 6 + +[tet1w3112] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/tet1w3112 +decimals = 6 + +[toby] +peggy_denom = factory/inj1temu696g738vldkgnn7fqmgvkq2l36qsng5ea7/toby +decimals = 6 + +[token] +peggy_denom = inj1l2juxl35xedtneaq2eyk535cw5hq4x3krjqsl3 +decimals = 6 + +[tonc] +peggy_denom = inj1aqtnpa0ghger4mlz4u46cl48rr82jes043pugz +decimals = 18 + +[tone] +peggy_denom = inj1rgfquap6gahcdekg4pv6ru030w9yaph7nhcp9g +decimals = 18 + +[tonf] +peggy_denom = inj180rq0xetfzwjquxg4mukc4qw0mzprkhetrygv5 +decimals = 18 + +[toto] +peggy_denom = inj17dpjwzzr05uvegj4hhwtf47y0u362qgm6r3f5r +decimals = 18 + +[tpixdog] +peggy_denom = inj17mxrt7ywxgjh4lsk8kqjgqt0zc6pzj5jwd5xt7 +decimals = 18 + +[tremp] +peggy_denom = factory/inj1fkq5lseels4xt20drvtck3rajvvte97uhyx85r/tremp +decimals = 6 + +[trs] +peggy_denom = factory/inj1h0w5sj0n07cugus02xfywaghvxxh8pp3e9egs6/trs +decimals = 12 + +[trump] +peggy_denom = inj1a6d54f5f737e8xs54qpxhs9v5l233n6qy9kyud +decimals = 18 + +[tst] +peggy_denom = inj1ukx6qs0guxzcf0an80vw8q88203cl75cey67lw +decimals = 18 + +[tsty] +peggy_denom = factory/inj1lvlvg3mkc3txakeyrqfzemkc7muvm9656mf2az/tsty +decimals = 6 + +[tve] +peggy_denom = inj1y208239ua6mchwayw8s8jfnuyqktycqhk6tmhv +decimals = 18 + +[uLP] +peggy_denom = factory/inj1dewkg7z8vffqxk7jcer6sf9ttnx54z0c6gfjw6/uLP +decimals = 6 + +[uakt] +peggy_denom = ibc/3BADB97E59D4BB8A26AD5E5485EF0AF123982363D1174AA1C6DEA9BE9C7E934D +decimals = 0 + +[uatom] +peggy_denom = ibc/057B70A05AFF2A38C082ACE15A260080D29627CCBF1655EA38B043275AFAADCE +decimals = 0 + +[uaxl] +peggy_denom = ibc/2FB8CEA9180069DD4DB8883CA8E263D9879F446D6895CDAA90487ABCCFB4A45C +decimals = 0 + +[ubld] +peggy_denom = ibc/40AE872789CC2B160222CC4301CA9B097493BD858EAD84218E2EC29C64F0BBAB +decimals = 0 + +[ubtsg] +peggy_denom = ibc/861CA7EF82BD341F2EB80C6F47730908E14A4E569099C510C0DAD8DA07F6DCC6 +decimals = 0 + +[ucmdx] +peggy_denom = ibc/2609F5ECC10691FE306DE1B99E4F6AF18F689ED328969F93186F28BE1173EEED +decimals = 0 + +[ucore] +peggy_denom = ibc/478A95ED132D071603C8AD0FC5E1A74717653880144E0D9B2508A230820921EF +decimals = 0 + +[ucrbrus] +peggy_denom = ibc/617A276F35F40221C033B0662301374A225A9784653C30184F9305398054525D +decimals = 0 + +[ucre] +peggy_denom = ibc/021FDD63F6D8DA6998A93DD25A72BD18421604A50819D01932136E934F9A26C4 +decimals = 0 + +[udoki] +peggy_denom = ibc/80A2109FA720FF39E302876F885039D7378B3FC7B9FAF22E05E29EFB8F7B3306 +decimals = 0 + +[uhuahua] +peggy_denom = ibc/613786F0A8E01B0436DE4EBC2F922672063D8348AE5C7FEBA5CB22CD2B12E1D6 +decimals = 0 + +[ukuji] +peggy_denom = ibc/B4524C4C8F51F77C94D4E901AA26DF4F0E530F44E285D5D777E1634907E94CBD +decimals = 0 + +[uluna] +peggy_denom = ibc/2B3FA34CE2779629F4CBDD4D52EFF1FED8AD78EBA63786E946C7CE6D06034D0D +decimals = 0 + +[ulvn] +peggy_denom = factory/osmo1mlng7pz4pnyxtpq0akfwall37czyk9lukaucsrn30ameplhhshtqdvfm5c/ulvn +decimals = 6 + +[unknown] +peggy_denom = unknown +decimals = 0 + +[unois] +peggy_denom = ibc/D2C7259861170E5EE7B21DBEC44D4720EC6C97293F1CAA79B0A0FF84B508C012 +decimals = 0 + +[untrn] +peggy_denom = ibc/6E512756C29F76C31032D456A4C957309E377827A443F1267D19DE551EB76048 +decimals = 0 + +[uosmo] +peggy_denom = ibc/49CE7E3072FB1C70C1B2DE9AD1E74D15E2AC2AFD62949DB82EC653EB3E2B0A84 +decimals = 0 + +[uscrt] +peggy_denom = ibc/3C38B741DF7CD6CAC484343A4994CFC74BC002D1840AAFD5416D9DAC61E37F10 +decimals = 0 + +[usei] +peggy_denom = ibc/262300516331DBB83707BF21D485454F5608610B74F9232FB2503ABA3363BD59 +decimals = 0 + +[ustrd] +peggy_denom = ibc/CACFB6FEEC434B66254E2E27B2ABAD991171212EC8F67C566024D90490B7A079 +decimals = 0 + +[utia] +peggy_denom = ibc/056FEA49A8266ECD3EEF407A17EDC3FCEED144BE5EEF3A09ED6BC33F7118009F +decimals = 0 + +[uumee] +peggy_denom = ibc/EE0EC814EF89AFCA8C9CB385F5A69CFF52FAAD00879BEA44DE78F9AABFFCCE42 +decimals = 0 + +[uusd] +peggy_denom = ibc/B61DB68037EA3B6E9A1833093616CDFD8233EB014C1EA4C2D06E6A62B1FF2A64 +decimals = 0 + +[uusdc] +peggy_denom = ibc/02FF79280203E6BF0E7EAF70C5D0396B81B3CC95BA309354A539511387161AA5 +decimals = 0 + +[uusdt] +peggy_denom = ibc/63ADE20D7FF880975E9EC5FEBE87DB7CFCE6E85AB7F8E5097952052583C237EC +decimals = 0 + +[uwhale] +peggy_denom = ibc/08E058987E0EB7A4ABEF68956D4AB2247447BA95EF06E6B43CB7D128E2924355 +decimals = 0 + +[uxprt] +peggy_denom = ibc/A1D2A5E125114E63EE6E19FBA05E0949A14B5A51BB91D6193EEAE771C76C91E6 +decimals = 0 + +[wBTC] +peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[wETH] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc +decimals = 8 + +[wLIBRA] +peggy_denom = ibc/FCCACE2DFDF08422A050486E09697AE34D4C620DC51CFBEF59B60AE3946CC569 +decimals = 6 + +[wUSDM] +peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 +decimals = 18 + +[wen] +peggy_denom = factory/inj1v5vml3038t0expy7vf5vkwj7t9xly9kudtjdg5/wen +decimals = 6 + +[wera] +peggy_denom = factory/inj1j3c89aqgw9g4sqwtxzldslqxla4d5a7csgaxgq/wera +decimals = 6 + +[wglmr-wei] +peggy_denom = ibc/0C8737145CF8CAE5DC1007450882E251744B57119600E1A2DACE72C8C272849D +decimals = 0 + +[wif] +peggy_denom = wif +decimals = 6 + +[winston] +peggy_denom = inj128kf4kufhd0w4zwpz4ug5x9qd7pa4hqyhm3re4 +decimals = 6 + +[wmatic-wei] +peggy_denom = ibc/8042DF9D0B312FE068D0336E5E9AFFE408839DA15643D83CA9AB005D0A2E38D8 +decimals = 0 + +[wstETH] +peggy_denom = ibc/1E0FC59FB8495BF927B10E9D515661494B1BBEDAA15D80E52FE2BADA64656D16 +decimals = 18 + +[wynn] +peggy_denom = factory/inj1mmn3lqt5eahuu7cmpcjme6lj0xhjlhj3qj4fhh/wynn +decimals = 6 + +[x69] +peggy_denom = factory/inj1dkwqv24lyt94ukg65qf4xc8tj8wsu7x9p76enk/x69 +decimals = 6 + +[xASTRO] +peggy_denom = ibc/11B5974E9592AFEDBD74F08BE92A06A626CE01BEB395090C1567ABEE551B04C0 +decimals = 6 + +[xCC] +peggy_denom = inj1vnf98sw93chhpagtk54pr4z5dq02nxprhnhnm6 +decimals = 8 + +[xMNTA] +peggy_denom = ibc/0932033C2B34411381BB987F12539A031EF90CC7F818D65C531266413249F7DB +decimals = 6 + +[xNinja.Tech Token] +peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar +decimals = 18 + +[xSEUL] +peggy_denom = ibc/CC381CB977B79239696AC471777FEC12816B9EF7F601EE2DAF17C00F51C25F6F +decimals = 6 + +[xUSK] +peggy_denom = ibc/F8E646585298F0F0B4CF0F8EC0978CEB10E8092389E7866BFD9A5E46BE9542A6 +decimals = 6 + +[xxx] +peggy_denom = ibc/C0B67C5C6E3D8ED32B5FEC0E5A4F4E5D0257C62B4FDE5E569AF425B6A0059CC4 +decimals = 10 + +[yFUZN] +peggy_denom = ibc/71C297610507CCB7D42E49EA49AF2ECBBE2D4A83D139C4A441EB7A2693C0464A +decimals = 6 + +[zinjer] +peggy_denom = factory/inj1t0vyy5c3cnrw9f0mpjz9xk7fp22ezjjmrza7xn/zinjer +decimals = 6 diff --git a/client/metadata/assets/testnet.ini b/client/metadata/assets/testnet.ini index e8b5aa61..4eba7b4d 100644 --- a/client/metadata/assets/testnet.ini +++ b/client/metadata/assets/testnet.ini @@ -9,19 +9,19 @@ min_display_quantity_tick_size = 0.001 [0x7a57e705bb4e09c88aecfc295569481dbf2fe1d5efe364651fbe72385938e9b0] description = 'Testnet Spot APE/USDT' -base = 18 +base = 0 quote = 6 min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.001 +min_display_price_tick_size = 0.000000000000000000001 min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 +min_display_quantity_tick_size = 1000000000000000 [0xabed4a28baf4617bd4e04e4d71157c45ff6f95f181dee557aae59b4d1009aa97] description = 'Testnet Spot INJ/APE' base = 18 -quote = 18 +quote = 0 min_price_tick_size = 0.000000000000001 -min_display_price_tick_size = 0.000000000000001 +min_display_price_tick_size = 1000 min_quantity_tick_size = 1000000000000000000 min_display_quantity_tick_size = 1 @@ -117,12 +117,12 @@ min_display_quantity_tick_size = 0.0001 [0xf3298cc12f12945c9da877766d320e4056e5dfd7d3c38208a0ef2f525f7ca0a2] description = 'Testnet Spot APE/INJ' -base = 18 +base = 0 quote = 18 min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 +min_display_price_tick_size = 0.000000000000000000001 min_quantity_tick_size = 1000000000000000 -min_display_quantity_tick_size = 0.001 +min_display_quantity_tick_size = 1000000000000000 [0x263f7922659fa5b0ecb756a2dd8bf8e2aab9fe8d9ce375f7075d6e6d87b6f95d] description = 'Testnet Spot INJ' @@ -207,12 +207,12 @@ min_display_quantity_tick_size = 0.00001 [0x382a1cf37bcdbccd5698753154335fa56651d64b88b054691648710c8dcf43e0] description = 'Testnet Spot ZEN/INJ' -base = 18 +base = 0 quote = 18 min_price_tick_size = 0.001 -min_display_price_tick_size = 0.001 +min_display_price_tick_size = 0.000000000000000000001 min_quantity_tick_size = 10000000000000 -min_display_quantity_tick_size = 0.00001 +min_display_quantity_tick_size = 10000000000000 [0x40c7fcb089fc603f26c38a5a5bc71f27b0e33a92c2b76801bd9b2ac592d86305] description = 'Testnet Spot ATOM/INJ' @@ -457,78 +457,11906 @@ min_display_price_tick_size = 0.001 min_quantity_tick_size = 0.1 min_display_quantity_tick_size = 0.1 +[$ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/$alien +decimals = 6 + +[$AOI] +peggy_denom = factory/inj169ed97mcnf8ay6rgvskn95n6tyt46uwvy5qgs0/$aoi +decimals = 6 + +[$BIRB] +peggy_denom = factory/inj1j37gy4hx0xgm9crwhew3sd6gfrg2z92rphynln/INJECTEDBIRB +decimals = 6 + +[$BITCOIN] +peggy_denom = factory/inj1xqkz4cgw3qn3p6xa2296g5ma8gh4fws8f3fxg6/BITCOIN +decimals = 6 + +[$Babykira] +peggy_denom = factory/inj13vau2mgx6mg7ams9nngjhyng58tl9zyw0n8s93/$babykira +decimals = 6 + +[$FORTUNE] +peggy_denom = factory/inj1ncytr25znls3tdw8q5g5pju83t4wcv6hv48kaz/FORTUNE +decimals = 6 + +[$HONEY] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/honey +decimals = 0 + +[$NEWT] +peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/newTest +decimals = 6 + +[$PUNKS] +peggy_denom = factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/injscoin +decimals = 6 + +[$ROFL] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rofl +decimals = 6 + +[$TOK] +peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/token +decimals = 6 + +[$TT] +peggy_denom = factory/inj1ndmztajhvx96a297axzuh80ke8jh0yjlcvs0xh/zule +decimals = 6 + +[1INCH] +peggy_denom = peggy0x111111111117dC0aa78b770fA6A738034120C302 +decimals = 18 + +[A4] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/aaaa +decimals = 6 + +[AA] +peggy_denom = peggy0xdfb34A71B682e578C1a05ab6c9eF68661F1cC291 +decimals = 18 + +[AAA] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/AAA +decimals = 6 + +[AAAAMEMETEST] +peggy_denom = factory/inj1u4uuueup7p30zfl9xvslddnen45dg7pylsq4td/aaameme +decimals = 6 + +[AAVE] +peggy_denom = peggy0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9 +decimals = 18 + +[ABC] +peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/ABC +decimals = 6 + +[ADN] +peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/ADN +decimals = 6 + +[AK] +peggy_denom = factory/inj10jmp6sgh4cc6zt3e8gw05wavvejgr5pw6m8j75/ak +decimals = 6 + +[AKK] +peggy_denom = factory/inj1ygeap3ypldmjgl22al5rpqafemyw7dt6k45n8r/ak +decimals = 0 + +[ALEX] +peggy_denom = factory/inj1tka3m67unvw45xfp42v5u9rc6pxpysnh648vje/ALEX +decimals = 6 + +[ALLA] +peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/ALLA +decimals = 6 + +[ALLB] +peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/ALLB +decimals = 6 + +[ALPHA] +peggy_denom = inj1zwnsemwrpve3wrrg0njj89w6mt5rmj9ydkc46u +decimals = 8 + +[ALX] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/alx +decimals = 6 + +[ANANA] +peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/ANANA +decimals = 6 + +[ANDR] +peggy_denom = ibc/61FA42C3F0B0F8768ED2CE380EDD3BE0E4CB7E67688F81F70DE9ECF5F8684E1E +decimals = 6 + +[ANK] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/ANK +decimals = 6 + [APE] -peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 +peggy_denom = peggy0x44d63c7FC48385b212aB397aB91A2637ec964634 +decimals = 18 + +[APEINJ] +peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/apeinj +decimals = 6 + +[APP] +peggy_denom = peggy0xC5d27F27F08D1FD1E3EbBAa50b3442e6c0D50439 +decimals = 18 + +[ARB] +peggy_denom = ibc/8CF0E4184CA3105798EDB18CAA3981ADB16A9951FE9B05C6D830C746202747E1 +decimals = 8 + +[ARBlegacy] +peggy_denom = inj1d5vz0uzwlpfvgwrwulxg6syy82axa58y4fuszd +decimals = 8 + +[ASG] +peggy_denom = ibc/2D40732D27E22D27A2AB79F077F487F27B6F13DB6293040097A71A52FB8AD021 +decimals = 8 + +[ASR] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AUM decimals = 18 +[ASTR] +peggy_denom = inj1mhmln627samtkuwe459ylq763r4n7n69gxxc9x +decimals = 18 + +[ASTRO] +peggy_denom = ibc/E8AC6B792CDE60AB208CA060CA010A3881F682A7307F624347AB71B6A0B0BF89 +decimals = 6 + +[ATJ] +peggy_denom = factory/inj1xv73rnm0jwnens2ywgvz35d4k59raw5eqf5quw/auctiontestj +decimals = 6 + [ATOM] peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/atom decimals = 8 -[HDRO] -peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro +[ATT] +peggy_denom = factory/inj1xuxqgygmk79xfaf38ncgdp4jwmszh9rn3pmuex/ATT decimals = 6 -[INJ] -peggy_denom = inj +[AUTISM] +peggy_denom = factory/inj14lf8xm6fcvlggpa7guxzjqwjmtr24gnvf56hvz/autism +decimals = 6 + +[AVAX] +peggy_denom = inj18a2u6az6dzw528rptepfg6n49ak6hdzkny4um6 +decimals = 8 + +[AXL] +peggy_denom = ibc/B68C1D2682A8B69E20BB921E34C6A3A2B6D1E13E3E8C0092E373826F546DEE65 +decimals = 6 + +[AXS] +peggy_denom = peggy0xBB0E17EF65F82Ab018d8EDd776e8DD940327B28b decimals = 18 -[MT] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest2 +[Alpha Coin] +peggy_denom = peggy0x138C2F1123cF3f82E4596d097c118eAc6684940B +decimals = 18 + +[AmanullahTest2] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/AmanullahTest2 decimals = 6 -[MitoTest1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest1 +[Ape Coin] +peggy_denom = peggy0x4d224452801ACEd8B2F0aebE155379bb5D594381 decimals = 18 -[PROJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj +[Arbitrum] +peggy_denom = peggy0x912CE59144191C1204E64559FE8253a0e49E6548 decimals = 18 -[PROJX] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx +[Axelar] +peggy_denom = peggy0x3eacbDC6C382ea22b78aCc158581A55aaF4ef3Cc +decimals = 6 + +[BAB] +peggy_denom = factory/inj1ljvxl24c3nz0vxc8ypf0pfppp3s3t0aap5snag/BAB +decimals = 6 + +[BAG] +peggy_denom = factory/inj106ul9gd8vf0rdhs7gvul4e5eqju8uyr62twp6v/BAG +decimals = 6 + +[BAMBOO] +peggy_denom = factory/inj144nw6ny28mlwuvhfnh7sv4fcmuxnpjx4pksr0j/bamboo +decimals = 6 + +[BANANA] +peggy_denom = factory/inj1cvte76l69n78avthhz7a73cgs8e29knkquyguh/BANANA +decimals = 6 + +[BAND] +peggy_denom = peggy0xBA11D00c5f74255f56a5E366F4F77f5A186d7f55 decimals = 18 -[TEST1] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 +[BAT] +peggy_denom = peggy0x0D8775F648430679A709E98d2b0Cb6250d2887EF +decimals = 18 + +[BAYC] +peggy_denom = bayc +decimals = 18 + +[BB] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/BAMB decimals = 6 -[TEST2] -peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test2 +[BEAST] +peggy_denom = peggy0xA4426666addBE8c4985377d36683D17FB40c31Be decimals = 6 -[USD Coin] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc +[BEER] +peggy_denom = factory/inj13y957x4lg74e60s9a47v66kex7mf4ujcqhc6xs/BEER decimals = 6 -[USDC] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +[BIL] +peggy_denom = factory/inj14cxwqv9rt0hvmvmfawts8v6dvq6p26q0lkuajv/BIL decimals = 6 -[USDT] -peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 +[BINJ] +peggy_denom = factory/inj10q36ygr0pkz7ezajcnjd2f0tat5n737yg6g6d5/binj +decimals = 18 + +[BITS] +peggy_denom = factory/inj10gcvfpnn4932kzk56h5kp77mrfdqas8z63qr7n/BITS decimals = 6 -[WBTC] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc +[BK] +peggy_denom = factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/bk +decimals = 6 + +[BLA] +peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/blabla +decimals = 0 + +[BLACK] +peggy_denom = factory/inj16eckaf75gcu9uxdglyvmh63k9t0l7chd0qmu85/black +decimals = 6 + +[BLOCK] +peggy_denom = factory/inj1l32h3fua32wy7r7zwhddevan8lxwkseh4xz43w/BLOCKEATER +decimals = 18 + +[BMAN] +peggy_denom = factory/inj18zctja65nd5xlre0lzurwc63mgw7xn6p2fehxv/BMAN +decimals = 6 + +[BMOS] +peggy_denom = ibc/D9353C3B1407A7F7FE0A5CCB7D06249B57337888C95C6648AEAF2C83F4F3074E +decimals = 6 + +[BNB] +peggy_denom = peggy0xB8c77482e45F1F44dE1745F52C74426C631bDD52 +decimals = 18 + +[BOB] +peggy_denom = factory/inj1znqs22whsfqvd3503ehv2a40zhmcr3u7k5xu8d/BOB +decimals = 6 + +[BODEN] +peggy_denom = boden +decimals = 9 + +[BOME] +peggy_denom = factory/inj1zghufuvlx8wkt233k7r25um2c0y8zzqx2hpx7e/BOME +decimals = 6 + +[BONJO] +peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/bonjo +decimals = 6 + +[BONK] +peggy_denom = inj14rry9q6dym3dgcwzq79yay0e9azdz55jr465ch +decimals = 5 + +[BONK2] +peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk +decimals = 6 + +[BONUS] +peggy_denom = ibc/DCF43489B9438BB7E462F1A1AD38C7898DF7F49649F9CC8FEBFC533A1192F3EF decimals = 8 -[WETH] -peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth +[BOYS] +peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/BOYS +decimals = 6 + +[BRETT] +peggy_denom = factory/inj13jjdsa953w03dvecsr43dj5r6a2vzt7n0spncv/brett +decimals = 6 + +[BRZ] +peggy_denom = inj14jesa4q248mfxztfc9zgpswkpa4wx249mya9kk +decimals = 4 + +[BS] +peggy_denom = factory/inj1kzaaapa8ux4z4lh8stm6vv9c5ykhtwl84zxrtl/ak +decimals = 6 + +[BSKT] +peggy_denom = inj193340xxv49hkug7r65xzc0l40tze44pee4fj94 +decimals = 5 + +[BTC] +peggy_denom = btc decimals = 8 -[ZEN] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen +[BUKET] +peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/buket +decimals = 7 + +[BULLS] +peggy_denom = factory/inj1zq37mfquqgud2uqemqdkyv36gdstkxl27pj5e3/bulls +decimals = 6 + +[BUSD] +peggy_denom = peggy0x4Fabb145d64652a948d72533023f6E7A623C7C53 decimals = 18 -[factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen +[Babykira] +peggy_denom = factory/inj15jeczm4mqwtc9lk4c0cyynndud32mqd4m9xnmu/$babykira +decimals = 6 + +[BadKid] +peggy_denom = factory/inj12cpkhwet3sv7ykwfusryk9zk8cj6kscjh08570/BadKid +decimals = 6 + +[Basket] +peggy_denom = peggy0xbC0899E527007f1B8Ced694508FCb7a2b9a46F53 +decimals = 5 + +[Bird INJ] +peggy_denom = factory/inj125hcdvz9dnhdqal2u8ctr7l0hd8xy9wdgzt8ld/binj +decimals = 6 + +[BitSong] +peggy_denom = peggy0x05079687D35b93538cbd59fe5596380cae9054A9 decimals = 18 -[hINJ] -peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc +[BnW] +peggy_denom = factory/inj188t9lmw8fh22x0np5wuf4zcz4ew748erz3s8ay/BnW +decimals = 6 + +[Bnana] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/banana decimals = 18 -[stINJ] -peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj +[Bonjo] +peggy_denom = inj19w5lfwk6k9q2d8kxnwsu4962ljnay85f9sgwn6 +decimals = 18 + +[Brazilian Digital Token] +peggy_denom = peggy0x420412E765BFa6d85aaaC94b4f7b708C89be2e2B +decimals = 4 + +[CAD] +peggy_denom = cad +decimals = 6 + +[CANTO] +peggy_denom = ibc/D91A2C4EE7CD86BBAFCE0FA44A60DDD9AFBB7EEB5B2D46C0984DEBCC6FEDFAE8 decimals = 18 + +[CAT] +peggy_denom = factory/inj1r5pxuhg6nz5puchgm8gx63whwn7jx0y0zsqp9w/CAT +decimals = 18 + +[CDT] +peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/chinhsieudeptrai +decimals = 0 + +[CEL] +peggy_denom = peggy0xaaAEBE6Fe48E54f431b0C390CfaF0b017d09D42d +decimals = 4 + +[CELL] +peggy_denom = peggy0x26c8AFBBFE1EBaca03C2bB082E69D0476Bffe099 +decimals = 18 + +[CHELE] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/CHELE +decimals = 6 + +[CHUT] +peggy_denom = factory/inj1gnflymetxrlfng7wc7yh9ejghrwzwhe542mr5l/CHUT +decimals = 6 + +[CHZ] +peggy_denom = peggy0x3506424F91fD33084466F402d5D97f05F8e3b4AF +decimals = 18 + +[CHZlegacy] +peggy_denom = inj1q6kpxy6ar5lkxqudjvryarrrttmakwsvzkvcyh +decimals = 8 + +[CLON] +peggy_denom = ibc/695B1D16DE4D0FD293E6B79451640974080B59AA60942974C1CC906568DED795 +decimals = 6 + +[CNR] +peggy_denom = factory/inj1qn3xnr49n0sw8h3v4h7udq5htl8lsfj2e0e8hw/CNR +decimals = 6 + +[COCK] +peggy_denom = factory/inj1eucxlpy6c387g5wrn4ee7ppshdzg3rh4t50ahf/cock +decimals = 6 + +[COCKOC] +peggy_denom = factory/inj1f595c8ml3sfvey4cd85j9f4ur02mymz87huu78/COCKOC +decimals = 6 + +[COKE] +peggy_denom = factory/inj158g7dfclyg9rr6u4ddxg9d2afwevq5d79g2tm6/coke +decimals = 6 + +[COMP] +peggy_denom = peggy0xc00e94Cb662C3520282E6f5717214004A7f26888 +decimals = 18 + +[COOK] +peggy_denom = factory/inj19zee9dacv8pw6jyax0jyytt06nln6ued0c6xxr/cook +decimals = 6 + +[CPS] +peggy_denom = factory/inj1wn45x52wm3sghe7qjp9hwhge9cuk632u2a4xl0/CPS +decimals = 6 + +[CRE] +peggy_denom = ibc/3A6DD3358D9F7ADD18CDE79BA10B400511A5DE4AE2C037D7C9639B52ADAF35C6 +decimals = 6 + +[CRSP] +peggy_denom = factory/inj18jvnp6shjm30l2kw30u5w7tsh6y7v4yuux8ydv/CRSP +decimals = 6 + +[CRSRL] +peggy_denom = factory/inj1mcwzdmtfvccrec9nd9qfsq0p6u25d7rcupcmf8/cruiser-legend +decimals = 6 + +[CRY] +peggy_denom = factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/crystal +decimals = 6 + +[CSDT] +peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/chinhdeptrai +decimals = 0 + +[CSM] +peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/CSM +decimals = 6 + +[CSSSS] +peggy_denom = factory/inj1rwpsgl0y7q9t2t6vkphz3ajxe3m249rydkzuyx/CSSSS +decimals = 6 + +[CUONGPRO] +peggy_denom = factory/inj1z6sccypszye9qke2w35m3ptmj7c4tjr2amedyf/cuongpro1234 +decimals = 0 + +[CVR] +peggy_denom = peggy0x3c03b4ec9477809072ff9cc9292c9b25d4a8e6c6 +decimals = 18 + +[CW20:TERRA167DSQKH2ALURX997WMYCW9YDKYU54GYSWE3YGMRS4LWUME3VMWKS8RUQNV] +peggy_denom = ibc/53F48DC0479065C7BFFDC8D612A45EE90B28E4876405164C4CC7300661D8463D +decimals = 0 + +[CW20:TERRA1MCCMZMCXT6CTQF94QHHCWT79SPL0XZ27ULUVYEH232WCPDN6SJYQMDFXD4] +peggy_denom = ibc/599367B1633AB9A8F8BC5A5BA6A9B533EDE655B85D46F9A00A53E5FF68E25E57 +decimals = 0 + +[CXLD] +peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/CXLD +decimals = 6 + +[Cosmos] +peggy_denom = ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9 +decimals = 6 + +[D3RD] +peggy_denom = factory/inj1kw7xh603l8gghvr955a5752ywph5uhnmuyv7gy/D3RD +decimals = 6 + +[DAI] +peggy_denom = peggy0x6B175474E89094C44Da98b954EedeAC495271d0F +decimals = 18 + +[DAO] +peggy_denom = factory/inj13vkxa9aku6vy8gy6thtvv9xv7l3ut8x3hnnevf/DAOC +decimals = 6 + +[DD] +peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/dingdong +decimals = 6 + +[DDL] +peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDL +decimals = 6 + +[DDLTEST] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDLTest +decimals = 6 + +[DDLTESTTWO] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDLTESTTWO +decimals = 6 + +[DEFI5] +peggy_denom = peggy0xfa6de2697D59E88Ed7Fc4dFE5A33daC43565ea41 +decimals = 18 + +[DEGEN] +peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/DEGEN +decimals = 6 + +[DEL] +peggy_denom = factory/inj1p2gs94exz0u2rwyg2sccxlpyfdyymp8k2ej7qa/DEL +decimals = 6 + +[DEMO] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/demo +decimals = 18 + +[DGNZ] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dgnz +decimals = 6 + +[DGNZZ] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzz +decimals = 0 + +[DGNZZZZ] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZZZZ +decimals = 6 + +[DGZN] +peggy_denom = factory/inj1rjfu66szrqkw6mua8mxrruyjym0fj65j7y8ukz/DGZN +decimals = 6 + +[DICES] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/dices +decimals = 6 + +[DICK] +peggy_denom = factory/inj1r35twz3smeeycsn4ugnd3w0l5h2lxe44ptuu4w/DICK +decimals = 6 + +[DISC] +peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/DISC +decimals = 6 + +[DJN] +peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/djn +decimals = 6 + +[DOGE] +peggy_denom = doge +decimals = 8 + +[DOGGO] +peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGO +decimals = 0 + +[DOGGOS] +peggy_denom = factory/inj1a4qjk3ytal0alrq566zy6z7vjv6tgrgg0h7wu9/DOGGOS +decimals = 6 + +[DOJ] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/doj +decimals = 6 + +[DOJE] +peggy_denom = factory/inj12e00ptda26wr4257jk8xktasjf5qrz97e76st2/doje +decimals = 6 + +[DOJO] +peggy_denom = factory/inj1any4rpwq7r850u6feajg5payvhwpunu9cxqevc/dojo +decimals = 6 + +[DOT] +peggy_denom = ibc/624BA9DD171915A2B9EA70F69638B2CEA179959850C1A586F6C485498F29EDD4 +decimals = 10 + +[DREAM] +peggy_denom = factory/inj1l2kcs4yxsxe0c87qy4ejmvkgegvjf0hkyhqk59/dream +decimals = 6 + +[DROGO] +peggy_denom = ibc/565FE65B82C091F8BAD1379FA1B4560C036C07913355ED4BD8D156DA63F43712 +decimals = 6 + +[DUCK] +peggy_denom = factory/inj12vqaz34lk6s7jrtgnhcd53ffya8vrx67m7cev2/DUCK +decimals = 6 + +[DUDE] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/dude +decimals = 6 + +[DUNE] +peggy_denom = factory/inj1zg54atp2u4f69fqjyxxx2v8pkzkrw47e3f6akr/DUNE +decimals = 6 + +[DV] +peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/dv +decimals = 6 + +[DZZY] +peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/DZZY +decimals = 6 + +[Denz] +peggy_denom = factory/inj1geky3rlgv7ycg8hnf8dzj475c0zmdkqstk9k37/Denz +decimals = 6 + +[Dojo Token] +peggy_denom = inj1zdj9kqnknztl2xclm5ssv25yre09f8908d4923 +decimals = 18 + +[ELON] +peggy_denom = inj10pqutl0av9ltrw9jq8d3wjwjayvz76jhfcfza0 +decimals = 6 + +[ENA] +peggy_denom = peggy0x57e114b691db790c35207b2e685d4a43181e6061 +decimals = 18 + +[ENJ] +peggy_denom = peggy0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c +decimals = 18 + +[ERIC] +peggy_denom = factory/inj1w7cw5tltax6dx7znehul98gel6yutwuvh44j77/eric +decimals = 6 + +[ERJ] +peggy_denom = factory/inj17v462f55kkuhjhvw7vdcjzd2wdk85yh8js3ug9/ERJ +decimals = 6 + +[ETH] +peggy_denom = eth +decimals = 18 + +[ETHBTCTrend] +peggy_denom = peggy0x6b7f87279982d919Bbf85182DDeAB179B366D8f2 +decimals = 18 + +[EUR] +peggy_denom = eur +decimals = 6 + +[EVAI] +peggy_denom = peggy0x50f09629d0afDF40398a3F317cc676cA9132055c +decimals = 8 + +[EVIINDEX] +peggy_denom = eviindex +decimals = 18 + +[EVMOS] +peggy_denom = ibc/16618B7F7AC551F48C057A13F4CA5503693FBFF507719A85BC6876B8BD75F821 +decimals = 18 + +[EVOI] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/evoi +decimals = 6 + +[FACTORY/PRYZM15K9S9P0AR0CX27NAYRGK6VMHYEC3LJ7VKRY7RX/UUSDSIM] +peggy_denom = ibc/6653E89983FE4CAE0DF67DF2257451B396D413431F583306E26DC6D7949CE648 +decimals = 0 + +[FAMILY] +peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/FAMILY +decimals = 6 + +[FET] +peggy_denom = ibc/C1D3666F27EA64209584F18BC79648E0C1783BB6EEC04A8060E4A8E9881C841B +decimals = 18 + +[FGDE] +peggy_denom = factory/inj1fukyda4ggze28p5eargxushyq7973kxgezn5hj/fgdekghk +decimals = 6 + +[FGFGGW] +peggy_denom = factory/inj1p83xm4qnhww3twkcff3wdu6hgjn534j9jdry9d/FGFGGW +decimals = 6 + +[FIO] +peggy_denom = factory/inj133xeq92ak7p87hntvamgq3047kj8jfqhry92a8/FIO +decimals = 6 + +[FNLS] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheFinals +decimals = 6 + +[FTM] +peggy_denom = peggy0x4E15361FD6b4BB609Fa63C81A2be19d873717870 +decimals = 18 + +[FTTOKEN] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FTTOKEN +decimals = 6 + +[FUN] +peggy_denom = factory/inj1k6vxjqq7xxdn96ftx9u099su4lxquhuexphfeu/FUN +decimals = 6 + +[FZZY] +peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/FZZY +decimals = 6 + +[Fetch.ai] +peggy_denom = peggy0xaea46a60368a7bd060eec7df8cba43b7ef41ad85 +decimals = 18 + +[Flm] +peggy_denom = factory/inj17ef2m8f9l8zypef5wxyrrxpdqyq4wd2rfl23d4/Flm +decimals = 6 + +[GALA] +peggy_denom = factory/inj1xtwk60ey0g03s69gfsure0kx8hwwuk24zl0g6l/GALA +decimals = 6 + +[GALAXY] +peggy_denom = factory/inj10zdjt8ylfln5xr3a2ruf9nwn6d5q2d2r3v6mh8/galaxy +decimals = 6 + +[GBP] +peggy_denom = gbp +decimals = 6 + +[GF] +peggy_denom = peggy0xaaef88cea01475125522e117bfe45cf32044e238 +decimals = 18 + +[GFT] +peggy_denom = factory/inj1rw9z8q7l9xgffuu66e6w0eje3y7yvur452rst6/GFT +decimals = 6 + +[GGM] +peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/GGM +decimals = 6 + +[GIGA] +peggy_denom = ibc/36C811A2253AA64B58A9B66C537B89348FE5792A8808AAA343082CBFCAA72278 +decimals = 5 + +[GINGER] +peggy_denom = factory/inj172ccd0gddgz203e4pf86ype7zjx573tn8g0df9/ginger +decimals = 6 + +[GLD] +peggy_denom = factory/inj1kgtamley85yj7eeuntz7ctty5wgfla5n6z2t42/gld +decimals = 6 + +[GLTO] +peggy_denom = peggy0xd73175f9eb15eee81745d367ae59309Ca2ceb5e2 +decimals = 6 + +[GME] +peggy_denom = ibc/CAA5AB050F6C3DFE878212A37A4A6D3BEA6670F5B9786FFF7EF2D34213025272 +decimals = 8 + +[GOLD] +peggy_denom = gold +decimals = 18 + +[GOLDIE] +peggy_denom = factory/inj130ayayz6ls8qpmu699axhlg7ygy8u6thjjk9nc/goldie +decimals = 6 + +[GRANJ] +peggy_denom = factory/inj1kprvcvuwkhpt33500guafzf09fr7p9yfklxlls/GRANJ +decimals = 6 + +[GRAY] +peggy_denom = factory/inj1g65a0tv2xl4vpu732k8u6yamq438t0lze8ksdx/GRAY +decimals = 6 + +[GROK] +peggy_denom = factory/inj1vgrf5mcvvg9p5c6jajqefn840nq74wjzgkt30z/grok +decimals = 6 + +[GRT] +peggy_denom = peggy0xc944E90C64B2c07662A292be6244BDf05Cda44a7 +decimals = 18 + +[GTHLI] +peggy_denom = factory/inj1uhxex6xjm6dfzud44ectgpkgfhhyxthmux8vd4/GTHLI +decimals = 6 + +[GYEN] +peggy_denom = peggy0xC08512927D12348F6620a698105e1BAac6EcD911 +decimals = 6 + +[God] +peggy_denom = factory/inj1x45ltvqzanx82wutwdxaayzzu0a7a8q5j3pz2f/God +decimals = 6 + +[HAPPY] +peggy_denom = factory/inj16ydu70t4s6z3lhcjh4aqkdpl9aag8pxve0kdyx/HAPPY +decimals = 6 + +[HDRO] +peggy_denom = factory/inj1etz0laas6h7vemg3qtd67jpr6lh8v7xz7gfzqw/hdro +decimals = 6 + +[HERB] +peggy_denom = factory/inj1mh7efynqjvw3rt2ntty2unmxr6kwaec5g5050y/HERB +decimals = 6 + +[HNY2] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/HNY2 +decimals = 0 + +[HNY3] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/HNY3 +decimals = 0 + +[HS] +peggy_denom = factory/inj1ce9d2lma4tvady03fnsd5nck54xhfeazks0y8d/hs +decimals = 6 + +[HSC2UPDATETEST] +peggy_denom = factory/inj1ce9d2lma4tvady03fnsd5nck54xhfeazks0y8d/hs2 +decimals = 6 + +[HT] +peggy_denom = peggy0x6f259637dcD74C767781E37Bc6133cd6A68aa161 +decimals = 18 + +[HUAHUA] +peggy_denom = ibc/E7807A46C0B7B44B350DA58F51F278881B863EC4DCA94635DAB39E52C30766CB +decimals = 6 + +[Hakmer] +peggy_denom = factory/inj1579jgr5gkv2h6z6wfwsmff2xvpuf4seyzx0xtn/Hakmer +decimals = 6 + +[Hallo123] +peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/hallo123 +decimals = 6 + +[HarryPotterEricNinjaKiraInj10Inu] +peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj10Inu +decimals = 6 + +[HarryPotterEricNinjaKiraInj20Inu] +peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj20Inu +decimals = 6 + +[HarryPotterEricNinjaKiraInj30Inu] +peggy_denom = factory/inj1a4zfxyanjr2u4w0063rmm9fcuyj9ts64ztkxex/HarryPotterEricNinjaKiraInj30Inu +decimals = 6 + +[Hydro] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/hdro +decimals = 6 + +[Hydro Wrapped INJ] +peggy_denom = inj18luqttqyckgpddndh8hvaq25d5nfwjc78m56lc +decimals = 18 + +[IBJ] +peggy_denom = factory/inj1czcqn0a8s0zud72p9zpfrkduljp0hhjjt927fe/IBJ +decimals = 6 + +[IDOGE] +peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/IDOGE +decimals = 6 + +[IIN] +peggy_denom = factory/inj1aeruvw7e4e90uqlegv52ttjtjdr60ndh2p5krq/IIN +decimals = 6 + +[IJTBOBI] +peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ijtbobi +decimals = 6 + +[IK] +peggy_denom = factory/inj1axtwu6xh6hzpayy7mm9qwyggp5adtjnnj6tmkj/injscribedtoken +decimals = 6 + +[IKINGS] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/ikings +decimals = 6 + +[ILEND] +peggy_denom = factory/inj19ae4ukagwrlprva55q9skskunv5ve7sr6myx7z/ilend-test-subdenom +decimals = 6 + +[ILL] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/ill +decimals = 0 + +[INC] +peggy_denom = factory/inj1nu7ftngqhuz6vazjj4wravdlweutam82rkt7j2/INC +decimals = 6 + +[INCEL] +peggy_denom = factory/inj17g4j3geupy762u0wrewqwprvtzar7k5et2zqsh/incel +decimals = 6 + +[IND] +peggy_denom = factory/inj1j0t7zeafazz33xx22a62esvghcyxwzzxeshv2z/IND +decimals = 6 + +[ING] +peggy_denom = factory/inj18x8g8gkc3kch72wtkh46a926634m784m3wnj50/ING +decimals = 6 + +[INJ] +peggy_denom = inj +decimals = 18 + +[INJAmanullahTest1] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/INJAmanullahTest1 +decimals = 6 + +[INJBR] +peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/INJBR +decimals = 6 + +[INJECT] +peggy_denom = factory/inj1j7zt6g03vpmg9p7g7qngvylfxqeuds73utsjnk/inject +decimals = 6 + +[INJER] +peggy_denom = factory/inj1sjmplasxl9zgj6yh45j3ndskgdhcfcss9djkdn/injer +decimals = 6 + +[INJF] +peggy_denom = factory/inj190nefqygs79s3cpvgjzhf7w9d7pzkag4u7cdce/INJF +decimals = 18 + +[INJINU] +peggy_denom = factory/inj1vjppa6h9lf75pt0v6qnxtej4xcl0qevnxzcrvm/injinu +decimals = 6 + +[INJKT] +peggy_denom = factory/inj19q4vqa9hxrnys04hc2se8axp5qkxf2u9qthewk/INJKT +decimals = 6 + +[INJOKI] +peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/INJOKI +decimals = 6 + +[INJPEPE] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/injpepe +decimals = 6 + +[INJS] +peggy_denom = factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/injs +decimals = 6 + +[INJSTKN] +peggy_denom = factory/inj1xx25yhe9ma0zy4ewyd0js8f4pm869gdek4g27j/injstkn +decimals = 6 + +[INJTEST] +peggy_denom = factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test +decimals = 6 + +[INJTEST2] +peggy_denom = factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test2 +decimals = 0 + +[INJTESTE] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/Injteste +decimals = 6 + +[INJX] +peggy_denom = factory/inj104h3hchl7ws8lp78zpvrunvsjdwfjc02r5d0fp/injx +decimals = 6 + +[INJbsc] +peggy_denom = inj1xcgprh58szttp0vqtztvcfy34tkpupr563ua40 +decimals = 18 + +[INJet] +peggy_denom = inj1v8gg4wzfauwf9l7895t0eyrrkwe65vh5n7dqmw +decimals = 18 + +[INO] +peggy_denom = factory/inj1fyanjlzhkcenneulrdjmuumc9njvzr08wxr4f6/INO +decimals = 6 + +[IOTX] +peggy_denom = peggy0x6fB3e0A217407EFFf7Ca062D46c26E5d60a14d69 +decimals = 18 + +[IPDAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipdai +decimals = 6 + +[IPEPE] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipepe +decimals = 6 + +[IPandaAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ipandaai +decimals = 6 + +[IPanther] +peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjectivePanther +decimals = 6 + +[IPantherN] +peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/injectivepanthernew +decimals = 6 + +[IPrint] +peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjectivePrinter +decimals = 6 + +[ITT] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/injtesttwo +decimals = 6 + +[ITTT] +peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/injectively-test-token +decimals = 6 + +[IUSD] +peggy_denom = factory/inj16020qlmmat0uwgjrj2nrcn3kglk6scj3e99uye/iusd +decimals = 6 + +[Inj] +peggy_denom = factory/inj1jcwlfkq76gvljfth56jjl360nxkzx8dlv6fjzr/Inj +decimals = 6 + +[InjDoge] +peggy_denom = factory/inj1rmjd5fdldnyfm62zx2v3q27eemqvq6x5ktae4f/InjDoge +decimals = 6 + +[Injective] +peggy_denom = peggy0x5512c04B6FF813f3571bDF64A1d74c98B5257332 +decimals = 18 + +[Injective Panda] +peggy_denom = factory/inj183lz632dna57ayuf6unqph5d0v2u655h2jzzyy/bamboo +decimals = 6 + +[Internet Explorer] +peggy_denom = factory/inj1zhevrrwywg3az9ulxd9u233eyy4m2mmr6vegsg/ninjb +decimals = 6 + +[J7J5] +peggy_denom = factory/inj1pvt70tt7epjudnurkqlxu62flfgy46j2ytj7j5/J7J5 +decimals = 6 + +[JCLUB] +peggy_denom = factory/inj12lhhu0hpszdq5wmt630wcspdxyewz3x2m04khh/JCLUB +decimals = 6 + +[JJJJ] +peggy_denom = factory/inj1eg83yq85cld5ngh2vynqlzmnzdplsallqrmlyd/JJJJ +decimals = 6 + +[JNI] +peggy_denom = factory/inj1q9mjtmhydvepcszp552lwyez52y7npjcvntprg/jni +decimals = 18 + +[JNI2] +peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni2 +decimals = 0 + +[JNI3] +peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni3 +decimals = 18 + +[JNI4] +peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni4 +decimals = 18 + +[JNI5] +peggy_denom = factory/inj19yes8qp3x2cz8y2kuyp70nvhe4nugdxaj4k5g3/jni5 +decimals = 18 + +[JPY] +peggy_denom = jpy +decimals = 6 + +[JUL] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/JUL +decimals = 6 + +[JUNO] +peggy_denom = ibc/D50E26996253EBAA8C684B9CD653FE2F7665D7BDDCA3D48D5E1378CF6334F211 +decimals = 6 + +[JUP] +peggy_denom = jup +decimals = 6 + +[JUSSY] +peggy_denom = factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/INJUSSY +decimals = 6 + +[Jet] +peggy_denom = factory/inj18r765lvc3pf975cx0k3derdxl302trjjnpwjgf/Jet +decimals = 6 + +[KAGE] +peggy_denom = inj1l49685vnk88zfw2egf6v65se7trw2497wsqk65 +decimals = 18 + +[KARATE] +peggy_denom = factory/inj1898t0vtmul3tcn3t0v8qe3pat47ca937jkpezv/karate +decimals = 6 + +[KARMA] +peggy_denom = factory/inj1d4ld9w7mf8wjyv5y7fnhpate07fguv3s3tmngm/karma +decimals = 6 + +[KATANA] +peggy_denom = factory/inj1vwn4x08hlactxj3y3kuqddafs2hhqzapruwt87/katana +decimals = 6 + +[KAVA] +peggy_denom = ibc/57AA1A70A4BC9769C525EBF6386F7A21536E04A79D62E1981EFCEF9428EBB205 +decimals = 6 + +[KELON] +peggy_denom = factory/inj1fdd59gyrtfkn7cflupyqqcj0t5c4whj0dzhead/KELON +decimals = 6 + +[KEN] +peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ken +decimals = 6 + +[KFF] +peggy_denom = factory/inj10uen9k593sll79n9egwh80t09enk7gsaqqehuh/KFN +decimals = 6 + +[KGM1] +peggy_denom = factory/inj12yazr8lq5ptlz2qj9y36v8zwmz90gy9gh35026/inj-test1 +decimals = 6 + +[KIA] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/KIA +decimals = 18 + +[KIKI] +peggy_denom = factory/inj1yc9tdwkff6fdhseshk2qe4737hysf3dv0jkq35/kiki +decimals = 6 + +[KING] +peggy_denom = factory/inj156zqdswjfcttc8hrvwd5z3nv5n53l5xg9mqvht/KING +decimals = 6 + +[KINJA] +peggy_denom = factory/inj1h33jkaqqalcy3wf8um6ewk4hxmfwf8uern470k/kinja +decimals = 6 + +[KIRA] +peggy_denom = factory/inj14ejqjyq8um4p3xfqj74yld5waqljf88f9eneuk/kira +decimals = 6 + +[KISH6] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/KISH6 +decimals = 6 + +[KIWI] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/KIWI +decimals = 18 + +[KNG] +peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/kennethii +decimals = 6 + +[KPEPE] +peggy_denom = pepe +decimals = 18 + +[KRA] +peggy_denom = factory/inj1leuc4h7w5seyw4mc58xk6qtn2dm23hj79sdca9/korra +decimals = 6 + +[KRI] +peggy_denom = factory/inj17z0plmzyrz4zrrfaps99egwqk4xk6kpq4728xg/kril-test +decimals = 6 + +[KUJI] +peggy_denom = ibc/9A115B56E769B92621FFF90567E2D60EFD146E86E867491DB69EEDA9ADC36204 +decimals = 6 + +[KUSD] +peggy_denom = factory/inj1xmc078w8gv42v99a5mctsm2e4pldvu7jtd08ym/kusd +decimals = 6 + +[Koncga] +peggy_denom = factory/inj1hr4rj6k72emjh9u7l6zg58c0n0daezz68060aq/Koncga +decimals = 6 + +[LABS] +peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/labs +decimals = 6 + +[LADY] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/LADY +decimals = 18 + +[LAHN] +peggy_denom = factory/inj133xeq92ak7p87hntvamgq3047kj8jfqhry92a8/LAHN +decimals = 6 + +[LAMA] +peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/LAMA +decimals = 6 + +[LAMA2] +peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA2 +decimals = 6 + +[LAMBO] +peggy_denom = peggy0x3d2b66BC4f9D6388BD2d97B95b565BE1686aEfB3 +decimals = 18 + +[LCK] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck +decimals = 18 + +[LDO] +peggy_denom = inj1me6t602jlndzxgv2d7ekcnkjuqdp7vfh4txpyy +decimals = 8 + +[LEO] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/LEO +decimals = 6 + +[LILI] +peggy_denom = factory/inj14l2vccns668jq3gp0hgwl5lcpatx9nqq3m7wyy/LILI +decimals = 8 + +[LINK] +peggy_denom = peggy0x514910771AF9Ca656af840dff83E8264EcF986CA +decimals = 18 + +[LIOR] +peggy_denom = factory/inj1cjus5ragdkvpmt627fw7wkj2ydsra9s0vap4zx/lior +decimals = 6 + +[LOKI] +peggy_denom = ibc/49FFD5EA91774117260257E30924738A5A1ECBD00ABDBF0AF3FD51A63AE752CD +decimals = 0 + +[LOL] +peggy_denom = factory/inj19zqaa78d67xmzxp3e693n3zxwpc5fq587s2lyh/LOL +decimals = 6 + +[LUNA] +peggy_denom = ibc/B8AF5D92165F35AB31F3FC7C7B444B9D240760FA5D406C49D24862BD0284E395 +decimals = 6 + +[LVN] +peggy_denom = ibc/4971C5E4786D5995EC7EF894FCFA9CF2E127E95D5D53A982F6A062F3F410EDB8 +decimals = 6 + +[LYM] +peggy_denom = peggy0xc690f7c7fcffa6a82b79fab7508c466fefdfc8c5 +decimals = 18 + +[Lenz] +peggy_denom = factory/inj19xadglv3eaaavaeur5553hjj99c3vtkajhj4r6/Lenz +decimals = 6 + +[LenzTest] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest +decimals = 6 + +[LenzTestingTestnetFinal] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTestingTestnetFinal +decimals = 6 + +[LenzToken] +peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzToken +decimals = 6 + +[LenzTokenFinalTest] +peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTokenFinalTest +decimals = 6 + +[Lido DAO Token] +peggy_denom = peggy0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 +decimals = 18 + +[MADRA] +peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADAFAKA +decimals = 18 + +[MAGA] +peggy_denom = peggy0x576e2BeD8F7b46D34016198911Cdf9886f78bea7 +decimals = 9 + +[MAN] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/MAN +decimals = 6 + +[MATIC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/matic +decimals = 18 + +[MBIST] +peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/MBIST +decimals = 6 + +[MBS] +peggy_denom = factory/inj1wazq0k74kqmll9kzzhy300tc7slxn4t2py2pz9/mysubdenom +decimals = 6 + +[MCN] +peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/mcn +decimals = 6 + +[MCN1] +peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/mcn1 +decimals = 6 + +[MEME] +peggy_denom = factory/inj1y2q2m0j65utqr3sr4fd0lh0httm2dv8z0h6qrk/MEME +decimals = 6 + +[MEMEME] +peggy_denom = peggy0x1A963Df363D01EEBB2816b366d61C917F20e1EbE +decimals = 18 + +[MFT] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft +decimals = 6 + +[MFZ] +peggy_denom = factory/inj175n4kj6va8yejh7w35t5v5f5gfm6ecyasgjnn9/MFZ +decimals = 6 + +[MHC] +peggy_denom = factory/inj1wqxweeera42jdgxaj44t9apth40t6q52uhadqv/MHC +decimals = 18 + +[MILA] +peggy_denom = factory/inj1z08usf75ecfp3cqtwey6gx7nr79s3agal3k8xf/mila +decimals = 6 + +[MILK] +peggy_denom = factory/inj1fpl63h7at2epr55yn5svmqkq4fkye32vmxq8ry/milk +decimals = 6 + +[MIRO] +peggy_denom = factory/inj14vn4n9czlvgpjueznux0a9g2xlqzmrzm4xyl4s/MIRO +decimals = 6 + +[MITHU] +peggy_denom = factory/inj1n50p90fllw0pae3663v6hqagwst063u3m2eczf/MITHU +decimals = 6 + +[MITOKEN] +peggy_denom = factory/inj100z6tw8f2vs8ntrkd8fj4wj3cd6y9usg8dhpmc/subtoken +decimals = 0 + +[MJB] +peggy_denom = factory/inj17z0plmzyrz4zrrfaps99egwqk4xk6kpq4728xg/majin-buu-test +decimals = 6 + +[MM93] +peggy_denom = factory/inj1gpwhwhmeuk4pu7atg9t30e7jc5ywvc58jpe9kc/MM93 +decimals = 6 + +[MONI] +peggy_denom = factory/inj12ecryjw7km6a9w8lvlrlpqg7csl8ax3lgnav9d/MONI +decimals = 6 + +[MOONIFY] +peggy_denom = factory/inj1ktq0gf7altpsf0l2qzql4sfs0vc0ru75cnj3a6/moonify +decimals = 6 + +[MOONLY] +peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonly +decimals = 6 + +[MOR] +peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/MOR_test +decimals = 6 + +[MOTHER] +peggy_denom = ibc/984E90A8E0265B9804B7345C7542BF9B3046978AE5557B4AABADDFE605CACABE +decimals = 6 + +[MPEPE] +peggy_denom = mpepe +decimals = 18 + +[MSTR] +peggy_denom = factory/inj176tn6dtrvak9vrqkj2ejysuy5kctc6nphw7sfz/MSTR +decimals = 6 + +[MT] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mt +decimals = 6 + +[MT2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest2 +decimals = 6 + +[MTS] +peggy_denom = factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/MagicTest +decimals = 6 + +[MYTOKEN] +peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/Mytoken2 +decimals = 6 + +[MitoTest] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/mitotest1 +decimals = 18 + +[MyINJ] +peggy_denom = factory/inj1ddu9unqz0tfazh3js36q0lr0dnhcql8slm3hkg/inj-test +decimals = 6 + +[MytokenTest1] +peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/MytokenTest1 +decimals = 6 + +[NAFU] +peggy_denom = factory/inj14e53h3c6fmvxlwrzfaewd5p2x7em787s4kgc8g/NAFU +decimals = 6 + +[NANAS] +peggy_denom = factory/inj1zn8qlkjautjt3mvr7xwuvpe6eddqt5w3mak5s7/NANAS +decimals = 6 + +[NANTA] +peggy_denom = factory/inj12ecryjw7km6a9w8lvlrlpqg7csl8ax3lgnav9d/NANTA +decimals = 6 + +[NBLA] +peggy_denom = factory/inj1d0zfq42409a5mhdagjutl8u6u9rgcm4h8zfmfq/nbla +decimals = 6 + +[NBZ] +peggy_denom = ibc/1011E4D6D4800DA9B8F21D7C207C0B0C18E54E614A8576037F066B775210709D +decimals = 6 + +[NBZAIRDROP] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/nbzairdrop +decimals = 0 + +[NEOK] +peggy_denom = ibc/F6CC233E5C0EA36B1F74AB1AF98471A2D6A80E2542856639703E908B4D93E7C4 +decimals = 18 + +[NEX] +peggy_denom = factory/inj1v5ae8r4ax90k75qk7yavfmsv96grynqwyl0xg6/NEX +decimals = 0 + +[NEXO] +peggy_denom = peggy0xB62132e35a6c13ee1EE0f84dC5d40bad8d815206 +decimals = 18 + +[NINJA] +peggy_denom = factory/inj1xtel2knkt8hmc9dnzpjz6kdmacgcfmlv5f308w/ninja +decimals = 6 + +[NINJB] +peggy_denom = factory/inj1ezzzfm2exjz57hxuc65sl8s3d5y6ee0kxvu67n/ninjb +decimals = 6 + +[NINJI] +peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninjainu +decimals = 18 + +[NIS] +peggy_denom = factory/inj1qrnmf8dufs4xfln8nmgdqpfn7nvdnz27ntret0/NIS +decimals = 6 + +[NInj] +peggy_denom = factory/inj1kchqyuuk6mnjf4ndqasrswsfngd7jkrpduuyjr/NInj +decimals = 6 + +[NLC] +peggy_denom = inj1r9h59ke0a77zkaarr4tuq25r3lt9za4r2mgyf4 +decimals = 6 + +[NLT] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT +decimals = 6 + +[NLT2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT2 +decimals = 6 + +[NLT3] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/NLT3 +decimals = 6 + +[NOBI] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/nobi +decimals = 6 + +[NOBITCHES] +peggy_denom = factory/inj14n8f39qdg6t68s5z00t4vczvkcvzlgm6ea5vk5/nobitches +decimals = 6 + +[NOIA] +peggy_denom = peggy0xa8c8CfB141A3bB59FEA1E2ea6B79b5ECBCD7b6ca +decimals = 18 + +[NOIS] +peggy_denom = ibc/DD9182E8E2B13C89D6B4707C7B43E8DB6193F9FF486AFA0E6CF86B427B0D231A +decimals = 6 + +[NONE] +peggy_denom = peggy0x903ff0ba636E32De1767A4B5eEb55c155763D8B7 +decimals = 18 + +[NONJA] +peggy_denom = inj1fu5u29slsg2xtsj7v5la22vl4mr4ywl7wlqeck +decimals = 18 + +[NPEPE] +peggy_denom = factory/inj1ga982yy0wumrlt4nnj79wcgmw7mzvw6jcyecl0/npepe +decimals = 6 + +[NPP] +peggy_denom = factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/npepe +decimals = 6 + +[NRL] +peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/NRL +decimals = 6 + +[NT] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/NewToken +decimals = 6 + +[NTR] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/NTR +decimals = 6 + +[Neptune Receipt INJ] +peggy_denom = inj1rmzufd7h09sqfrre5dtvu5d09ta7c0t4jzkr2f +decimals = 18 + +[OCEAN] +peggy_denom = peggy0x967da4048cD07aB37855c090aAF366e4ce1b9F48 +decimals = 18 + +[OLI] +peggy_denom = factory/inj1xhz824048f03pq9zr3dx72zck7fv0r4kg4nr6j/OLI +decimals = 6 + +[OMI] +peggy_denom = peggy0xed35af169af46a02ee13b9d79eb57d6d68c1749e +decimals = 18 + +[OMNI] +peggy_denom = peggy0x36e66fbbce51e4cd5bd3c62b637eb411b18949d4 +decimals = 18 + +[ONE] +peggy_denom = factory/inj127fnqclnf2s2d3trhxc8yzuae6lq4zkfasehr0/ONE +decimals = 1 + +[OP] +peggy_denom = op +decimals = 18 + +[ORAI] +peggy_denom = ibc/C20C0A822BD22B2CEF0D067400FCCFB6FAEEE9E91D360B4E0725BD522302D565 +decimals = 6 + +[ORNE] +peggy_denom = ibc/3D99439444ACDEE71DBC4A774E49DB74B58846CCE31B9A868A7A61E4C14D321E +decimals = 6 + +[OSMO] +peggy_denom = ibc/92E0120F15D037353CFB73C14651FC8930ADC05B93100FD7754D3A689E53B333 +decimals = 6 + +[OX] +peggy_denom = peggy0x78a0A62Fba6Fb21A83FE8a3433d44C73a4017A6f +decimals = 18 + +[Oraichain] +peggy_denom = peggy0x4c11249814f11b9346808179Cf06e71ac328c1b5 +decimals = 18 + +[PANZ] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/PANZ +decimals = 6 + +[PAXG] +peggy_denom = peggy0x45804880De22913dAFE09f4980848ECE6EcbAf78 +decimals = 18 + +[PB] +peggy_denom = factory/inj124edzakrq96vwfxp996d0nkr3dzlcsy84c375w/PB +decimals = 0 + +[PED] +peggy_denom = factory/inj14x449v06kj4fw6s9wnx8ku23zzuazfpkz6a73v/PED +decimals = 6 + +[PENJY] +peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/penjy +decimals = 6 + +[PEPE] +peggy_denom = peggy0x6982508145454ce325ddbe47a25d4ec3d2311933 +decimals = 18 + +[PHUC] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/phuc +decimals = 6 + +[PHX] +peggy_denom = factory/inj1d9pn8qvfh75fpxw5lkcrmuwh94qlgctzuzp7hv/phoenix +decimals = 6 + +[PIKA] +peggy_denom = factory/inj1h4usvhhva6dgmun9rk4haeh8lynln7yhk6ym00/pika +decimals = 6 + +[PINJA] +peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/pinja +decimals = 6 + +[PINKIE] +peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/PINKIE +decimals = 6 + +[PKT] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/PKT +decimals = 6 + +[PLY] +peggy_denom = factory/inj1vumd9aald3efd8jjegwvppedyzmf7k4x3rv3zn/PLY +decimals = 6 + +[PMN] +peggy_denom = factory/inj1xwdmsf2pd3eg6axkdgkjpaq689f9mjun0qvrgt/PMN +decimals = 6 + +[POG] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/pog +decimals = 6 + +[POIL] +peggy_denom = factory/inj1h0ypsdtjfcjynqu3m75z2zwwz5mmrj8rtk2g52/upoil +decimals = 6 + +[POINT] +peggy_denom = factory/inj1zaem9jqplp08hkkd5vcl6vmvala9qury79vfj4/point +decimals = 0 + +[POL] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/POL +decimals = 6 + +[POOL] +peggy_denom = peggy0x0cEC1A9154Ff802e7934Fc916Ed7Ca50bDE6844e +decimals = 18 + +[POOR] +peggy_denom = peggy0x9D433Fa992C5933D6843f8669019Da6D512fd5e9 +decimals = 8 + +[PP] +peggy_denom = factory/inj1p5g2l4gknhnflr5qf0jdrp9snvx747nqttrh6k/pop +decimals = 6 + +[PPenguin] +peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/PPenguin +decimals = 6 + +[PRI] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/PRI +decimals = 6 + +[PROF] +peggy_denom = factory/inj1tnj7z7ufm5uwtf5n4nzlvxyy93p8shjanj9s8r/Prof +decimals = 6 + +[PROJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/proj +decimals = 18 + +[PROJX] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/projx +decimals = 18 + +[PTXE] +peggy_denom = factory/inj1g055dn0qmm9qyrnuaryffqe3hu8qja0qnslx87/PTXE +decimals = 6 + +[PUG] +peggy_denom = peggy0xf9a06dE3F6639E6ee4F079095D5093644Ad85E8b +decimals = 18 + +[PUNK] +peggy_denom = factory/inj1esz96ru3guug4ctmn5chjmkymt979sfvufq0hs/punk +decimals = 6 + +[PVP] +peggy_denom = peggy0x9B44793a0177C84DD01AD81137db696531902871 +decimals = 8 + +[PWH] +peggy_denom = factory/inj1smk28fqgy0jztu066ngfcwqc3lv65xgq79wly8/PWH +decimals = 6 + +[PYTH] +peggy_denom = ibc/F3330C1B8BD1886FE9509B94C7B5398B892EA41420D2BC0B7C6A53CB8ED761D6 +decimals = 6 + +[PYTHlegacy] +peggy_denom = inj1tjcf9497fwmrnk22jfu5hsdq82qshga54ajvzy +decimals = 6 + +[PYUSD] +peggy_denom = ibc/4367FD29E33CDF0487219CD3E88D8C432BD4C2776C0C1034FF05A3E6451B8B11 +decimals = 6 + +[PZZ] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/pzz +decimals = 6 + +[Pep] +peggy_denom = factory/inj1zvy8xrlhe7ex9scer868clfstdv7j6vz790kwa/pepper +decimals = 6 + +[Phuc] +peggy_denom = factory/inj1995xnrrtnmtdgjmx0g937vf28dwefhkhy6gy5e/phuc +decimals = 6 + +[Pikachu] +peggy_denom = factory/inj1h9zu2u6yqf3t5uym75z94zsqfhazzkyg39957u/pika +decimals = 6 + +[Polkadot] +peggy_denom = inj1spzwwtr2luljr300ng2gu52zg7wn7j44m92mdf +decimals = 10 + +[Polygon] +peggy_denom = peggy0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 +decimals = 18 + +[Punk Token] +peggy_denom = inj1wmrzttj7ms7glplek348vedx4v2ls467n539xt +decimals = 18 + +[QAQA] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QAQA +decimals = 0 + +[QAT] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen +decimals = 8 + +[QATEST] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST +decimals = 6 + +[QATEST2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST2 +decimals = 6 + +[QATEST3] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST3 +decimals = 6 + +[QATEST4] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QATEST4 +decimals = 6 + +[QATS] +peggy_denom = factory/inj1navfuxj73mzrc8a28uwnwz4x4udzdsv9r5e279/qa-test +decimals = 0 + +[QN] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QN +decimals = 0 + +[QNA] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/QNA +decimals = 6 + +[QNT] +peggy_denom = peggy0x4a220e6096b25eadb88358cb44068a3248254675 +decimals = 18 + +[QTUM] +peggy_denom = factory/inj1jgc9ptfwgyapfrr0kgdjjnwpdqck24pp59uma3/QTUM +decimals = 6 + +[QUK] +peggy_denom = factory/inj1y39rszzrs9hpfmt5uwkp6gxyvawrkt4krateru/QUK +decimals = 6 + +[QUNT] +peggy_denom = factory/inj127l5a2wmkyvucxdlupqyac3y0v6wqfhq03ka64/qunt +decimals = 6 + +[RAI] +peggy_denom = peggy0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919 +decimals = 18 + +[RAMEN] +peggy_denom = factory/inj1z5utcc5u90n8a5m8gv30char6j4hdzxz6t3pke/ramen +decimals = 6 + +[RAMENV2] +peggy_denom = factory/inj15d5v02thnac8mc79hx0nzuz4rjxuccy7rc63x3/RAMENV2 +decimals = 6 + +[RAY] +peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/RAY +decimals = 6 + +[RBT] +peggy_denom = factory/inj130g9fldgdee4dcqazhuaqxhkr6rx75p8ufrl3m/robo-test +decimals = 6 + +[RD] +peggy_denom = factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/ak +decimals = 6 + +[RED] +peggy_denom = factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/ReactDev +decimals = 6 + +[REKT] +peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/REKT +decimals = 6 + +[RIBBINJ] +peggy_denom = factory/inj1kdcu73qfsaq37x6vfq05a8gqcxftepxyhcvyg5/RIBBINJ +decimals = 9 + +[RIBBIT] +peggy_denom = peggy0xb794Ad95317f75c44090f64955954C3849315fFe +decimals = 18 + +[RICE] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/RICE +decimals = 12 + +[RKO] +peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/RKO +decimals = 6 + +[RON] +peggy_denom = factory/inj1fe2cl7p79g469604u6x5elrphm7k5nruylms52/RON +decimals = 6 + +[ROOT] +peggy_denom = peggy0xa3d4BEe77B05d4a0C943877558Ce21A763C4fa29 +decimals = 6 + +[ROUTE] +peggy_denom = ibc/90FE7A5C905DA053907AEEABAE0C57E64C76D5346EE46F0E3C994C5470D311C0 +decimals = 0 + +[RUNE] +peggy_denom = peggy0x3155BA85D5F96b2d030a4966AF206230e46849cb +decimals = 18 + +[RUNES] +peggy_denom = factory/inj1ewgk2lynac2aa45yldl8cnnyped3ed8y0t76wx/RUNES +decimals = 6 + +[RYN] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/RYN +decimals = 6 + +[SAE] +peggy_denom = factory/inj152mdu38fkkk4fl7ycrpdqxpm63w3ztadgtktyr/sae +decimals = 6 + +[SAGA] +peggy_denom = ibc/AF921F0874131B56897A11AA3F33D5B29CD9C147A1D7C37FE8D918CB420956B2 +decimals = 6 + +[SAMOLEANS] +peggy_denom = ibc/6FFBDD9EACD2AC8C3CB7D3BEE5258813BC41AEEEA65C150ECB63E2DDAC8FB454 +decimals = 0 + +[SANTA] +peggy_denom = factory/inj1zvy8xrlhe7ex9scer868clfstdv7j6vz790kwa/santa +decimals = 6 + +[SCRT] +peggy_denom = ibc/0954E1C28EB7AF5B72D24F3BC2B47BBB2FDF91BDDFD57B74B99E133AED40972A +decimals = 6 + +[SDEX] +peggy_denom = peggy0x5DE8ab7E27f6E7A1fFf3E5B337584Aa43961BEeF +decimals = 18 + +[SEI] +peggy_denom = sei +decimals = 6 + +[SEX] +peggy_denom = factory/inj1hqlt3hl54m2qf86r3xzqa4fjsxrylr3sk9gdzq/SEX +decimals = 6 + +[SGINU] +peggy_denom = factory/inj17ejzl5zkkxqt73w7xq90vfta5typu2yk7uj3gw/SGINU +decimals = 6 + +[SHA] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa +decimals = 6 + +[SHIB] +peggy_denom = peggy0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE +decimals = 18 + +[SHIBAINU] +peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/SHIBAINU +decimals = 6 + +[SHITBIT] +peggy_denom = factory/inj169w99uj9psyvhu7zunc5tnp8jjflc53np7vw06/SHITBIT +decimals = 6 + +[SHROOM] +peggy_denom = inj1300xcg9naqy00fujsr9r8alwk7dh65uqu87xm8 +decimals = 18 + +[SHSA] +peggy_denom = factory/inj1t9em6lv5x94w0d66nng6tqkrtrlhcpj9penatm/SHSA +decimals = 6 + +[SHURIKEN] +peggy_denom = factory/inj1gflhshg8yrk8rrr3sgswhmsnygw9ghzdsn05a0/shuriken +decimals = 6 + +[SKIPBIDIDOBDOBDOBYESYESYESYES] +peggy_denom = peggy0x5085202d0A4D8E4724Aa98C42856441c3b97Bc6d +decimals = 9 + +[SKk] +peggy_denom = factory/inj10jzww6ws9djfuhpnq8exhzf6um039fcww99myr/SKk +decimals = 6 + +[SLZ] +peggy_denom = factory/inj176tn6dtrvak9vrqkj2ejysuy5kctc6nphw7sfz/SLZ +decimals = 6 + +[SMELLY] +peggy_denom = factory/inj10pz3xq7zf8xudqxaqealgyrnfk66u3c99ud5m2/smelly +decimals = 6 + +[SMR] +peggy_denom = factory/inj105rtd2gweld3ecde79tg4k8f53pe3ekl8n5t3v/SMR +decimals = 6 + +[SNOWY] +peggy_denom = factory/inj1ml33x7lkxk6x2x95d3alw4h84evlcdz2gnehmk/snowy +decimals = 6 + +[SNS] +peggy_denom = ibc/4BFB3FB1903142C5A7570EE7697636436E52FDB99AB8ABE0257E178A926E2568 +decimals = 8 + +[SNX] +peggy_denom = peggy0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F +decimals = 18 + +[SOL] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 +decimals = 8 + +[SOLlegacy] +peggy_denom = inj1sthrn5ep8ls5vzz8f9gp89khhmedahhdkqa8z3 +decimals = 8 + +[SOMM] +peggy_denom = ibc/34346A60A95EB030D62D6F5BDD4B745BE18E8A693372A8A347D5D53DBBB1328B +decimals = 6 + +[SPDR] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spdr +decimals = 6 + +[SPDR2] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spdr2 +decimals = 6 + +[SPNG] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/spng +decimals = 6 + +[SPUUN] +peggy_denom = factory/inj1flkktfvf8nxvk300f2z3vxglpllpw59c563pk7/spuun +decimals = 6 + +[SS] +peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/SuperSonic +decimals = 6 + +[SS-INJ-test] +peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/SS-INJ-test +decimals = 6 + +[ST] +peggy_denom = factory/inj15gxryjn2m9yze97lem488qgq2q84vge8eksqfq/supertoken123 +decimals = 6 + +[STARS] +peggy_denom = peggy0xc55c2175E90A46602fD42e931f62B3Acc1A013Ca +decimals = 18 + +[STINJ] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/stinj +decimals = 18 + +[STRD] +peggy_denom = ibc/3FDD002A3A4019B05A33D324B2F29748E77AF501BEA5C96D1F28B2D6755F9F25 +decimals = 6 + +[STT] +peggy_denom = peggy0xaC9Bb427953aC7FDDC562ADcA86CF42D988047Fd +decimals = 18 + +[STX] +peggy_denom = stx +decimals = 6 + +[SUDD] +peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD +decimals = 6 + +[SUDD2] +peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD2 +decimals = 6 + +[SUDD3] +peggy_denom = factory/inj1vk5fgqjffp7e34elj8dxzwfvfqdtp5yn09gwmz/SUDD3 +decimals = 6 + +[SUI] +peggy_denom = sui +decimals = 9 + +[SUR] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/SUR +decimals = 6 + +[SUSDT] +peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/susdt +decimals = 6 + +[SUSHI] +peggy_denom = inj1n73yuus64z0yrda9hvn77twkspc4uste9j9ydd +decimals = 18 + +[SWAP] +peggy_denom = peggy0xcc4304a31d09258b0029ea7fe63d032f52e44efe +decimals = 18 + +[Sea] +peggy_denom = factory/inj1xh6c9px2aqg09cnd8ls2wxykm70d7ygxce2czh/Sea +decimals = 6 + +[Shiba INJ] +peggy_denom = factory/inj1v0yk4msqsff7e9zf8ktxykfhz2hen6t2u4ue4r/shiba inj +decimals = 6 + +[Shinobi] +peggy_denom = factory/inj1t02au5gsk40ev9jaq0ggcyry9deuvvza6s4wav/nobi +decimals = 6 + +[Shrute] +peggy_denom = factory/inj1dng0drt6hncescgh0vwz22wjlhysn804pxnlar/Shrute +decimals = 6 + +[Shuriken Token] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shuriken +decimals = 6 + +[Solana] +peggy_denom = ibc/A8B0B746B5AB736C2D8577259B510D56B8AF598008F68041E3D634BCDE72BE97 +decimals = 8 + +[Sommelier] +peggy_denom = peggy0xa670d7237398238DE01267472C6f13e5B8010FD1 +decimals = 6 + +[SteadyBTC] +peggy_denom = peggy0x4986fD36b6b16f49b43282Ee2e24C5cF90ed166d +decimals = 18 + +[SteadyETH] +peggy_denom = peggy0x3F07A84eCdf494310D397d24c1C78B041D2fa622 +decimals = 18 + +[Stride Staked Injective] +peggy_denom = ibc/AC87717EA002B0123B10A05063E69BCA274BA2C44D842AEEB41558D2856DCE93 +decimals = 18 + +[Summoners Arena Essence] +peggy_denom = ibc/0AFCFFE18230E0E703A527F7522223D808EBB0E02FDBC84AAF8A045CD8FE0BBB +decimals = 8 + +[SushiSwap] +peggy_denom = peggy0x6B3595068778DD592e39A122f4f5a5cF09C90fE2 +decimals = 18 + +[TAB] +peggy_denom = peggy0x36B3D7ACe7201E28040eFf30e815290D7b37ffaD +decimals = 18 + +[TALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis +decimals = 6 + +[TALKS1N] +peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TALKS1N +decimals = 6 + +[TALKSIN] +peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TALKSIN +decimals = 6 + +[TBT] +peggy_denom = factory/inj1xyfrl7wrsczv7ah5tvvpcwnp3vlc3n9terc9d6/TBT +decimals = 18 + +[TCK] +peggy_denom = factory/inj1fcj6mmsj44wm04ff77kuncqx6vg4cl9qsgugkg/TCHUCA +decimals = 6 + +[TEST] +peggy_denom = factory/inj153aamk0zm4hfmv66pzgf629a9mjs2fyjr46y6q/TEST +decimals = 6 + +[TEST1] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test1 +decimals = 6 + +[TEST10] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test10 +decimals = 6 + +[TEST11] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test11 +decimals = 6 + +[TEST12] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test12 +decimals = 6 + +[TEST1234] +peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/test1234 +decimals = 6 + +[TEST13] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test13 +decimals = 6 + +[TEST14] +peggy_denom = factory/inj1mux0he68umjpcy8ltefeuxm9ha2ww3689rv2g4/TEST14 +decimals = 6 + +[TEST2] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test2 +decimals = 6 + +[TEST3] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/test3 +decimals = 6 + +[TEST4] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test4 +decimals = 6 + +[TEST5] +peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/TEST5 +decimals = 9 + +[TEST6] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST6 +decimals = 6 + +[TEST9] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test9 +decimals = 6 + +[TESTES] +peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/Testess +decimals = 6 + +[TESTING] +peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TESTING +decimals = 6 + +[TESTINTERNAL1] +peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TESTINTERNAL1 +decimals = 6 + +[TESTNETMEMECOIN69] +peggy_denom = factory/inj1u4uuueup7p30zfl9xvslddnen45dg7pylsq4td/TESTNETMEMECOIN69 +decimals = 6 + +[TESTTOKEN] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken1 +decimals = 0 + +[TESTTT] +peggy_denom = factory/inj13njxly446jm3gd8y84qnk3sm6wu0pjjc47mwl6/TESTTT +decimals = 6 + +[TEZ] +peggy_denom = factory/inj10nzx9ke6em2lhsvzakut8tah53m6j3972g4yhm/TEZ +decimals = 6 + +[TEvmos] +peggy_denom = ibc/300B5A980CA53175DBAC918907B47A2885CADD17042AD58209E777217D64AF20 +decimals = 18 + +[TFC] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TFC +decimals = 1 + +[TFT] +peggy_denom = peggy0x05599Ff7e3FC3bbA01e3F378dC9C20CB5Bea2b75 +decimals = 18 + +[TIA] +peggy_denom = ibc/F51BB221BAA275F2EBF654F70B005627D7E713AFFD6D86AFD1E43CAA886149F4 +decimals = 6 + +[TINJ] +peggy_denom = peggy0x85AbEac4F09762e28a49D7dA91260A46766F4F79 +decimals = 18 + +[TINJT] +peggy_denom = factory/inj1gdxcak50wsvltn3pmcan437kt5hdnm0y480pj0/TINJT +decimals = 6 + +[TITOU] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TITOU +decimals = 6 + +[TITS] +peggy_denom = factory/inj1uacfgkzyjqcwll6l4n5l23y9k0k80alsc2yt0k/TITS +decimals = 6 + +[TIX] +peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/tix +decimals = 6 + +[TKN] +peggy_denom = peggy0xA4eE602c16C448Dc0D1fc38E6FC12f0d6C672Cbe +decimals = 18 + +[TLKSN] +peggy_denom = factory/inj1cs9k0q8pv0446nxg66tu0u2w26qd52rc5pxvpy/TLKSN +decimals = 6 + +[TMERC] +peggy_denom = factory/inj13xl0ffk4hugh48cpvtxxulvyelv758anhdruw0/TMERC +decimals = 6 + +[TMTT] +peggy_denom = factory/inj135fg9urn32jrddswnlqjuryvsz2l3z7w0xlc3g/TMTT +decimals = 6 + +[TNAM1QXVG64PSVHWUMV3MWRRJFCZ0H3T3274HWGGYZCEE] +peggy_denom = ibc/F5EAC29F246C99F56219AAF6F70A521B9AB0082D8FFC63648744C4BADD28976C +decimals = 0 + +[TOM] +peggy_denom = factory/inj10pdtl2nvatk5we2z8q7jx70mqgz244vwdeljnr/TOM +decimals = 6 + +[TOPE] +peggy_denom = factory/inj18jnrfl0w8j3r9mg0xhs53wqjfn26l4qrx3rw7u/TOPE +decimals = 6 + +[TOR] +peggy_denom = factory/inj18g3fzlzcvm869nfqx6vx3w569l2ehc2x7yd9zn/TOR +decimals = 6 + +[TPINKIE] +peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/TPINKIE +decimals = 6 + +[TREN] +peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/TREN +decimals = 6 + +[TRIP] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TRIP +decimals = 18 + +[TRIPP] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TRIPP +decimals = 6 + +[TRIPPY] +peggy_denom = factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TRIPPY +decimals = 18 + +[TRUCPI] +peggy_denom = trucpi +decimals = 18 + +[TS] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo12 +decimals = 6 + +[TSK] +peggy_denom = factory/inj1uqtnkdsteaxhsjy4xug2t3cklxdaz52nrjmgru/TSK +decimals = 6 + +[TST] +peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test +decimals = 10 + +[TST2] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST2 +decimals = 6 + +[TST3] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST3 +decimals = 6 + +[TST4] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TST4 +decimals = 0 + +[TST5] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TST5 +decimals = 0 + +[TST6] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST6 +decimals = 6 + +[TSTESTTOKEN] +peggy_denom = factory/inj12ufkkhdg0u5lzxkljdanwn4955ev4ty3nk7l08/TSTESTTOKEN +decimals = 6 + +[TT] +peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go +decimals = 18 + +[TTE] +peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go12 +decimals = 18 + +[TTN] +peggy_denom = factory/inj1d5fe04g9xa577e2zn82n4m0ksq8wp8vxgvfupw/TESTTOKEN +decimals = 6 + +[TTNY] +peggy_denom = factory/inj1uc2lndfg7qlvhnwkknlnqr37ekwf40xulf4cur/TTNY +decimals = 6 + +[TTTA] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/TTTA +decimals = 6 + +[TTX] +peggy_denom = factory/inj1ayjd8psv86kmfsg7k54rmr2hnrsnczqwc3ecrt/thanhtx +decimals = 6 + +[TUS] +peggy_denom = factory/inj1q3lwaq6wwfv69wdyga0f67vpk824g3a0uzqhqy/TUS +decimals = 6 + +[Terra] +peggy_denom = peggy0xd2877702675e6cEb975b4A1dFf9fb7BAF4C91ea9 +decimals = 6 + +[TerraUSD] +peggy_denom = peggy0xa47c8bf37f92aBed4A126BDA807A7b7498661acD +decimals = 18 + +[Test] +peggy_denom = factory/inj172z2fxya77cfeknz93vv4hxegfdave6g7uz9y9/Test +decimals = 6 + +[Test QAT] +peggy_denom = inj1m4g54lg2mhhm7a4h3ms5xlyecafhe4macgsuen +decimals = 8 + +[Test1] +peggy_denom = factory/inj1v2py2tvjpkntltgv79jj3mwe3hnqm2pvavu0ed/Test1 +decimals = 6 + +[Test2] +peggy_denom = factory/inj1v2py2tvjpkntltgv79jj3mwe3hnqm2pvavu0ed/Test2 +decimals = 6 + +[TestINJ91] +peggy_denom = factory/inj1yu5nmgrz0tzhlffmlmrff7zx3rfdwlju587vlc/TestINJ91 +decimals = 6 + +[TestInj] +peggy_denom = factory/inj172z2fxya77cfeknz93vv4hxegfdave6g7uz9y9/TestInj +decimals = 6 + +[TestOne] +peggy_denom = factory/inj1tu3en98ngtwlyszd55j50t0y6lpuf6dqf0rz4l/TestOne +decimals = 6 + +[Testeb] +peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/Testeb +decimals = 6 + +[Tether] +peggy_denom = peggy0xdAC17F958D2ee523a2206206994597C13D831ec7 +decimals = 6 + +[Token with fee on transfer] +peggy_denom = peggy0x290FB1D3CFA67A0305608E457B31e368d82F3153 +decimals = 18 + +[Torres] +peggy_denom = factory/inj18wy4ns607slpn728rm88zl6jlrkd5dx48ew6ke/Torres +decimals = 6 + +[UANDR] +peggy_denom = ibc/4EF7835F49907C402631998B8F54FAA007B01999708C54A0F8DAABFAA793DA56 +decimals = 0 + +[UATOM] +peggy_denom = ibc/1738C5DCDE442A5614652C57AEAD4C37BB2E167402A0661754A868F3AE70C1A0 +decimals = 0 + +[ULUNA] +peggy_denom = ibc/3848612C1ADD343CF42B2B4D2D1B68BBE419BCF97E0B6DD29B6C412E2CD23DC5 +decimals = 0 + +[UMA] +peggy_denom = peggy0x04Fa0d235C4abf4BcF4787aF4CF447DE572eF828 +decimals = 18 + +[UNI] +peggy_denom = peggy0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 +decimals = 18 + +[UNICORN] +peggy_denom = factory/inj1mrdkgz462sq0tvly8vzv0s320g8yyf67crxwdt/corn +decimals = 0 + +[UNOIS] +peggy_denom = ibc/A190CF3FC762D25A46A49E7CB0E998F4A494C7F64A356DA17C25A2D8B0069D3B +decimals = 0 + +[UOSMO] +peggy_denom = ibc/289D9B2071AD91C3E5529F68AF63497E723B506CE2480E0A39A2828D81A75739 +decimals = 0 + +[UPE] +peggy_denom = factory/inj1lahxt4xg8xu2dwjjsagjaj6lsg4q96uhnt2x6n/UPE +decimals = 6 + +[UPHOTON] +peggy_denom = ibc/48BC9C6ACBDFC1EBA034F1859245D53EA4BF74147189D66F27C23BF966335DFB +decimals = 6 + +[UPRYZM] +peggy_denom = ibc/89B44726816D9DB5C77B6D2E2A007A520C002355DA577001C56072EE5A903B05 +decimals = 0 + +[USD Coin] +peggy_denom = ibc/2CBC2EA121AE42563B08028466F37B600F2D7D4282342DE938283CC3FB2BC00E +decimals = 6 + +[USD Coin (legacy)] +peggy_denom = inj1q6zlut7gtkzknkk773jecujwsdkgq882akqksk +decimals = 6 + +[USDC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/usdc +decimals = 6 + +[USDC-MPL] +peggy_denom = peggy0xf875aef00C4E21E9Ab4A335eB36A1175Ab00424A +decimals = 6 + +[USDCarb] +peggy_denom = inj1lmcfftadjkt4gt3lcvmz6qn4dhx59dv2m7yv8r +decimals = 6 + +[USDCbsc] +peggy_denom = inj1dngqzz6wphf07fkdam7dn55t8t3r6qenewy9zu +decimals = 6 + +[USDCet] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[USDCgateway] +peggy_denom = ibc/7BE71BB68C781453F6BB10114F8E2DF8DC37BA791C502F5389EA10E7BEA68323 +decimals = 6 + +[USDClegacy] +peggy_denom = peggy0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 +decimals = 6 + +[USDCpoly] +peggy_denom = inj19s2r64ghfqq3py7f5dr0ynk8yj0nmngca3yvy3 +decimals = 6 + +[USDCso] +peggy_denom = inj12pwnhtv7yat2s30xuf4gdk9qm85v4j3e60dgvu +decimals = 6 + +[USDT] +peggy_denom = peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5 +decimals = 6 + +[USDT_31DEC23] +peggy_denom = factory/inj1m8vmsa84ha7up6cx3v7y7jj9egzl3u3vyzqml0/test_denom +decimals = 6 + +[USDTap] +peggy_denom = inj13yrhllhe40sd3nj0lde9azlwfkyrf2t9r78dx5 +decimals = 6 + +[USDTbsc] +peggy_denom = inj1l9eyrnv3ret8da3qh8j5aytp6q4f73crd505lj +decimals = 6 + +[USDTet] +peggy_denom = inj18zykysxw9pcvtyr9ylhe0p5s7yzf6pzdagune8 +decimals = 6 + +[USDTkv] +peggy_denom = ibc/4ABBEF4C8926DDDB320AE5188CFD63267ABBCEFC0583E4AE05D6E5AA2401DDAB +decimals = 6 + +[USDTso] +peggy_denom = inj1qjn06jt7zjhdqxgud07nylkpgnaurq6xc5c4fd +decimals = 6 + +[USDY] +peggy_denom = ibc/93EAE5F9D6C14BFAC8DD1AFDBE95501055A7B22C5D8FA8C986C31D6EFADCA8A9 +decimals = 18 + +[USDYet] +peggy_denom = peggy0x96F6eF951840721AdBF46Ac996b59E0235CB985C +decimals = 18 + +[USDe] +peggy_denom = peggy0x4c9EDD5852cd905f086C759E8383e09bff1E68B3 +decimals = 18 + +[UST] +peggy_denom = ibc/B448C0CA358B958301D328CCDC5D5AD642FC30A6D3AE106FF721DB315F3DDE5C +decimals = 18 + +[UTK] +peggy_denom = peggy0xdc9Ac3C20D1ed0B540dF9b1feDC10039Df13F99c +decimals = 18 + +[UUSDC] +peggy_denom = ibc/9EBCC3CA961DED955B08D249B01DCB03E4C6D0D31BE98A477716C54CC5DDB51B +decimals = 0 + +[UXION] +peggy_denom = ibc/6AB81EFD48DC233A206FAD0FB6F2691A456246C4A7F98D0CD37E2853DD0493EA +decimals = 0 + +[Unknown] +peggy_denom = ibc/078184C66B073F0464BA0BBD736DD601A0C637F9C42B592DDA5D6A95289D99A4 +decimals = 6 + +[VATRENI] +peggy_denom = inj1tn457ed2gg5vj2cur5khjjw63w73y3xhyhtaay +decimals = 8 + +[VDRR] +peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vaderr +decimals = 6 + +[VIC] +peggy_denom = factory/inj17l29rphqjy0fwud3xq4sf2zxhnhj4ue87df9u9/VIC +decimals = 6 + +[VICx] +peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VICx +decimals = 6 + +[VRD] +peggy_denom = peggy0xf25304e75026E6a35FEDcA3B0889aE5c4D3C55D8 +decimals = 18 + +[VVV] +peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/VVV +decimals = 6 + +[W] +peggy_denom = ibc/F16F0F685BEF7BC6A145F16CBE78C6EC8C7C3A5F3066A98A9E57DCEA0903E537 +decimals = 6 + +[W3B] +peggy_denom = factory/inj1m7l6lmuf889k6vexvx74wrzuht2u8veclvy9hs/W3B +decimals = 6 + +[WAGMI] +peggy_denom = factory/inj188veuqed0dygkcmq5d24u3807n6csv4wdv28gh/wagmi +decimals = 9 + +[WAIFU] +peggy_denom = factory/inj12dvzf9tx2ndc9498aqpkrxgugr3suysqwlmn49/waifu +decimals = 6 + +[WASSIE] +peggy_denom = peggy0x2c95d751da37a5c1d9c5a7fd465c1d50f3d96160 +decimals = 18 + +[WFD] +peggy_denom = factory/inj1zj8dd6lu96lep97hguuch3lzwkcgr7edj0sjg2/WFD +decimals = 6 + +[WGMI] +peggy_denom = factory/inj1rmjzj9fn47kdmfk4f3z39qr6czexxe0yjyc546/wgmi +decimals = 6 + +[WHALE] +peggy_denom = ibc/D6E6A20ABDD600742D22464340A7701558027759CE14D12590F8EA869CCCF445 +decimals = 6 + +[WHAT] +peggy_denom = peggy0x69aa609A08ad451d45009834874C8c6D459d7731 +decimals = 9 + +[WIF] +peggy_denom = wif +decimals = 6 + +[WIZZ] +peggy_denom = factory/inj1uvfpvnmuqhx8jwg4786y59tkagmph827h38mst/wizz +decimals = 6 + +[WKLAY] +peggy_denom = inj14cl67lprqkt3pncjav070gavaxslc0tzpc56f4 +decimals = 8 + +[WMATIC] +peggy_denom = ibc/4DEFEB42BAAB2788723759D95B7550BCE460855563ED977036248F5B94C842FC +decimals = 8 + +[WMATIClegacy] +peggy_denom = inj1dxv423h8ygzgxmxnvrf33ws3k94aedfdevxd8h +decimals = 8 + +[WNINJ] +peggy_denom = factory/inj1gzg7vp5yds59hqw7swncz43zuktpx9jdmdlmmf/wnINJ +decimals = 18 + +[WONKA] +peggy_denom = factory/inj189hl8wqhf89r2l6x9arhtj2n8zx73cmsmts6pc/wonka +decimals = 6 + +[WOSMO] +peggy_denom = ibc/DD648F5D3CDA56D0D8D8820CF703D246B9FC4007725D8B38D23A21FF1A1477E3 +decimals = 6 + +[WSB] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-WSB +decimals = 6 + +[WSTETH] +peggy_denom = peggy0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0 +decimals = 18 + +[War] +peggy_denom = factory/inj10ehr7vet33h9ezphsk6uufm4wqg50sp93pqqe8/War +decimals = 6 + +[Wrapped Bitcoin] +peggy_denom = inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku +decimals = 18 + +[Wrapped Ethereum] +peggy_denom = inj1k9r62py07wydch6sj5sfvun93e4qe0lg7jyatc +decimals = 8 + +[XAC] +peggy_denom = peggy0xDe4C5a791913838027a2185709E98c5C6027EA63 +decimals = 8 + +[XAG] +peggy_denom = xag +decimals = 6 + +[XAU] +peggy_denom = xau +decimals = 6 + +[XBX] +peggy_denom = peggy0x080B12E80C9b45e97C23b6ad10a16B3e2a123949 +decimals = 18 + +[XIII] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII +decimals = 6 + +[XIII-COMBINED] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII-COMBINED +decimals = 6 + +[XIII-FINAL] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIII-FINAL +decimals = 6 + +[XIIItest] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIIItest +decimals = 6 + +[XION] +peggy_denom = ibc/DAB0823884DB5785F08EE136EE9EB362E166F4C7455716641B03E93CE7F14193 +decimals = 6 + +[XIV] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIV +decimals = 6 + +[XIV-TEST1] +peggy_denom = factory/inj18flmwwaxxqj8m8l5zl8xhjrnah98fcjp3gcy3e/XIV-TEST1 +decimals = 6 + +[XNJ] +peggy_denom = inj17pgmlk6fpfmqyffs205l98pmnmp688mt0948ar +decimals = 18 + +[XPLA] +peggy_denom = inj1j08452mqwadp8xu25kn9rleyl2gufgfjqjvewe +decimals = 8 + +[XPRT] +peggy_denom = ibc/B786E7CBBF026F6F15A8DA248E0F18C62A0F7A70CB2DABD9239398C8B5150ABB +decimals = 6 + +[XRP] +peggy_denom = peggy0x1d2f0da169ceb9fc7b3144628db156f3f6c60dbe +decimals = 18 + +[XTALIS] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis +decimals = 6 + +[XTBV4] +peggy_denom = peggy0x33132640fF610A2E362856530a2D1E5d60FAe191 +decimals = 18 + +[YFI] +peggy_denom = peggy0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e +decimals = 18 + +[YOHOHO] +peggy_denom = factory/inj1gyxrvcdvjr22l5fu43ng4c607nxpc8yuxslcv3/yoyo +decimals = 18 + +[YOLO] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/YOLO +decimals = 6 + +[YOMI] +peggy_denom = factory/inj1tlqtznd9gh0a53krerduzdsfadafamag0svccu/YoshiMitsu +decimals = 6 + +[YUE] +peggy_denom = factory/inj1la29j54twr2mucn2z6dewmhcpy3m20sud79fut/YUE +decimals = 15 + +[YUKI] +peggy_denom = factory/inj1spdy83ds5ezq9rvtg0ndy8480ad5rlczcpvtu2/yuki +decimals = 6 + +[ZEN] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/zen +decimals = 18 + +[ZIG] +peggy_denom = peggy0xb2617246d0c6c0087f18703d576831899ca94f01 +decimals = 18 + +[ZIN] +peggy_denom = factory/inj1xqtgc8v3w5yzcr5w5f40k8exp5j4k0uhumn5fh/ZIN +decimals = 6 + +[ZIP] +peggy_denom = factory/inj169w99uj9psyvhu7zunc5tnp8jjflc53np7vw06/ZIP +decimals = 6 + +[ZK] +peggy_denom = zk +decimals = 18 + +[ZNA] +peggy_denom = factory/inj1muuaghrdm2rfss9cdpxzhk3v7xqj8ltngrm0xd/ZNA +decimals = 18 + +[ZOZY] +peggy_denom = factory/inj1nmdqvm2vcxtzal44f62hcv9sthsaunupdpuxlg/ZOZY +decimals = 6 + +[ZRO] +peggy_denom = zro +decimals = 6 + +[ZRX] +peggy_denom = peggy0xE41d2489571d322189246DaFA5ebDe1F4699F498 +decimals = 18 + +[Zorro] +peggy_denom = factory/inj1v58n67dssmd5g3eva6dxmenm7g4qp2t7zkht94/Zorro +decimals = 0 + +[abcefz] +peggy_denom = factory/inj1wd3xjvya2tdvh3zscdu8sewdys4zv0ruqld06f/abcefz +decimals = 0 + +[adfadf] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/fadsf +decimals = 6 + +[adfasf] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/adfasf +decimals = 6 + +[afdf] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/afda +decimals = 6 + +[ahwtf] +peggy_denom = factory/inj1tvwa4ug70d26k84y2zkvzykyu3vuce5lp2f60d/ahwtf +decimals = 6 + +[ankara] +peggy_denom = factory/inj1hslxdwcszyjesl0e7q339qvqme8jtpkgvfw667/ankara +decimals = 6 + +[arkSYN] +peggy_denom = factory/inj17ghwrdm2u2xsv8emlltqz3h3s6wvqcsdptr38z/arkSYN +decimals = 18 + +[as] +peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/aaa2 +decimals = 0 + +[axlUSDC] +peggy_denom = ibc/7E1AF94AD246BE522892751046F0C959B768642E5671CC3742264068D49553C0 +decimals = 6 + +[bab] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/bab +decimals = 6 + +[band] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-0 +decimals = 6 + +[bbk] +peggy_denom = factory/inj19lpvmsjush9l03csrkky9xynejfv229h5mttut/bbk +decimals = 6 + +[bdlsj] +peggy_denom = factory/inj18skkzztnku04f9cmscg2hwsj6xrau73lvjtklk/bdlsj +decimals = 6 + +[bior] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nnn +decimals = 6 + +[bzb] +peggy_denom = factory/inj19lpvmsjush9l03csrkky9xynejfv229h5mttut/bzb +decimals = 6 + +[como] +peggy_denom = factory/inj1pp0vx4nd96fdqw2kyj44ytx6xx7yu0368m5lpv/como +decimals = 6 + +[cook] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/cook +decimals = 6 + +[cookie] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/cookie +decimals = 6 + +[cxld] +peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/cxld +decimals = 6 + +[cxlddd] +peggy_denom = factory/inj1gsvgj44zjlj6w890a7huedymh7v96sv839pwsv/cxlddd +decimals = 6 + +[dINJ] +peggy_denom = inj134wfjutywny9qnyux2xgdmm0hfj7mwpl39r3r9 +decimals = 18 + +[dWIF] +peggy_denom = factory/inj1gdvjnrz6xx9ag293syafjjfk4t9pn73kmufxn3/dWIF +decimals = 6 + +[dYdX] +peggy_denom = peggy0x92d6c1e31e14520e676a687f0a93788b716beff5 +decimals = 18 + +[ddd] +peggy_denom = factory/inj1e3m5wx60p2q0tjyg976c805tnt60xdx4cqmskj/ddd +decimals = 6 + +[dfdf] +peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/dfdf +decimals = 6 + +[dffd] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/dffd +decimals = 6 + +[diesel] +peggy_denom = factory/inj14830p49gtge4tdxs2t8jujzlc3c08evgx0h9uv/diesel +decimals = 6 + +[ezETH] +peggy_denom = peggy0xbf5495Efe5DB9ce00f80364C8B423567e58d2110 +decimals = 18 + +[fINJ] +peggy_denom = factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test +decimals = 0 + +[fUSDT] +peggy_denom = peggy0x81994b9607e06ab3d5cF3AffF9a67374f05F27d7 +decimals = 8 + +[factory/inj104y00apw6uu26gthl7cafztdy67hhmwksekdem/position] +peggy_denom = factory/inj104y00apw6uu26gthl7cafztdy67hhmwksekdem/position +decimals = 0 + +[factory/inj106rseec0xmv5k06aaf8jsnr57ajw76rxa3gpwm/position] +peggy_denom = factory/inj106rseec0xmv5k06aaf8jsnr57ajw76rxa3gpwm/position +decimals = 0 + +[factory/inj107aqkjc3t5r3l9j4n9lgrma5tm3jav8qgppz6m/position] +peggy_denom = factory/inj107aqkjc3t5r3l9j4n9lgrma5tm3jav8qgppz6m/position +decimals = 0 + +[factory/inj107skcseta3egagj822d3qdgusx7a7ua7sepmcf/position] +peggy_denom = factory/inj107skcseta3egagj822d3qdgusx7a7ua7sepmcf/position +decimals = 0 + +[factory/inj107srzqksjtdevlpw888vuyrnqmlpjuv64ytm85/position] +peggy_denom = factory/inj107srzqksjtdevlpw888vuyrnqmlpjuv64ytm85/position +decimals = 0 + +[factory/inj108kv68d4x747v4ap0l66ckyn963gedc4qvwml7/position] +peggy_denom = factory/inj108kv68d4x747v4ap0l66ckyn963gedc4qvwml7/position +decimals = 0 + +[factory/inj108t3mlej0dph8er6ca2lq5cs9pdgzva5mqsn5p/position] +peggy_denom = factory/inj108t3mlej0dph8er6ca2lq5cs9pdgzva5mqsn5p/position +decimals = 0 + +[factory/inj109rcepnmg7ewjcc4my3448jm3h0yjdwcl6kmnl/position] +peggy_denom = factory/inj109rcepnmg7ewjcc4my3448jm3h0yjdwcl6kmnl/position +decimals = 0 + +[factory/inj10ajd3f46mp755wmhgke8w4vcegfjndwfzymf82/position] +peggy_denom = factory/inj10ajd3f46mp755wmhgke8w4vcegfjndwfzymf82/position +decimals = 0 + +[factory/inj10fz2cj00ee80y76pdzg06dxfamat8nfpr9vl5s/position] +peggy_denom = factory/inj10fz2cj00ee80y76pdzg06dxfamat8nfpr9vl5s/position +decimals = 0 + +[factory/inj10g45te2l6s77jzxszjp9q6tsnn23l5suhnqmdz/position] +peggy_denom = factory/inj10g45te2l6s77jzxszjp9q6tsnn23l5suhnqmdz/position +decimals = 0 + +[factory/inj10hmmvlqq6rrlf2c2v982d6xqsns4m3sy086r27/position] +peggy_denom = factory/inj10hmmvlqq6rrlf2c2v982d6xqsns4m3sy086r27/position +decimals = 0 + +[factory/inj10ngu4y3t2zvn4xjfsmm73gvf03mcscrtrgjp0t/ak] +peggy_denom = factory/inj10ngu4y3t2zvn4xjfsmm73gvf03mcscrtrgjp0t/ak +decimals = 6 + +[factory/inj10nv20xe4x325sq557ddcmsyla7zaj6pnssrfw9/position] +peggy_denom = factory/inj10nv20xe4x325sq557ddcmsyla7zaj6pnssrfw9/position +decimals = 0 + +[factory/inj10p8ma8z6nrwm4u7kjn8gcc3dcm490sgp0d24az/position] +peggy_denom = factory/inj10p8ma8z6nrwm4u7kjn8gcc3dcm490sgp0d24az/position +decimals = 0 + +[factory/inj10r5lmqqu7qznvpffxkpwgxk0d3yrj82nj8gukz/position] +peggy_denom = factory/inj10r5lmqqu7qznvpffxkpwgxk0d3yrj82nj8gukz/position +decimals = 0 + +[factory/inj10u2e7h04fxlklnk34kjwuwfexmq8g8fke8zye8/position] +peggy_denom = factory/inj10u2e7h04fxlklnk34kjwuwfexmq8g8fke8zye8/position +decimals = 0 + +[factory/inj10u9gdgvqm90uh2ry27phtp3enhcxkwrvw0upq4/position] +peggy_denom = factory/inj10u9gdgvqm90uh2ry27phtp3enhcxkwrvw0upq4/position +decimals = 0 + +[factory/inj10uycavvkc4uqr8tns3599r0t2xux4rz3y8apym/1684002313InjUsdt1d110C] +peggy_denom = factory/inj10uycavvkc4uqr8tns3599r0t2xux4rz3y8apym/1684002313InjUsdt1d110C +decimals = 0 + +[factory/inj10v8zx4v6sgv86v9gvrm8xuv82yut469jhgahch/position] +peggy_denom = factory/inj10v8zx4v6sgv86v9gvrm8xuv82yut469jhgahch/position +decimals = 0 + +[factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt] +peggy_denom = factory/inj10vkkttgxdeqcgeppu20x9qtyvuaxxev8qh0awq/usdt +decimals = 6 + +[factory/inj10xw27amgy7lc55r4g3z2uyxqm0p0l5xyeajvq6/position] +peggy_denom = factory/inj10xw27amgy7lc55r4g3z2uyxqm0p0l5xyeajvq6/position +decimals = 0 + +[factory/inj120xfj9muh5x5kxujgz2xwqh70zc034jt4cpjl0/position] +peggy_denom = factory/inj120xfj9muh5x5kxujgz2xwqh70zc034jt4cpjl0/position +decimals = 0 + +[factory/inj12264e59fxnly8dlfyq8eyhx4nuqcfejukwkr0d/ak] +peggy_denom = factory/inj12264e59fxnly8dlfyq8eyhx4nuqcfejukwkr0d/ak +decimals = 0 + +[factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/am] +peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/am +decimals = 0 + +[factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/ma] +peggy_denom = factory/inj122qtfcjfx9suvgr5s7rtqgfy8xvtjhm8uc4x9f/ma +decimals = 0 + +[factory/inj123mw4nhxxm69rl9pvzdhrasjjqs6suyj2qjpyj/position] +peggy_denom = factory/inj123mw4nhxxm69rl9pvzdhrasjjqs6suyj2qjpyj/position +decimals = 0 + +[factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/DGNZ] +peggy_denom = factory/inj125a0l6yk05z3jwvjfjh78tlkjm4kn6ndduxjnk/DGNZ +decimals = 6 + +[factory/inj1275nlajjvqllkeupd65raqq3jcnm68qtzr8x8w/position] +peggy_denom = factory/inj1275nlajjvqllkeupd65raqq3jcnm68qtzr8x8w/position +decimals = 0 + +[factory/inj12e7m2n4fspavdxm5c35wakwq54se9vadufytv3/position] +peggy_denom = factory/inj12e7m2n4fspavdxm5c35wakwq54se9vadufytv3/position +decimals = 0 + +[factory/inj12f9v6rpd937gl8rggjprtd8egnt82yjwc9nu67/position] +peggy_denom = factory/inj12f9v6rpd937gl8rggjprtd8egnt82yjwc9nu67/position +decimals = 0 + +[factory/inj12h28c3a97savf42w0tarnjh9wza2wyx8v00r0n/position] +peggy_denom = factory/inj12h28c3a97savf42w0tarnjh9wza2wyx8v00r0n/position +decimals = 0 + +[factory/inj12hlpupnx80wj2ummwrjuw99mvr8a2z7us28n0g/position] +peggy_denom = factory/inj12hlpupnx80wj2ummwrjuw99mvr8a2z7us28n0g/position +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew1] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew1 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew3] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/rew3 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward1] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward1 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward2] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward2 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward3] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward3 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward4] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/reward4 +decimals = 0 + +[factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/test1] +peggy_denom = factory/inj12nn88vtuf893cpfkke23dszpr5uccqj2zqukt6/test1 +decimals = 0 + +[factory/inj12q3yjpr4rapsry7ccrmmrlgktn5dczca0c2upn/position] +peggy_denom = factory/inj12q3yjpr4rapsry7ccrmmrlgktn5dczca0c2upn/position +decimals = 0 + +[factory/inj12rh3d4xdhlvpqenrd04qhefcmxjsqpnewz3r6c/position] +peggy_denom = factory/inj12rh3d4xdhlvpqenrd04qhefcmxjsqpnewz3r6c/position +decimals = 0 + +[factory/inj12v9093vclva8930h4ptagh5pz7zg5wx5ch6d4g/position] +peggy_denom = factory/inj12v9093vclva8930h4ptagh5pz7zg5wx5ch6d4g/position +decimals = 0 + +[factory/inj12vdzxz9cngv3r250y0snwmc5w7u6dfpfvdw75s/SORA] +peggy_denom = factory/inj12vdzxz9cngv3r250y0snwmc5w7u6dfpfvdw75s/SORA +decimals = 0 + +[factory/inj12ve3saad36nr0jnj4whslpvct8adecydx8cxvh/position] +peggy_denom = factory/inj12ve3saad36nr0jnj4whslpvct8adecydx8cxvh/position +decimals = 0 + +[factory/inj12z248hyzzmpx57z7qfa075gv6mh6efqhfh9xda/position] +peggy_denom = factory/inj12z248hyzzmpx57z7qfa075gv6mh6efqhfh9xda/position +decimals = 0 + +[factory/inj12z5ym8nuu4g6xw48rjd25unkx3fa596qhvq7j3/position] +peggy_denom = factory/inj12z5ym8nuu4g6xw48rjd25unkx3fa596qhvq7j3/position +decimals = 0 + +[factory/inj130y99nqtke8hs2y7lksq8hq83rlvuf2ls8dxrw/ak] +peggy_denom = factory/inj130y99nqtke8hs2y7lksq8hq83rlvuf2ls8dxrw/ak +decimals = 6 + +[factory/inj133psax2mn2sx3gwl2jz46mjye4ykf60tqktwsj/position] +peggy_denom = factory/inj133psax2mn2sx3gwl2jz46mjye4ykf60tqktwsj/position +decimals = 0 + +[factory/inj134g8gmtnp9d30k8kas06p2lu74pv73hwnj9acp/position] +peggy_denom = factory/inj134g8gmtnp9d30k8kas06p2lu74pv73hwnj9acp/position +decimals = 0 + +[factory/inj1372sy27ey4y7smdmxvqjqxd9zfvj0m92pndq37/position] +peggy_denom = factory/inj1372sy27ey4y7smdmxvqjqxd9zfvj0m92pndq37/position +decimals = 0 + +[factory/inj1379wdcffrl3k9peggxz90z2exra3xzyt4khpdq/position] +peggy_denom = factory/inj1379wdcffrl3k9peggxz90z2exra3xzyt4khpdq/position +decimals = 0 + +[factory/inj137ag64fnuy3t0eezuep6uzh5e54nmg6lh97vdn/position] +peggy_denom = factory/inj137ag64fnuy3t0eezuep6uzh5e54nmg6lh97vdn/position +decimals = 0 + +[factory/inj137ymec4et82mk456v287s90ktl3zneajhda02j/position] +peggy_denom = factory/inj137ymec4et82mk456v287s90ktl3zneajhda02j/position +decimals = 0 + +[factory/inj1389hh5y5vy9sycdpja6l8lddhxft80srafdvs5/bINJ] +peggy_denom = factory/inj1389hh5y5vy9sycdpja6l8lddhxft80srafdvs5/bINJ +decimals = 0 + +[factory/inj13a3f3s2ts0vv6f07anaxrv8275hea5nydfy7mn/position] +peggy_denom = factory/inj13a3f3s2ts0vv6f07anaxrv8275hea5nydfy7mn/position +decimals = 0 + +[factory/inj13arjxgukmeadxuphhzfe3nc3m0e4prcjhyhq0v/position] +peggy_denom = factory/inj13arjxgukmeadxuphhzfe3nc3m0e4prcjhyhq0v/position +decimals = 0 + +[factory/inj13gcmxkhstgc932m5dw7t5nvsgq0xs4jjth02ru/position] +peggy_denom = factory/inj13gcmxkhstgc932m5dw7t5nvsgq0xs4jjth02ru/position +decimals = 0 + +[factory/inj13gpnyear408r74gz67tkufqxerzmleze4jpzk4/position] +peggy_denom = factory/inj13gpnyear408r74gz67tkufqxerzmleze4jpzk4/position +decimals = 0 + +[factory/inj13grw8z57336maklzmcrtqdavl3f0l2krdje7la/position] +peggy_denom = factory/inj13grw8z57336maklzmcrtqdavl3f0l2krdje7la/position +decimals = 0 + +[factory/inj13hvnqrr68qghfqqrnuupqapjf3jdcn8s3ydnd4/position] +peggy_denom = factory/inj13hvnqrr68qghfqqrnuupqapjf3jdcn8s3ydnd4/position +decimals = 0 + +[factory/inj13hzl5jn3snav6caduvs7nnu9aq29djqvvahmfl/position] +peggy_denom = factory/inj13hzl5jn3snav6caduvs7nnu9aq29djqvvahmfl/position +decimals = 0 + +[factory/inj13jktgp099d9nn05tapg2sk3p6lry5un3gt2khm/position] +peggy_denom = factory/inj13jktgp099d9nn05tapg2sk3p6lry5un3gt2khm/position +decimals = 0 + +[factory/inj13kg0eejq4cea4xrn6hgwxh9qejxpu3m66vgjg7/1716285818InjUsdt2d0.95P] +peggy_denom = factory/inj13kg0eejq4cea4xrn6hgwxh9qejxpu3m66vgjg7/1716285818InjUsdt2d0.95P +decimals = 0 + +[factory/inj13ll3ymyvcpx3psw0lw6eft7rvl8j59e5cgtrl6/position] +peggy_denom = factory/inj13ll3ymyvcpx3psw0lw6eft7rvl8j59e5cgtrl6/position +decimals = 0 + +[factory/inj13lpntvupm345s50ry2pqp0wanqgxqdt5d6p8lx/position] +peggy_denom = factory/inj13lpntvupm345s50ry2pqp0wanqgxqdt5d6p8lx/position +decimals = 0 + +[factory/inj13m8k8z8yprd8ml8nehgdgaszgpkdfj600hhnp9/test] +peggy_denom = factory/inj13m8k8z8yprd8ml8nehgdgaszgpkdfj600hhnp9/test +decimals = 0 + +[factory/inj13mk0qhujr7jrmfa6ythmu9am6kjnlh6c56v65x/position] +peggy_denom = factory/inj13mk0qhujr7jrmfa6ythmu9am6kjnlh6c56v65x/position +decimals = 0 + +[factory/inj13n6u7985zal9jdncfyqpk9mvk06gwnuscxdv9m/position] +peggy_denom = factory/inj13n6u7985zal9jdncfyqpk9mvk06gwnuscxdv9m/position +decimals = 0 + +[factory/inj13q53lemdwyzk075g0plmrxauk8xzl90rcnzvy3/position] +peggy_denom = factory/inj13q53lemdwyzk075g0plmrxauk8xzl90rcnzvy3/position +decimals = 0 + +[factory/inj13qw7vw4zwaup4l66d4x3nv237rp5lz76lry5rt/position] +peggy_denom = factory/inj13qw7vw4zwaup4l66d4x3nv237rp5lz76lry5rt/position +decimals = 0 + +[factory/inj13rrx4978c09yauvszy2k6velzpxj5u9wqmvzfa/position] +peggy_denom = factory/inj13rrx4978c09yauvszy2k6velzpxj5u9wqmvzfa/position +decimals = 0 + +[factory/inj13s80vf90lu5x0wh4p0uccshwaajhd0v9y58kxh/position] +peggy_denom = factory/inj13s80vf90lu5x0wh4p0uccshwaajhd0v9y58kxh/position +decimals = 0 + +[factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA] +peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/LAMA +decimals = 6 + +[factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/TEST] +peggy_denom = factory/inj13s8gyvm86p7tfcv6zcx5sjqgx4ruwfz8vy3hnm/TEST +decimals = 6 + +[factory/inj13uegzntzhvesqgutkste6y483dznrlsc70ymvk/position] +peggy_denom = factory/inj13uegzntzhvesqgutkste6y483dznrlsc70ymvk/position +decimals = 0 + +[factory/inj13urjtxzgfy6g6x85ewpuq97jd9r7q92plp9s37/position] +peggy_denom = factory/inj13urjtxzgfy6g6x85ewpuq97jd9r7q92plp9s37/position +decimals = 0 + +[factory/inj13wp96prwk7dvh5ekrlld896xnawd38gn8jnydh/position] +peggy_denom = factory/inj13wp96prwk7dvh5ekrlld896xnawd38gn8jnydh/position +decimals = 0 + +[factory/inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx/lp] +peggy_denom = factory/inj13ylj40uqx338u5xtccujxystzy39q08q2gz3dx/lp +decimals = 0 + +[factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/ak] +peggy_denom = factory/inj13yzzxz90naqer4utnp03zlj5rguhu7v0hd2jzl/ak +decimals = 0 + +[factory/inj144hz9eva0vg5e69lfe5c8j6jusm4z2mvjjc9vy/position] +peggy_denom = factory/inj144hz9eva0vg5e69lfe5c8j6jusm4z2mvjjc9vy/position +decimals = 0 + +[factory/inj14558npfqefc5e3qye4arcs49falh0vusyknz7m/position] +peggy_denom = factory/inj14558npfqefc5e3qye4arcs49falh0vusyknz7m/position +decimals = 0 + +[factory/inj1468yhun3ta93aqyasmwp3rmgjp5z4le4vfcmrh/test] +peggy_denom = factory/inj1468yhun3ta93aqyasmwp3rmgjp5z4le4vfcmrh/test +decimals = 0 + +[factory/inj146w955lesh75vampgn23eccy9yzaf46yaa60nh/position] +peggy_denom = factory/inj146w955lesh75vampgn23eccy9yzaf46yaa60nh/position +decimals = 0 + +[factory/inj147dmmltelpvkjcfneg5r4q66glhe2rmr2hmm59/lp] +peggy_denom = factory/inj147dmmltelpvkjcfneg5r4q66glhe2rmr2hmm59/lp +decimals = 0 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo13] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-demo13 +decimals = 6 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-erc] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-erc +decimals = 0 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-fct] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-fct +decimals = 0 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test +decimals = 0 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test2] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test2 +decimals = 0 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test3] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test3 +decimals = 6 + +[factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test4] +peggy_denom = factory/inj147s5vh6ck67zjtpgd674c7efd47jqck55chw4l/inj-test4 +decimals = 6 + +[factory/inj147z3gktuc897hg9hp9razjqyj9uxfhhlck8y45/usdt] +peggy_denom = factory/inj147z3gktuc897hg9hp9razjqyj9uxfhhlck8y45/usdt +decimals = 0 + +[factory/inj14arqtqs4g4k6l6xhm37ga7dnks4l5ctd8n7hvv/position] +peggy_denom = factory/inj14arqtqs4g4k6l6xhm37ga7dnks4l5ctd8n7hvv/position +decimals = 0 + +[factory/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku/phuc] +peggy_denom = factory/inj14au322k9munkmx5wrchz9q30juf5wjgz2cfqku/phuc +decimals = 6 + +[factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/asg] +peggy_denom = factory/inj14dvet9j73cak22sf7nzgn52ae8z4fdxzsn683v/asg +decimals = 8 + +[factory/inj14g9kg0smwfhmrg86sun8pegs5jemd0ngpnl0jr/position] +peggy_denom = factory/inj14g9kg0smwfhmrg86sun8pegs5jemd0ngpnl0jr/position +decimals = 0 + +[factory/inj14gtwrd65zehu99cka0j65597jglgvmdxcwmvps/position] +peggy_denom = factory/inj14gtwrd65zehu99cka0j65597jglgvmdxcwmvps/position +decimals = 0 + +[factory/inj14gzpam4a5cvy49g3kht9sj4rq4lxqcn50zh3zt/position] +peggy_denom = factory/inj14gzpam4a5cvy49g3kht9sj4rq4lxqcn50zh3zt/position +decimals = 0 + +[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken +decimals = 0 + +[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken2] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/TestToken2 +decimals = 6 + +[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/test1] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/test1 +decimals = 0 + +[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst2] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst2 +decimals = 0 + +[factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst3] +peggy_denom = factory/inj14lvrxu8jlrdytval7k29nxhxr9a39u6am86tr3/tst3 +decimals = 0 + +[factory/inj14mm2x4azr024pte5pn74dpasxlvpf29s6k8gvj/uLP] +peggy_denom = factory/inj14mm2x4azr024pte5pn74dpasxlvpf29s6k8gvj/uLP +decimals = 0 + +[factory/inj14pr5qwg66mayechldze8dsm0garek6z4jng6et/position] +peggy_denom = factory/inj14pr5qwg66mayechldze8dsm0garek6z4jng6et/position +decimals = 0 + +[factory/inj14qzjk7c9a0wyl6kjhs74zg2hcv7vzc9025dwtu/position] +peggy_denom = factory/inj14qzjk7c9a0wyl6kjhs74zg2hcv7vzc9025dwtu/position +decimals = 0 + +[factory/inj14rzuvnd8al6f7jjfz3k54vkdtrrgvea8q8u0al/position] +peggy_denom = factory/inj14rzuvnd8al6f7jjfz3k54vkdtrrgvea8q8u0al/position +decimals = 0 + +[factory/inj14scx0fjp8m6ssn34ql8353yzpq3l4gmk9eycx3/position] +peggy_denom = factory/inj14scx0fjp8m6ssn34ql8353yzpq3l4gmk9eycx3/position +decimals = 0 + +[factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test2] +peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test2 +decimals = 10 + +[factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test3] +peggy_denom = factory/inj14sllqhu93hvvygte05ucu5am7ugny2gna7sffd/inj-test3 +decimals = 10 + +[factory/inj14sxssk5tzx8ttq3msj2jl29kv60znk4c40nq59/position] +peggy_denom = factory/inj14sxssk5tzx8ttq3msj2jl29kv60znk4c40nq59/position +decimals = 0 + +[factory/inj14t478a7rap97aukq2da92qch7u7g2l5pfqjshc/position] +peggy_denom = factory/inj14t478a7rap97aukq2da92qch7u7g2l5pfqjshc/position +decimals = 0 + +[factory/inj14tccfnp5rfzhm6y6c97juheal6uancftmtpdvd/position] +peggy_denom = factory/inj14tccfnp5rfzhm6y6c97juheal6uancftmtpdvd/position +decimals = 0 + +[factory/inj14u5f88vmk2zl7xjjg8y57yek0sr9ardm0uac06/position] +peggy_denom = factory/inj14u5f88vmk2zl7xjjg8y57yek0sr9ardm0uac06/position +decimals = 0 + +[factory/inj14xya2gezzxnfy0mqtgl9uh3sk27tzfkt89ldhc/position] +peggy_denom = factory/inj14xya2gezzxnfy0mqtgl9uh3sk27tzfkt89ldhc/position +decimals = 0 + +[factory/inj14y95s7mdpke2jc7m4sqfykzwm3sujugz0dh5m7/position] +peggy_denom = factory/inj14y95s7mdpke2jc7m4sqfykzwm3sujugz0dh5m7/position +decimals = 0 + +[factory/inj14ywl5l5wsyaqx9g39sejvx7zqyecvvgktg5pxz/position] +peggy_denom = factory/inj14ywl5l5wsyaqx9g39sejvx7zqyecvvgktg5pxz/position +decimals = 0 + +[factory/inj14zw0njuejh9us94wdhg3msptzxpcjpq0anampd/ak] +peggy_denom = factory/inj14zw0njuejh9us94wdhg3msptzxpcjpq0anampd/ak +decimals = 6 + +[factory/inj150lje070zsehmdl4sesxxxjcc57200r9aqxk9c/test] +peggy_denom = factory/inj150lje070zsehmdl4sesxxxjcc57200r9aqxk9c/test +decimals = 0 + +[factory/inj152y0xa2s9w3txcaqsxu0zlzjak5gnvmxj7m09s/position] +peggy_denom = factory/inj152y0xa2s9w3txcaqsxu0zlzjak5gnvmxj7m09s/position +decimals = 0 + +[factory/inj1530p68vvxpn2jxj7v45wwf2acy99fu7pzlq66v/position] +peggy_denom = factory/inj1530p68vvxpn2jxj7v45wwf2acy99fu7pzlq66v/position +decimals = 0 + +[factory/inj153cngflyafkxxxycj23maguuh4nx2ny2k4phlt/position] +peggy_denom = factory/inj153cngflyafkxxxycj23maguuh4nx2ny2k4phlt/position +decimals = 0 + +[factory/inj154690wmz247j75at9ttvmf54h6drtwzq4lefa5/bINJ] +peggy_denom = factory/inj154690wmz247j75at9ttvmf54h6drtwzq4lefa5/bINJ +decimals = 0 + +[factory/inj157s8m4mf5tsjp5ttvhkta56lmu2wzfs6mxxrpk/position] +peggy_denom = factory/inj157s8m4mf5tsjp5ttvhkta56lmu2wzfs6mxxrpk/position +decimals = 0 + +[factory/inj1586dahe90a0xh4j56c8308pywxs0lmenhl4y2z/position] +peggy_denom = factory/inj1586dahe90a0xh4j56c8308pywxs0lmenhl4y2z/position +decimals = 0 + +[factory/inj15adq44kjk2xcc6tn27aqqwmawr4le6vshkcyut/position] +peggy_denom = factory/inj15adq44kjk2xcc6tn27aqqwmawr4le6vshkcyut/position +decimals = 0 + +[factory/inj15csnumyd59pv7sp4lmt8ycg0zaqwed8k474q79/position] +peggy_denom = factory/inj15csnumyd59pv7sp4lmt8ycg0zaqwed8k474q79/position +decimals = 0 + +[factory/inj15fywtwfmu7qx36x5sj84zcpgttmswa2g87jtz6/position] +peggy_denom = factory/inj15fywtwfmu7qx36x5sj84zcpgttmswa2g87jtz6/position +decimals = 0 + +[factory/inj15gm26dm98zl9nkcgapfk88zfukzk5j2xxmmdxr/position] +peggy_denom = factory/inj15gm26dm98zl9nkcgapfk88zfukzk5j2xxmmdxr/position +decimals = 0 + +[factory/inj15jt57jdw43qyz27z4rsnng6y3zdkafutm6yf56/position] +peggy_denom = factory/inj15jt57jdw43qyz27z4rsnng6y3zdkafutm6yf56/position +decimals = 0 + +[factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/INJS] +peggy_denom = factory/inj15jy9vzmyy63ql9y6dvned2kdat2994x5f4ldu4/INJS +decimals = 0 + +[factory/inj15k2fpq4s2ndtreg428qtl8ddhfpmrtsxcs43l3/position] +peggy_denom = factory/inj15k2fpq4s2ndtreg428qtl8ddhfpmrtsxcs43l3/position +decimals = 0 + +[factory/inj15km5dcny0x3meyl65w6ks6mlfqnjurk7yrl0k3/position] +peggy_denom = factory/inj15km5dcny0x3meyl65w6ks6mlfqnjurk7yrl0k3/position +decimals = 0 + +[factory/inj15ltws5j4any8ld6j589c9p0yet3cj305kfndeh/position] +peggy_denom = factory/inj15ltws5j4any8ld6j589c9p0yet3cj305kfndeh/position +decimals = 0 + +[factory/inj15ne7du4sve9cycegurcnxuk2v4mh8c6hwytxxs/position] +peggy_denom = factory/inj15ne7du4sve9cycegurcnxuk2v4mh8c6hwytxxs/position +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ctstn2s984k5lppnuwjg5asvw00tnpym3du23f] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ctstn2s984k5lppnuwjg5asvw00tnpym3du23f +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1d40cf938v7hjzva4rx8qj5drgw8ujmrll2rn5g] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1d40cf938v7hjzva4rx8qj5drgw8ujmrll2rn5g +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1glq4yyrg80x573ldx9k5889lndkgkzv40slncl] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1glq4yyrg80x573ldx9k5889lndkgkzv40slncl +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1k9r6nhxax73zhj9ll5wzylel8w0p7gm9e686r9] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1k9r6nhxax73zhj9ll5wzylel8w0p7gm9e686r9 +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ka8ftk2849330y6r86tcgmv8a3rhpxfrxtn7g5] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ka8ftk2849330y6r86tcgmv8a3rhpxfrxtn7g5 +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1kl57u9529z2ts3tlhv38mrtnfps0sy3vulevcr] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1kl57u9529z2ts3tlhv38mrtnfps0sy3vulevcr +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ljgxpde6zkh48lqfjsusaq5p32wqjycsrjdlk9] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1ljgxpde6zkh48lqfjsusaq5p32wqjycsrjdlk9 +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1lxkn2vwetsdmw6v7s64m5r2kw6fgnew8suealn] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1lxkn2vwetsdmw6v7s64m5r2kw6fgnew8suealn +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1mknpkud4re5vasfcnx9k278f8lyr5ndaaka86p] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1mknpkud4re5vasfcnx9k278f8lyr5ndaaka86p +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1u6vdnft0qfzncpq6hvq42ck9pk6dz4qv74a0w9] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1u6vdnft0qfzncpq6hvq42ck9pk6dz4qv74a0w9 +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1xvqkdyqpmd2q74dfa95spjw2krg9nn6m865juk] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1xvqkdyqpmd2q74dfa95spjw2krg9nn6m865juk +decimals = 0 + +[factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1yghk22j3l0nfaasmcs43x3t059ht8tsrm2rh6q] +peggy_denom = factory/inj15qdna0qtws4s56p00sszegzwng08w2ygnu5gjt/inj1yghk22j3l0nfaasmcs43x3t059ht8tsrm2rh6q +decimals = 0 + +[factory/inj15slc2dwxku5553gaauxnz89zcsmq5uzjcevue4/test] +peggy_denom = factory/inj15slc2dwxku5553gaauxnz89zcsmq5uzjcevue4/test +decimals = 6 + +[factory/inj15ukq6ja8l99dk0j82efvh2znjqesdpfxstlppn/position] +peggy_denom = factory/inj15ukq6ja8l99dk0j82efvh2znjqesdpfxstlppn/position +decimals = 0 + +[factory/inj15yf0qdyn5ej4hqw809nmv5n9e33mnqvddp84e4/bINJ] +peggy_denom = factory/inj15yf0qdyn5ej4hqw809nmv5n9e33mnqvddp84e4/bINJ +decimals = 0 + +[factory/inj162a76ehzty0rlqd2rthr3sf44vnjcgkrctakpv/position] +peggy_denom = factory/inj162a76ehzty0rlqd2rthr3sf44vnjcgkrctakpv/position +decimals = 0 + +[factory/inj162r4dwle5gaknz3ulsyk7r9mhgs3u2gy5vw7cw/position] +peggy_denom = factory/inj162r4dwle5gaknz3ulsyk7r9mhgs3u2gy5vw7cw/position +decimals = 0 + +[factory/inj1647wcz036pchv8fzz30r9wuw2uktaxfjcjll90/position] +peggy_denom = factory/inj1647wcz036pchv8fzz30r9wuw2uktaxfjcjll90/position +decimals = 0 + +[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/Lenz] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/Lenz +decimals = 0 + +[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest1] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/LenzTest1 +decimals = 0 + +[factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/inj-test1] +peggy_denom = factory/inj164dlu0as6r5a3kah6sdqv0tyx73upz8ggrcs77/inj-test1 +decimals = 0 + +[factory/inj164zhe75ldeez54pd0m5wt598upws5pcxgsytsp/RC] +peggy_denom = factory/inj164zhe75ldeez54pd0m5wt598upws5pcxgsytsp/RC +decimals = 0 + +[factory/inj16ckgjaln883kpwkm0ddgqtdhg8u0ycpl2gucl3/TEST] +peggy_denom = factory/inj16ckgjaln883kpwkm0ddgqtdhg8u0ycpl2gucl3/TEST +decimals = 0 + +[factory/inj16dv5y968dnz8x4tjpmkt3jqxgs9u6kh79hfk5f/position] +peggy_denom = factory/inj16dv5y968dnz8x4tjpmkt3jqxgs9u6kh79hfk5f/position +decimals = 0 + +[factory/inj16e7sphvq7r0urvmkkgurqzgv78g09xx7987y2s/position] +peggy_denom = factory/inj16e7sphvq7r0urvmkkgurqzgv78g09xx7987y2s/position +decimals = 0 + +[factory/inj16jpcu46u9apqydpgx95dtcldgcgacv670epwgq/position] +peggy_denom = factory/inj16jpcu46u9apqydpgx95dtcldgcgacv670epwgq/position +decimals = 0 + +[factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj13772jvadyx4j0hrlfh4jzk0v39k8uyfxrfs540] +peggy_denom = factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj13772jvadyx4j0hrlfh4jzk0v39k8uyfxrfs540 +decimals = 0 + +[factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] +peggy_denom = factory/inj16l9vv0v4uxqw7l4z2yq3pz002ku06fhqlwmed0/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 +decimals = 0 + +[factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/base_token] +peggy_denom = factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/base_token +decimals = 0 + +[factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/staking_token] +peggy_denom = factory/inj16mrltj2lymz6y70apv9e50crmd59fqglfx8cut/staking_token +decimals = 0 + +[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1k7ekkswq203cutjxn9h6qlhxx35v5jjqqydt95] +peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1k7ekkswq203cutjxn9h6qlhxx35v5jjqqydt95 +decimals = 0 + +[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1mp73mhsv4c8q4a27eu3nezas7m6zm7kag74lxt] +peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1mp73mhsv4c8q4a27eu3nezas7m6zm7kag74lxt +decimals = 0 + +[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1n7xdv06zmaramkr0nlm7n9rnr8grh8s5p5g6ah] +peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1n7xdv06zmaramkr0nlm7n9rnr8grh8s5p5g6ah +decimals = 0 + +[factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1w6ghr4pkladye5x9zj4cmx7lpg7a8tg4x2t63f] +peggy_denom = factory/inj16n20mwtmvunl9tdkxajxzezn87z4jv5hgkjn5l/inj1w6ghr4pkladye5x9zj4cmx7lpg7a8tg4x2t63f +decimals = 0 + +[factory/inj16ptqr4z9wxafkx902uhk6vggwlhxf5nsxsda2q/position] +peggy_denom = factory/inj16ptqr4z9wxafkx902uhk6vggwlhxf5nsxsda2q/position +decimals = 0 + +[factory/inj16q5wdfrw0lgkvfezk5c99jdytahggp00ywn4ap/position] +peggy_denom = factory/inj16q5wdfrw0lgkvfezk5c99jdytahggp00ywn4ap/position +decimals = 0 + +[factory/inj16rcm5lgxahvt4rf8a0ngqdn3errswhvmt5yspl/position] +peggy_denom = factory/inj16rcm5lgxahvt4rf8a0ngqdn3errswhvmt5yspl/position +decimals = 0 + +[factory/inj16wyujswd2z99et0jl7fu4q4rrpgdtpp2msnw9v/position] +peggy_denom = factory/inj16wyujswd2z99et0jl7fu4q4rrpgdtpp2msnw9v/position +decimals = 0 + +[factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/ak] +peggy_denom = factory/inj170545298c6cletkgqxlsanyh36uvxuceudt3e2/ak +decimals = 6 + +[factory/inj173k7ym5yf7s27g5qkqjxnndzjqrv6pkvm0sxws/position] +peggy_denom = factory/inj173k7ym5yf7s27g5qkqjxnndzjqrv6pkvm0sxws/position +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj143qfst3qa3u5mqk9rk6f4zjv5syj5eja3mng0g] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj143qfst3qa3u5mqk9rk6f4zjv5syj5eja3mng0g +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj160wzl4mnzqfxm9ux3mvs46uhqex0d5ewt9p8el] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj160wzl4mnzqfxm9ux3mvs46uhqex0d5ewt9p8el +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj18ax4p09y7k8quhslelkw6ktsj0c4n7dt4r67kf] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj18ax4p09y7k8quhslelkw6ktsj0c4n7dt4r67kf +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1a2whf4gfe8c533m7zahs36c7zxpap2khtwvnjj] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1a2whf4gfe8c533m7zahs36c7zxpap2khtwvnjj +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1alv0wvzkul2zndjylt9gssqc0qnzztvf5mv52r] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1alv0wvzkul2zndjylt9gssqc0qnzztvf5mv52r +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1druk8gz469vyfgapvnxput8k5wf5vyu30fqryy] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1druk8gz469vyfgapvnxput8k5wf5vyu30fqryy +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f2zrn6qw5wm27jkdje99538lahmsjy35pzx0zq] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f2zrn6qw5wm27jkdje99538lahmsjy35pzx0zq +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f77zn4hytk8w6qjtr7ks98m4yq6hwduzk8yvp4] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1f77zn4hytk8w6qjtr7ks98m4yq6hwduzk8yvp4 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1hwgrpwgs70cj7s5uc605jk832d6hlyq2pupw82] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1hwgrpwgs70cj7s5uc605jk832d6hlyq2pupw82 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1j3nnhcvesttumyc46pmjx2daxa92f62ku36udl] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1j3nnhcvesttumyc46pmjx2daxa92f62ku36udl +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1jtgygvq0ulstx55hwenk4a6uh5tn8vqhkah8gc] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1jtgygvq0ulstx55hwenk4a6uh5tn8vqhkah8gc +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lfl3y6z9vw3ceprnmxlxerrvgdkz42pm5vqsqy] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lfl3y6z9vw3ceprnmxlxerrvgdkz42pm5vqsqy +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lw0u2rtl36y9tht0uts90fv5vy3vgpmuel27hc] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1lw0u2rtl36y9tht0uts90fv5vy3vgpmuel27hc +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1prqzp6q2nlw2984pyvut6fr5jg47kwkzduw8j2] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1prqzp6q2nlw2984pyvut6fr5jg47kwkzduw8j2 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qdk7vpgmu3e5lj0cru7yyay38vff34tll789lr] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qdk7vpgmu3e5lj0cru7yyay38vff34tll789lr +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qvk5p306aqfvus6e0lktqwfsp0u478ckfddmv9] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1qvk5p306aqfvus6e0lktqwfsp0u478ckfddmv9 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t2zqcm98epsmpy99mjzdczzx79cfy74kh2w35l] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t2zqcm98epsmpy99mjzdczzx79cfy74kh2w35l +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t3y9mu0zk5zuu4y34lfxkq8zx08latdxa5cff5] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1t3y9mu0zk5zuu4y34lfxkq8zx08latdxa5cff5 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1u8j7h7n8tdt66mgp6c0a7f3wq088d3jttwz7sj] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1u8j7h7n8tdt66mgp6c0a7f3wq088d3jttwz7sj +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1uqehwkl6m9gxjqlsf3yvwu528wtcjs00hyx08z] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1uqehwkl6m9gxjqlsf3yvwu528wtcjs00hyx08z +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1v3wvk6upf755pmpxlt8923ktfzrlcpc9fqlaq8] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1v3wvk6upf755pmpxlt8923ktfzrlcpc9fqlaq8 +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1x9k567g0tmpamjkemvm703ff6kczjvz2nany2u] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1x9k567g0tmpamjkemvm703ff6kczjvz2nany2u +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1xallacw6vz8p88qyrezmcyvkmrakacupkvvfvk] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1xallacw6vz8p88qyrezmcyvkmrakacupkvvfvk +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1z0rfjmyvhxmek2z6z702dypxtarphruww40fxr] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1z0rfjmyvhxmek2z6z702dypxtarphruww40fxr +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zn7unxezftv5ltfm5jpfv4s09aueg97dty0zrm] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zn7unxezftv5ltfm5jpfv4s09aueg97dty0zrm +decimals = 0 + +[factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zngkg023f0fqlvpc026rr0pvd4rufw8d4ywke4] +peggy_denom = factory/inj174efvalr8d9muguudh9uyd7ah7zdukqs9w4adq/lpinj1zngkg023f0fqlvpc026rr0pvd4rufw8d4ywke4 +decimals = 0 + +[factory/inj175jqkyrsl84x0u4smqy7cg9nrj5wsd6edkefpz/usdcet] +peggy_denom = factory/inj175jqkyrsl84x0u4smqy7cg9nrj5wsd6edkefpz/usdcet +decimals = 0 + +[factory/inj1766dfyjxn36cwj9jlzjj8lk22vtm7he7ym43et/position] +peggy_denom = factory/inj1766dfyjxn36cwj9jlzjj8lk22vtm7he7ym43et/position +decimals = 0 + +[factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/ak] +peggy_denom = factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/ak +decimals = 6 + +[factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/poop] +peggy_denom = factory/inj179qpc0ra0ymyrgya9zdt3tp4a0vpawzlfgze48/poop +decimals = 0 + +[factory/inj17cx2lxl67mhxc966wl8syz4jyx9v764xgasyje/position] +peggy_denom = factory/inj17cx2lxl67mhxc966wl8syz4jyx9v764xgasyje/position +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj134fxd4hh6l568wdwsma937lalyadgtpaajnytd] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj134fxd4hh6l568wdwsma937lalyadgtpaajnytd +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj139yst2xf5yvesyzfmz6g6e57rczthyuwt7v4qk] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj139yst2xf5yvesyzfmz6g6e57rczthyuwt7v4qk +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj13ude3tmmg6q7042su3wz8eruflayw76xy2axad] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj13ude3tmmg6q7042su3wz8eruflayw76xy2axad +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj14r7u95c072s2sfkad6jugk9r8dnpg4ppc2jwr9] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj14r7u95c072s2sfkad6jugk9r8dnpg4ppc2jwr9 +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj159g4a8rjwdjsdgc6ea253v9rarcn5fuvf0dex8] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj159g4a8rjwdjsdgc6ea253v9rarcn5fuvf0dex8 +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj15j9cez59pdvf9kgv7jnfc6twzjdu9kwzf58ale] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj15j9cez59pdvf9kgv7jnfc6twzjdu9kwzf58ale +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj163qqvz2aygp42acacnpg6zvatn49x2xv8dksdx] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj163qqvz2aygp42acacnpg6zvatn49x2xv8dksdx +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj179acfjvr8sy7ewrdgmy2jm6a6dkgvx5xt4xfmh] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj179acfjvr8sy7ewrdgmy2jm6a6dkgvx5xt4xfmh +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj195rvg27lmdpejxncv9n9py8q60l3fwvwx8tcww] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj195rvg27lmdpejxncv9n9py8q60l3fwvwx8tcww +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1fwv0jgwhtq2peaxxrvp0ch4r6j22gftnqaxldx] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1fwv0jgwhtq2peaxxrvp0ch4r6j22gftnqaxldx +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1h4203fqnpm2dgze6e3h2muxpg3lyaaauwnk8tq] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1h4203fqnpm2dgze6e3h2muxpg3lyaaauwnk8tq +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1jvmgjhp9h9gynlxdgalcp42kz3e4zelqdc50mp] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1jvmgjhp9h9gynlxdgalcp42kz3e4zelqdc50mp +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nhzvghauypl56kyem8msqkntkqrsulg23574dk] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nhzvghauypl56kyem8msqkntkqrsulg23574dk +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nxcvm92a9htme7k6zt57u0tsy9ey2707a8apq7] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1nxcvm92a9htme7k6zt57u0tsy9ey2707a8apq7 +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1r20szses3jy99gjz2qdw4gc9dvdavhwzdeches] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1r20szses3jy99gjz2qdw4gc9dvdavhwzdeches +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1tw5ed50hqnrul8zgdhz9rnjkwjmh25rh366csj] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1tw5ed50hqnrul8zgdhz9rnjkwjmh25rh366csj +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1xrg3lqha00tkllrma80jtvvxn77ce6ykhqur2q] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1xrg3lqha00tkllrma80jtvvxn77ce6ykhqur2q +decimals = 0 + +[factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1zd8zg8xeerlsrsfzxhpe3xgncrp0txetqye9cl] +peggy_denom = factory/inj17d34nrgnq5sj24qd6rk4jrnak628wfqxjx9uhz/lpinj1zd8zg8xeerlsrsfzxhpe3xgncrp0txetqye9cl +decimals = 0 + +[factory/inj17d8znfm9xnrrjmfdhs3y2m3etsc27s6jhe2ggd/ak] +peggy_denom = factory/inj17d8znfm9xnrrjmfdhs3y2m3etsc27s6jhe2ggd/ak +decimals = 6 + +[factory/inj17da0fne9wqaq5yyshf4fx3223zlh9ckj5pjn2j/YOLO] +peggy_denom = factory/inj17da0fne9wqaq5yyshf4fx3223zlh9ckj5pjn2j/YOLO +decimals = 6 + +[factory/inj17dckyf9z5ns40adz6vytca7wpq9nxgftl9lzql/position] +peggy_denom = factory/inj17dckyf9z5ns40adz6vytca7wpq9nxgftl9lzql/position +decimals = 0 + +[factory/inj17dy06jvaz5gwhedqaje38kgp93p75pjy3res4k/position] +peggy_denom = factory/inj17dy06jvaz5gwhedqaje38kgp93p75pjy3res4k/position +decimals = 0 + +[factory/inj17exh9s5gv2ywtsthh2w95asv9n8z08jxgzgshz/position] +peggy_denom = factory/inj17exh9s5gv2ywtsthh2w95asv9n8z08jxgzgshz/position +decimals = 0 + +[factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/TEST] +peggy_denom = factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/TEST +decimals = 6 + +[factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/ak] +peggy_denom = factory/inj17g5ad3xy25rz9je6wu85qye09xklppswh6p0eu/ak +decimals = 6 + +[factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uzen +decimals = 0 + +[factory/inj17je4snps2rfvsxtqd2rfe4fgknswhexggx55ns/holding] +peggy_denom = factory/inj17je4snps2rfvsxtqd2rfe4fgknswhexggx55ns/holding +decimals = 0 + +[factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/LIOR] +peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/LIOR +decimals = 6 + +[factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TEST] +peggy_denom = factory/inj17ljxhz0c7tdcjfzhnk3xgk3mfudtcjs2g3676l/TEST +decimals = 6 + +[factory/inj17mzwp7vpxglwyjp43zhq6h756q5gkkvg4jsd6l/position] +peggy_denom = factory/inj17mzwp7vpxglwyjp43zhq6h756q5gkkvg4jsd6l/position +decimals = 0 + +[factory/inj17nqu6hrdye8u2sa2u8l7smw5hu8ey76qee8ayt/position] +peggy_denom = factory/inj17nqu6hrdye8u2sa2u8l7smw5hu8ey76qee8ayt/position +decimals = 0 + +[factory/inj17nw48wdkx3lxl2zqjzjel3ayhy7lxffhfqr3ve/position] +peggy_denom = factory/inj17nw48wdkx3lxl2zqjzjel3ayhy7lxffhfqr3ve/position +decimals = 0 + +[factory/inj17q6g7a3a9zsx59m2n7nqg7pe3avjl6flfrvfzx/position] +peggy_denom = factory/inj17q6g7a3a9zsx59m2n7nqg7pe3avjl6flfrvfzx/position +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj182tjs70u33r7vssc8tfuwwed3x4ggfeutvk0sl] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj182tjs70u33r7vssc8tfuwwed3x4ggfeutvk0sl +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1a9chuqkye3dytgzg4060nj4kglxt8tx3kr6mwv] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1a9chuqkye3dytgzg4060nj4kglxt8tx3kr6mwv +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1ajfruhkchstjzxwf0mnsc5c6gqw6s8jmptqgkg] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1ajfruhkchstjzxwf0mnsc5c6gqw6s8jmptqgkg +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1dlywe8v0t9gv2ceasj6se387ke95env8lyf3j8] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1dlywe8v0t9gv2ceasj6se387ke95env8lyf3j8 +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1g4exsdxg9gmme7a45lxgwv40ghrtl20vty0ynk] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1g4exsdxg9gmme7a45lxgwv40ghrtl20vty0ynk +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1hc6d3ytp2axqkl5td3387wkg0n23he6rlrek82] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1hc6d3ytp2axqkl5td3387wkg0n23he6rlrek82 +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1htdk4v3xd3tnvehecsuyqhc29gjtgxgg3ryej4] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1htdk4v3xd3tnvehecsuyqhc29gjtgxgg3ryej4 +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1l9z45vvdpeggnctjr5dt0setaf8pfg965whl0d] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1l9z45vvdpeggnctjr5dt0setaf8pfg965whl0d +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1lm5kx8suv5kzmlfya2kscqyzaxflekmh8cwuqz] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1lm5kx8suv5kzmlfya2kscqyzaxflekmh8cwuqz +decimals = 0 + +[factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1vd0mf8a39xwr9hav2g7e8lmur07utjrjv025kd] +peggy_denom = factory/inj17q7ds0yh7hhtusff7gz8a5kx2uwxruttlxur96/lpinj1vd0mf8a39xwr9hav2g7e8lmur07utjrjv025kd +decimals = 0 + +[factory/inj17sjuxy3nsh3ytrckknztzl6gg0mmuyphmxp3pg/position] +peggy_denom = factory/inj17sjuxy3nsh3ytrckknztzl6gg0mmuyphmxp3pg/position +decimals = 0 + +[factory/inj17u7w6x9upf8j4f98x4ftptkkwj8lumah0zhvy7/position] +peggy_denom = factory/inj17u7w6x9upf8j4f98x4ftptkkwj8lumah0zhvy7/position +decimals = 0 + +[factory/inj17v9lheupewm0kqdppp9cwwdlymfgqsefalleld/position] +peggy_denom = factory/inj17v9lheupewm0kqdppp9cwwdlymfgqsefalleld/position +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ABC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ABC +decimals = 6 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FT] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/FT +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/GG] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/GG +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aave] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aave +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ak +decimals = 6 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aptos] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/aptos +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/art] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/art +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/avax] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/avax +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/bnb] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/bnb +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/crv] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/crv +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/cvx] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/cvx +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/gala] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/gala +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/hnt] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/hnt +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ldo] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/ldo +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/op] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/op +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/shib] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/shib +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/sol] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/sol +decimals = 0 + +[factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/tia] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/tia +decimals = 6 + +[factory/inj17wwa9nsg6k5adxck3uryud2qz380k3v06wne9k/position] +peggy_denom = factory/inj17wwa9nsg6k5adxck3uryud2qz380k3v06wne9k/position +decimals = 0 + +[factory/inj17yy8ajcqvhw4d0ssq8x7un8w4y3ql7nj3cgdy2/position] +peggy_denom = factory/inj17yy8ajcqvhw4d0ssq8x7un8w4y3ql7nj3cgdy2/position +decimals = 0 + +[factory/inj17z4scdds993lytxqj5s8kr8rjatkdcgchfqwfw/position] +peggy_denom = factory/inj17z4scdds993lytxqj5s8kr8rjatkdcgchfqwfw/position +decimals = 0 + +[factory/inj186uvu7eal5fr9w7s3g3jlvas0sknkd0chkjejh/position] +peggy_denom = factory/inj186uvu7eal5fr9w7s3g3jlvas0sknkd0chkjejh/position +decimals = 0 + +[factory/inj1889vpk022tkzsm89pjukp8cfyjp6qz2rdl43fn/position] +peggy_denom = factory/inj1889vpk022tkzsm89pjukp8cfyjp6qz2rdl43fn/position +decimals = 0 + +[factory/inj1890mjxvw8g3qqu9wnkyr0hnan0mvtqaulcmp3p/position] +peggy_denom = factory/inj1890mjxvw8g3qqu9wnkyr0hnan0mvtqaulcmp3p/position +decimals = 0 + +[factory/inj1894t5lutrkf895ndxtkxcwux5nkh5ykq32lrvj/position] +peggy_denom = factory/inj1894t5lutrkf895ndxtkxcwux5nkh5ykq32lrvj/position +decimals = 0 + +[factory/inj18c087n0mulwrmedajt6jt0zaa9xed8n7qtjt9p/position] +peggy_denom = factory/inj18c087n0mulwrmedajt6jt0zaa9xed8n7qtjt9p/position +decimals = 0 + +[factory/inj18c0c2c5ght4ffanxggq3ce0g8va6q5xvt8znty/position] +peggy_denom = factory/inj18c0c2c5ght4ffanxggq3ce0g8va6q5xvt8znty/position +decimals = 0 + +[factory/inj18ep02wj2074ek0v0qh6lj0skh9v8rh92eea77g/INJ] +peggy_denom = factory/inj18ep02wj2074ek0v0qh6lj0skh9v8rh92eea77g/INJ +decimals = 6 + +[factory/inj18k45cjqerwgq8y98zre05yr65wx42kagcdax8y/position] +peggy_denom = factory/inj18k45cjqerwgq8y98zre05yr65wx42kagcdax8y/position +decimals = 0 + +[factory/inj18l5a7rtkc8yh4m37jrvl7hg7xkm44rsch9nsth/position] +peggy_denom = factory/inj18l5a7rtkc8yh4m37jrvl7hg7xkm44rsch9nsth/position +decimals = 0 + +[factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/NRL] +peggy_denom = factory/inj18lh8zx4hx0pyksyu74srktv4vgxskkkafknggl/NRL +decimals = 6 + +[factory/inj18pnq5dapjrvk6sp90f7stewu63rktmmhxuqx3m/position] +peggy_denom = factory/inj18pnq5dapjrvk6sp90f7stewu63rktmmhxuqx3m/position +decimals = 0 + +[factory/inj18sw8ljhpwm3289pz06hk79dgj0kdp6q288uey0/position] +peggy_denom = factory/inj18sw8ljhpwm3289pz06hk79dgj0kdp6q288uey0/position +decimals = 0 + +[factory/inj18uaqjlx6hw5dkd4lw4na6mynzfwufdlrv3kz7c/position] +peggy_denom = factory/inj18uaqjlx6hw5dkd4lw4na6mynzfwufdlrv3kz7c/position +decimals = 0 + +[factory/inj18udwms4qgh4wqv3g7754ur07wvl665n8uvemzz/position] +peggy_denom = factory/inj18udwms4qgh4wqv3g7754ur07wvl665n8uvemzz/position +decimals = 0 + +[factory/inj18vyfs7evrmtdawy9h3xjjv6y6mc42c3yt63qf8/position] +peggy_denom = factory/inj18vyfs7evrmtdawy9h3xjjv6y6mc42c3yt63qf8/position +decimals = 0 + +[factory/inj1925pr7emqd3w3xt8ywctpmtc5tqs3alya6t2ap/position] +peggy_denom = factory/inj1925pr7emqd3w3xt8ywctpmtc5tqs3alya6t2ap/position +decimals = 0 + +[factory/inj1954pmp3y7whagxek6u5rgc0y4xan3n5cpgvq4p/position] +peggy_denom = factory/inj1954pmp3y7whagxek6u5rgc0y4xan3n5cpgvq4p/position +decimals = 0 + +[factory/inj195z3zm3z5uspvxuelrsfp60shq9cfykjhnlqyg/position] +peggy_denom = factory/inj195z3zm3z5uspvxuelrsfp60shq9cfykjhnlqyg/position +decimals = 0 + +[factory/inj1967pm6xz3x0w8uucx8pgl0w96qqdnkrflhkgsa/nUSD] +peggy_denom = factory/inj1967pm6xz3x0w8uucx8pgl0w96qqdnkrflhkgsa/nUSD +decimals = 18 + +[factory/inj196dtfgyrp0ugmsdla8m7kufu6pku2nxsj23htn/position] +peggy_denom = factory/inj196dtfgyrp0ugmsdla8m7kufu6pku2nxsj23htn/position +decimals = 0 + +[factory/inj197k0fk258qfwx67nwhsr7dvng2hhm8l2qnrqpw/position] +peggy_denom = factory/inj197k0fk258qfwx67nwhsr7dvng2hhm8l2qnrqpw/position +decimals = 0 + +[factory/inj19846n86rsmxdc4jccxtqezmexxwytzwrjxxu5u/position] +peggy_denom = factory/inj19846n86rsmxdc4jccxtqezmexxwytzwrjxxu5u/position +decimals = 0 + +[factory/inj199sgh70upvs6lpyd85s0v08lpxy4tx9redtlup/position] +peggy_denom = factory/inj199sgh70upvs6lpyd85s0v08lpxy4tx9redtlup/position +decimals = 0 + +[factory/inj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc/lp] +peggy_denom = factory/inj19dehwd2m6hgqprp32xmeulql4dyylytyxun5rc/lp +decimals = 0 + +[factory/inj19eauq5pxlxcta8ngn4436s7jw4p0gy5nrn0yla/1] +peggy_denom = factory/inj19eauq5pxlxcta8ngn4436s7jw4p0gy5nrn0yla/1 +decimals = 0 + +[factory/inj19ec03mpecsww2je83ph6cpn5u586ncec5qemyh/position] +peggy_denom = factory/inj19ec03mpecsww2je83ph6cpn5u586ncec5qemyh/position +decimals = 0 + +[factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/KIRA] +peggy_denom = factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/KIRA +decimals = 0 + +[factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/ak] +peggy_denom = factory/inj19g5dym4epw5h6udv4r25jfc5e2hga8ga85la5e/ak +decimals = 6 + +[factory/inj19g8hqphpah2ueqfc6lp0whe8ycegcchjtavakr/position] +peggy_denom = factory/inj19g8hqphpah2ueqfc6lp0whe8ycegcchjtavakr/position +decimals = 0 + +[factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/TooTOO] +peggy_denom = factory/inj19hvtll63gdk7226lcgdthd8w6vkwvy2lygd54s/TooTOO +decimals = 6 + +[factory/inj19kfmq7r8mcfalfa8h3vwxw8xlq6vz9zj6y6xct/position] +peggy_denom = factory/inj19kfmq7r8mcfalfa8h3vwxw8xlq6vz9zj6y6xct/position +decimals = 0 + +[factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj2] +peggy_denom = factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj2 +decimals = 0 + +[factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] +peggy_denom = factory/inj19l2xm8w8henavhpcfw9jq22ucjesvnzdkv8pj3/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 +decimals = 0 + +[factory/inj19pyact4kpwn5jedpselllzdg9y9v9vj4hg35af/uLP] +peggy_denom = factory/inj19pyact4kpwn5jedpselllzdg9y9v9vj4hg35af/uLP +decimals = 0 + +[factory/inj19qxhsqgje6llmg7xkxkqk2q8xztxpue09p4pvz/position] +peggy_denom = factory/inj19qxhsqgje6llmg7xkxkqk2q8xztxpue09p4pvz/position +decimals = 0 + +[factory/inj19rhvya4gj8sur47y5wc9sgfjervum6wg8qe4gx/position] +peggy_denom = factory/inj19rhvya4gj8sur47y5wc9sgfjervum6wg8qe4gx/position +decimals = 0 + +[factory/inj19sg6yzf8dcz55e5y2wwtxg7zssa58jsgqk7gnv/position] +peggy_denom = factory/inj19sg6yzf8dcz55e5y2wwtxg7zssa58jsgqk7gnv/position +decimals = 0 + +[factory/inj19t2lrnwlztg8stpxd0tl4cvpkeaxrqv7a42jtz/position] +peggy_denom = factory/inj19t2lrnwlztg8stpxd0tl4cvpkeaxrqv7a42jtz/position +decimals = 0 + +[factory/inj19ucnm6n9eunuyxulv0hj0dkavn9ywut0dsnuml/utest] +peggy_denom = factory/inj19ucnm6n9eunuyxulv0hj0dkavn9ywut0dsnuml/utest +decimals = 6 + +[factory/inj19utmngz6ty3yjz7e7m8v37gqjlglgf3r9lkdx6/position] +peggy_denom = factory/inj19utmngz6ty3yjz7e7m8v37gqjlglgf3r9lkdx6/position +decimals = 0 + +[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/first-token] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/first-token +decimals = 0 + +[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck-1] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/lck-1 +decimals = 18 + +[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft-1] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mft-1 +decimals = 18 + +[factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mftt] +peggy_denom = factory/inj19vcgt0pcywuy3tld6yp96emctrafc5s2p5duym/mftt +decimals = 6 + +[factory/inj19wpl5yqj68jf0esy2ss64a9vrwzwludrglck6u/position] +peggy_denom = factory/inj19wpl5yqj68jf0esy2ss64a9vrwzwludrglck6u/position +decimals = 0 + +[factory/inj19x3tplaa70fm420u48dwe7k0p4lypnaea0gm64/position] +peggy_denom = factory/inj19x3tplaa70fm420u48dwe7k0p4lypnaea0gm64/position +decimals = 0 + +[factory/inj19y64q35zwhxwsdzawhls8rrry7tmf50esvut7t/position] +peggy_denom = factory/inj19y64q35zwhxwsdzawhls8rrry7tmf50esvut7t/position +decimals = 0 + +[factory/inj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz/lp] +peggy_denom = factory/inj19y8jas528ulf4s7edg6muyegthsm9z2mtaqkvz/lp +decimals = 0 + +[factory/inj1a30r8ef7l4hgwjcq3kuqtayez349ct68c6ttds/position] +peggy_denom = factory/inj1a30r8ef7l4hgwjcq3kuqtayez349ct68c6ttds/position +decimals = 0 + +[factory/inj1a3adz2q6ddsmswwh66u2yzs70wyjcfkd5d824c/position] +peggy_denom = factory/inj1a3adz2q6ddsmswwh66u2yzs70wyjcfkd5d824c/position +decimals = 0 + +[factory/inj1a46azyrr2uwgejvcf0dry7s0gjt8f0fzgp8kmj/position] +peggy_denom = factory/inj1a46azyrr2uwgejvcf0dry7s0gjt8f0fzgp8kmj/position +decimals = 0 + +[factory/inj1a5h0krl05ygsh3xyx8plmzm9anc7avvptp60v3/position] +peggy_denom = factory/inj1a5h0krl05ygsh3xyx8plmzm9anc7avvptp60v3/position +decimals = 0 + +[factory/inj1a5z8ae6nzemk8cnyjh326gu6py4n7jq8pz2x8e/position] +peggy_denom = factory/inj1a5z8ae6nzemk8cnyjh326gu6py4n7jq8pz2x8e/position +decimals = 0 + +[factory/inj1a8vtk998rq0mnd294527d4ufczshja85mcha4p/position] +peggy_denom = factory/inj1a8vtk998rq0mnd294527d4ufczshja85mcha4p/position +decimals = 0 + +[factory/inj1ae9wagmq456wm0rhlt0mpx4ea2w6q494y7gdml/position] +peggy_denom = factory/inj1ae9wagmq456wm0rhlt0mpx4ea2w6q494y7gdml/position +decimals = 0 + +[factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/SHURIKEN] +peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/SHURIKEN +decimals = 6 + +[factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox1] +peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox1 +decimals = 0 + +[factory/inj1aftq7re8s4d8s55l5aw4dgtt4ex837f2l5x0py/position] +peggy_denom = factory/inj1aftq7re8s4d8s55l5aw4dgtt4ex837f2l5x0py/position +decimals = 0 + +[factory/inj1agcntfljkxyjlqnvs07lym6ugtlcd2krvy2k4v/position] +peggy_denom = factory/inj1agcntfljkxyjlqnvs07lym6ugtlcd2krvy2k4v/position +decimals = 0 + +[factory/inj1agte07lxz2twqvt6upesxp4tc2z65mdshclgkh/position] +peggy_denom = factory/inj1agte07lxz2twqvt6upesxp4tc2z65mdshclgkh/position +decimals = 0 + +[factory/inj1akalafk23jw2rrgkpdfwsv05g5wkzu03lnynyp/position] +peggy_denom = factory/inj1akalafk23jw2rrgkpdfwsv05g5wkzu03lnynyp/position +decimals = 0 + +[factory/inj1al5pu3h64gl9e555t8cfekxy59pk30e6r38t9f/nusd] +peggy_denom = factory/inj1al5pu3h64gl9e555t8cfekxy59pk30e6r38t9f/nusd +decimals = 0 + +[factory/inj1al78qgdyw69uq50exzmmnfjllm3t3wa8rzyzn3/position] +peggy_denom = factory/inj1al78qgdyw69uq50exzmmnfjllm3t3wa8rzyzn3/position +decimals = 0 + +[factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/karate] +peggy_denom = factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/karate +decimals = 6 + +[factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/testcoin] +peggy_denom = factory/inj1aluh09npz2wc7rq8hveuwgzxnlflrzuagewuls/testcoin +decimals = 6 + +[factory/inj1ampqmsdk2687jdael7x89fu59zfw3xm52tchn8/position] +peggy_denom = factory/inj1ampqmsdk2687jdael7x89fu59zfw3xm52tchn8/position +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj108uf9tsu4e8q3f45pt3ylc4wv5c8kvrt66azun] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj108uf9tsu4e8q3f45pt3ylc4wv5c8kvrt66azun +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj13zf66kwwvmvr20sm5dh39p3x3pkw0ry3jrfus2] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj13zf66kwwvmvr20sm5dh39p3x3pkw0ry3jrfus2 +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj145lkwt43eq7u8vuw8h2schvycvt2ue03wm6s6x] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj145lkwt43eq7u8vuw8h2schvycvt2ue03wm6s6x +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15p3jd8svfp40ez9ckj4qzak209sdequhmpt5c2] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15p3jd8svfp40ez9ckj4qzak209sdequhmpt5c2 +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15pcxscn4s0g95trxd42jk6xnssnvs9sze472pu] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15pcxscn4s0g95trxd42jk6xnssnvs9sze472pu +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15zhsj42y2p990m8j5uh2rym2fmqnalupmwuj9p] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj15zhsj42y2p990m8j5uh2rym2fmqnalupmwuj9p +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj17lt3vtgtpprn877gyd694hvtgn5p3c3mt6z39l] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj17lt3vtgtpprn877gyd694hvtgn5p3c3mt6z39l +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj18w7c5cj6ygmk2hxzu8d86husg8wyhgtd9n4fkf] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj18w7c5cj6ygmk2hxzu8d86husg8wyhgtd9n4fkf +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj196f5hz8x7laqyfykr6sf6f6qjkna2gd2eqvdcy] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj196f5hz8x7laqyfykr6sf6f6qjkna2gd2eqvdcy +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj19glgtxlvlmwuwdqyknn666arnxt4y88zgz3pnj] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj19glgtxlvlmwuwdqyknn666arnxt4y88zgz3pnj +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ecnn87skvhfm579ms6w46zpf2gk6neftujky4k] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ecnn87skvhfm579ms6w46zpf2gk6neftujky4k +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1f03c5r2nlsh390y97p776clvgm9pqmkecj92q3] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1f03c5r2nlsh390y97p776clvgm9pqmkecj92q3 +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1favce2lmfgwzvzeavrt88cqn8vx7w9aexfsuld] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1favce2lmfgwzvzeavrt88cqn8vx7w9aexfsuld +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1fys254q0ktp4k9uys94f0l5ujljjjc86qf0gx3] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1fys254q0ktp4k9uys94f0l5ujljjjc86qf0gx3 +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1hzs0sdqrmt3vw9w0qaxhtqed3mlhpldurkv6ty] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1hzs0sdqrmt3vw9w0qaxhtqed3mlhpldurkv6ty +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1kc6aehzj3uhc90qjrgsemq5evyay3ys24se2wu] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1kc6aehzj3uhc90qjrgsemq5evyay3ys24se2wu +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1l070c6tav7a7xxyh3rmjpqdffkwgsw3jr5ypmj] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1l070c6tav7a7xxyh3rmjpqdffkwgsw3jr5ypmj +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1m6fus7a9mmrvz7ac7k0m8c94ywj2q64d7vnzzx] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1m6fus7a9mmrvz7ac7k0m8c94ywj2q64d7vnzzx +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1mxe5r73ne92yg4a207vvpe0mjvylv86ghdu4cp] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1mxe5r73ne92yg4a207vvpe0mjvylv86ghdu4cp +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ny8n2dlqn7s38tx8ljn9kn65t74tn6z3pe0l5u] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1ny8n2dlqn7s38tx8ljn9kn65t74tn6z3pe0l5u +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1r3nfgtptufxsatdd3kdr6e3qwjcmnma9myg8nq] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1r3nfgtptufxsatdd3kdr6e3qwjcmnma9myg8nq +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1rzheq4hfad8x9vh6zlwe7rhw59gps6vnhywtds] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1rzheq4hfad8x9vh6zlwe7rhw59gps6vnhywtds +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1s4227045efy2t5lmw5nm0a082y75a0t50zh5lc] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1s4227045efy2t5lmw5nm0a082y75a0t50zh5lc +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sg25epqzk8g89wzlpx04mg5jphk0dk2eq2mkts] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sg25epqzk8g89wzlpx04mg5jphk0dk2eq2mkts +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sngs2wlfynj4y3vtw7pdfn4cm9xr83wc92vys7] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1sngs2wlfynj4y3vtw7pdfn4cm9xr83wc92vys7 +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1t9c9yggeyxfd0x8jfu869xvyksg5ytjlhmv4fz] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1t9c9yggeyxfd0x8jfu869xvyksg5ytjlhmv4fz +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1tl6rljef25zxtju0842w6vr0a20a8s9rdd25kj] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1tl6rljef25zxtju0842w6vr0a20a8s9rdd25kj +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1uu3llx95wl7u2pl44ltr45exdm5nja5r5c3hky] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1uu3llx95wl7u2pl44ltr45exdm5nja5r5c3hky +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1vczur6w8xaand2lzup2l8w7jjqy7e70md3xa7p] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1vczur6w8xaand2lzup2l8w7jjqy7e70md3xa7p +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1w9hnzhlq26wdgw3d2gh9fvf3nwnvxe6ff5crdj] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1w9hnzhlq26wdgw3d2gh9fvf3nwnvxe6ff5crdj +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wdjs5alt50mqc9wq5zek5j0kv8gkxwasady0cp] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wdjs5alt50mqc9wq5zek5j0kv8gkxwasady0cp +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wrwpwkrhc6tyrm5px8xcmuv0ufgcqjngquw20h] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1wrwpwkrhc6tyrm5px8xcmuv0ufgcqjngquw20h +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1x6ux4um7xlctx09fe60k258yr03d3npvpt07jv] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1x6ux4um7xlctx09fe60k258yr03d3npvpt07jv +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1xvlnfmq5672rmvn6576rvj389ezu9nxc9dpk8l] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1xvlnfmq5672rmvn6576rvj389ezu9nxc9dpk8l +decimals = 0 + +[factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1z098f8syf3g2pmt606kqmsmwfy2z5rcgmzte0h] +peggy_denom = factory/inj1an0gxz8w2sfavu5glt32hly5m2ltz67eyx2gra/lpinj1z098f8syf3g2pmt606kqmsmwfy2z5rcgmzte0h +decimals = 0 + +[factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test +decimals = 6 + +[factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/testa1] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/testa1 +decimals = 6 + +[factory/inj1astu9n8434xpd0h90gfgksp85324cd5kp6gs5q/position] +peggy_denom = factory/inj1astu9n8434xpd0h90gfgksp85324cd5kp6gs5q/position +decimals = 0 + +[factory/inj1au376u55jzxj3rxhk7e4q0pk2xz0xf6a0ww8me/position] +peggy_denom = factory/inj1au376u55jzxj3rxhk7e4q0pk2xz0xf6a0ww8me/position +decimals = 0 + +[factory/inj1audhvz4wweflplqpws7348w4tjj4lwdq8gs0g5/position] +peggy_denom = factory/inj1audhvz4wweflplqpws7348w4tjj4lwdq8gs0g5/position +decimals = 0 + +[factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1f42t9j379jm5sss0j9xarf0mmwzp69nugd6pzf] +peggy_denom = factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1f42t9j379jm5sss0j9xarf0mmwzp69nugd6pzf +decimals = 0 + +[factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1yvm6xz7ztv24ketpw8hsuns95z7nrtjm2ws6s7] +peggy_denom = factory/inj1aueqg42j0xs3yyea9ppgs652l99g4wegc6kuks/lpinj1yvm6xz7ztv24ketpw8hsuns95z7nrtjm2ws6s7 +decimals = 0 + +[factory/inj1aus3al2tm7kd2kammhuvu7tae0gyn3vz4tmln2/position] +peggy_denom = factory/inj1aus3al2tm7kd2kammhuvu7tae0gyn3vz4tmln2/position +decimals = 0 + +[factory/inj1aw8kmum8xcnwramz0ekdy0pl0k7xfdydmhxr07/position] +peggy_denom = factory/inj1aw8kmum8xcnwramz0ekdy0pl0k7xfdydmhxr07/position +decimals = 0 + +[factory/inj1awvzukx5tfp6dzlc7v87jrtwg0m2z97gwgk2l7/position] +peggy_denom = factory/inj1awvzukx5tfp6dzlc7v87jrtwg0m2z97gwgk2l7/position +decimals = 0 + +[factory/inj1ayhegfjmnsnv5wcuuxk56c27zf0zhvcm659haz/position] +peggy_denom = factory/inj1ayhegfjmnsnv5wcuuxk56c27zf0zhvcm659haz/position +decimals = 0 + +[factory/inj1azh3q0uq5xhj856jfe7cq8g42vf0vqwe6q380d/position] +peggy_denom = factory/inj1azh3q0uq5xhj856jfe7cq8g42vf0vqwe6q380d/position +decimals = 0 + +[factory/inj1c36j9k3vrvxm5hg0p44n9lfmldmfughcr0yn9y/bINJ] +peggy_denom = factory/inj1c36j9k3vrvxm5hg0p44n9lfmldmfughcr0yn9y/bINJ +decimals = 0 + +[factory/inj1c588j3kkay3hk4np5xlqttrnzhqp7k2wfhg9jr/position] +peggy_denom = factory/inj1c588j3kkay3hk4np5xlqttrnzhqp7k2wfhg9jr/position +decimals = 0 + +[factory/inj1c8fxfgjnqssuqwsfn5lyyjff20tmwpjgr9zavx/position] +peggy_denom = factory/inj1c8fxfgjnqssuqwsfn5lyyjff20tmwpjgr9zavx/position +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393090InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393090InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393190InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688393190InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562440InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562440InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562475InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688562475InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738289InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738289InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738335InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688738335InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919059InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919059InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919103InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1688919103InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267553InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267553InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267590InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689267590InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599333InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599333InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599371InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689599371InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947444InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947444InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947488InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1689947488InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292884InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292884InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292943InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690292943InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638281InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638281InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638318InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690638318InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690977270InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690977270InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690985975InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690985975InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690986069InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1690986069InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332939InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332939InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332966InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691332966InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672834InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672834InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672874InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1691672874InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088340InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088340InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088377InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692088377InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366264InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366264InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366299InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692366299InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713323InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713323InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713423InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1692713423InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693059790InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693059790InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693061285InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693061285InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693314015InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693314015InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693400975InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693400975InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693401025InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693401025InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693573212InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693573212InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693668292InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693668292InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693918802InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693918802InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693919162InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1693919162InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264419InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264419InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264444InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694264444InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610004InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610004InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610034InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694610034InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955601InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955601InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955631InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1694955631InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301201InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301201InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301775InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695301775InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695646812InjUsdt14d130C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695646812InjUsdt14d130C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695651424InjUsdt14d80P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695651424InjUsdt14d80P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695911036InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695911036InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912528InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912528InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912582InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695912582InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695922942InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695922942InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695924094InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695924094InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992413InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992413InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992443InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992443InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992458InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992458InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992533InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1695992533InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165211InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165211InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165241InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165241InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165255InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165255InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165331InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696165331InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696182385InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696182385InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338011InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338011InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338040InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338040InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338055InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696338055InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339261InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339261InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339298InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696339298InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510811InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510811InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510841InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510841InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510871InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696510871InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515587InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515587InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515618InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696515618InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683611InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683611InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683641InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696683641InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693437InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693437InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693477InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693477InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693515InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696693515InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856403InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856403InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856433InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856433InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856448InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696856448InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857075InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857075InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857115InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1696857115InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029205InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029205InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029235InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029235InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029250InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029250InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029808InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029808InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029853InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697029853InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202011InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202011InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202035InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202035InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202050InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202050InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202096InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202096InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202125InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697202125InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374809InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374809InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374839InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374839InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374854InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697374854InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379492InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379492InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379504InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697379504InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547614InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547614InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547643InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547643InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547658InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697547658InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549059InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549059InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549075InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697549075InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720411InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720411InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720438InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720438InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720453InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697720453InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722452InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722452InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722512InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722512InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722541InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722541InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722572InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722572InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722633InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722633InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722693InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722693InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722754InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722754InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722766InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722766InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722781InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722781InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722796InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697722796InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724339InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724339InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724387InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724387InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724390InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724390InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724475InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697724475InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893205InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893205InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893234InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893234InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893249InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893249InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893294InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697893294InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697895660InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1697895660InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066012InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066012InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066056InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698066056InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071468InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071468InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071537InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071537InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071660InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698071660InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238813InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238813InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238853InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238853InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238868InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238868InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238913InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698238913InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698240068InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698240068InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411615InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411615InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411656InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411656InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411673InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411673InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411686InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411686InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411717InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698411717InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584414InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584414InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584458InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584458InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584475InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698584475InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592535InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592535InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592576InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698592576InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757215InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757215InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757256InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757256InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757273InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698757273InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758802InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758802InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758832InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698758832InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843614InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843614InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843674InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698843674InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931135InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931135InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931139InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931139InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931146InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931146InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931150InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931150InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931183InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1698931183InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016403InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016403InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016433InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016433InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016448InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016448InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016463InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016463InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016583InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699016583InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699103898InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699103898InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104579InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104579InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104609InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104609InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104624InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104624InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104639InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699104639InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189213InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189213InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189258InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189258InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189273InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189273InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189303InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189303InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189363InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699189363InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362005InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362005InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362047WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362047WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362062InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362062InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362092InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362092InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362107InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362107InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362137InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362137InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362152WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362152WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362182WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699362182WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699363478WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699363478WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534816InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534816InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534856InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534856InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534873InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534873InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534901WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534901WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534916InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534916InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534946WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699534946WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537637InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537637InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537689WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537689WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537827WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699537827WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707612InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707612InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707642WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707642WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707672WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707672WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707702InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707702InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707717WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707717WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707747WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699707747WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880411InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880411InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880440WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880440WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880455AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880455AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880470WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880470WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880472AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880472AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880515WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880515WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880531WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880531WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880546InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880546InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880591InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699880591InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883358InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883358InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883418AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883418AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883465InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883465InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883507AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1699883507AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053208WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053208WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053237InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053237InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053252AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053252AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053268AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053268AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053297WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053297WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053313InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053313InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053358InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053358InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053403InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700053403InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054233WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054233WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054322InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054322InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054425AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054425AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054460WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054460WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054540InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054540InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054603AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700054603AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700055200InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700055200InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226004AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226004AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226032InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226032InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226047WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226047WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226065AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226065AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226093WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226093WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226108InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226108InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226123WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226123WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226214AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700226214AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237848InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237848InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237905InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700237905InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238026InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238026InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238071AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238071AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238126WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700238126WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398810InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398810InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398838WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398838WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398853InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398853InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398871InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398871InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398929InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398929InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398944WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398944WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398974AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700398974AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700399004WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700399004WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408075WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408075WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408140AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408140AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408200InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408200InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408248AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408248AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408289AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700408289AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571609AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571609AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571632WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571632WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571647AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571647AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571666AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571666AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571677InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571677InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571692WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571692WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571707InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571707InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571723WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571723WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571768AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700571768AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579392InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579392InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579439WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579439WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579479InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579479InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579489InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700579489InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744414WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744414WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744455InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744455InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744473AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744473AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744485WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744485WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744500AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744500AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744515InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744515InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744561InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744561InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744591WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700744591WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700748942WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700748942WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749133InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749133InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749179InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749179InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749219AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749219AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749252AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700749252AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917204WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917204WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917232InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917232InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917247InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917247InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917262InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917262InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917292WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917292WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917308AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917308AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917323AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917323AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917338WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917338WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917353InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917353InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917488AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700917488AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921448InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921448InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921481AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921481AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921520WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1700921520WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090009WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090009WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090052InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090052InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090066InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090066InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090081AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090081AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090096AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090096AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090111WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090111WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090141WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090141WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090171InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701090171InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095493WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095493WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095532InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095532InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095557AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095557AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095607InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095607InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095626AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701095626AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262817InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262817InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262857InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262857InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262872InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262872InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262875WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262875WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262902AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262902AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262933WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262933WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262963WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701262963WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263083InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263083InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701263221AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267248InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267248InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267412WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267412WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267494AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701267494AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435312AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435613InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435613InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435655WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435655WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435675InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435675InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435684WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435684WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435775InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435775InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435790WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435790WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435880WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701435880WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437080InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437080InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437560InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437560InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701437574AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608110InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608413WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608413WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608438InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608438InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608471InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608471InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608513WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608513WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608574WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608574WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608589InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701608589InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701614619WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701614619WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701780916WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781204InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781204InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781258WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781258WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781262InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781262InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781303WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781303WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781409WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701781409WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701782379InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701782379InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953703WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953704WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1701953705WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126501WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126502WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126503InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702126504WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299314WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702299315WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472108WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702472110WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644910InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644910InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644911WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644912AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644912AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702644913WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817700WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817701WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702817702WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990515WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1702990516WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163309WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163310WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703163311WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703336400WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703509200WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703682000WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854510WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854511WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854512InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1703854512InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027313WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027314WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704027315WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113708WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113709WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704113710WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d85P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504AtomUsdt10d85P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504InjUsdt10d84P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504InjUsdt10d84P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d111C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d111C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d86P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt10d86P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286504WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d124C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505AtomUsdt10d124C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt10d128C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt10d128C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286505WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286506InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704286506InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d113C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d113C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d91P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704459305WEthUsdt6d91P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704632108InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704804916InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1704977701InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150513InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150514InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705150514InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705323312InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705496114InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668906InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668906InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705668907InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1705841709InjUsdt6d82P +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d114C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d114C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d117C] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d117C +decimals = 0 + +[factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d82P] +peggy_denom = factory/inj1ccntcwshzgf40ac8zcpt8tfa6fd3w6r567mp3z/1706014513InjUsdt6d82P +decimals = 0 + +[factory/inj1cdtyk74jm0qg5r0snkddqwl4d0r4vu54zakvkd/position] +peggy_denom = factory/inj1cdtyk74jm0qg5r0snkddqwl4d0r4vu54zakvkd/position +decimals = 0 + +[factory/inj1ce5nts6qntka3te9zqcgf6pgyczxjd8aul9dvp/PTG] +peggy_denom = factory/inj1ce5nts6qntka3te9zqcgf6pgyczxjd8aul9dvp/PTG +decimals = 0 + +[factory/inj1cepq3ezj4plltmnu3zkkzmnta56ur39pu9wssy/position] +peggy_denom = factory/inj1cepq3ezj4plltmnu3zkkzmnta56ur39pu9wssy/position +decimals = 0 + +[factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/dev] +peggy_denom = factory/inj1cg3ufnnh7cdj9mnxc5dpvzufcrtckqqec0y5dp/dev +decimals = 0 + +[factory/inj1cjcpjhrg2ame8u2358ufw4dk22uua0d75pf0rd/bpINJ] +peggy_denom = factory/inj1cjcpjhrg2ame8u2358ufw4dk22uua0d75pf0rd/bpINJ +decimals = 0 + +[factory/inj1cjju83m8tmzf48htuex6qgks3q6s3xzrdml4a2/position] +peggy_denom = factory/inj1cjju83m8tmzf48htuex6qgks3q6s3xzrdml4a2/position +decimals = 0 + +[factory/inj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv/lp] +peggy_denom = factory/inj1ckmdhdz7r8glfurckgtg0rt7x9uvner4ygqhlv/lp +decimals = 0 + +[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/AAA] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/AAA +decimals = 0 + +[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/APE] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/APE +decimals = 6 + +[factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test +decimals = 6 + +[factory/inj1cq2uqxukggfktp5pqgchkxnjg4u5ct346wvyvr/position] +peggy_denom = factory/inj1cq2uqxukggfktp5pqgchkxnjg4u5ct346wvyvr/position +decimals = 0 + +[factory/inj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux/lp] +peggy_denom = factory/inj1cscsemd4rppu3rkxg98dr68npzygxshuylnuux/lp +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj14gtevsjys2unq288w2trytk0e9cj7g45yq79fw] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj14gtevsjys2unq288w2trytk0e9cj7g45yq79fw +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15tcjh9c7je9auea2xdj0zm2d6285mg23f97vnt] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15tcjh9c7je9auea2xdj0zm2d6285mg23f97vnt +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15ydvx7ynwj3ztsuhmge5dluq7xt942mwpktg7m] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj15ydvx7ynwj3ztsuhmge5dluq7xt942mwpktg7m +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj18kpc00ft4lmzk73wtw4a6lpny8plz6kmpzfmsa] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj18kpc00ft4lmzk73wtw4a6lpny8plz6kmpzfmsa +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19hpqtcajc82cquytuxgmw6lg3k0qwuru3t00n7] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19hpqtcajc82cquytuxgmw6lg3k0qwuru3t00n7 +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19kaqlc2xxku64esn5fuml8qpmd43qu7puyawnc] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19kaqlc2xxku64esn5fuml8qpmd43qu7puyawnc +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19ydmpse0244sue79yzvszkpkk32y53urtcjtm6] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj19ydmpse0244sue79yzvszkpkk32y53urtcjtm6 +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1apapy3g66m52mmt2wkyjm6hpyd563t90u0dgmx] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1apapy3g66m52mmt2wkyjm6hpyd563t90u0dgmx +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c4ax6zup2w2v6nfh8f8gv4ks83lhv9hv53xf7a] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c4ax6zup2w2v6nfh8f8gv4ks83lhv9hv53xf7a +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c6ql7ladykug4f0ue3ht8qrrwqen3jmz2sxaf2] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1c6ql7ladykug4f0ue3ht8qrrwqen3jmz2sxaf2 +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1dswjduvp7fq52ulcuqmv6caqs5ssxkspavhs4d] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1dswjduvp7fq52ulcuqmv6caqs5ssxkspavhs4d +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1g4cpf9jhqgfel02g94uguw332nvrtlp6dxjnkz] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1g4cpf9jhqgfel02g94uguw332nvrtlp6dxjnkz +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1hkuk3yf6apqqj93ay7e8cxx7tc88zdydm38c9u] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1hkuk3yf6apqqj93ay7e8cxx7tc88zdydm38c9u +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1jy6s387mwu2l96qqw3vxpzfgcyfleqy9r74uqp] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1jy6s387mwu2l96qqw3vxpzfgcyfleqy9r74uqp +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1kj5ynn7w4f8uymk4qdjythss8fkfrljh0wqlsz] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1kj5ynn7w4f8uymk4qdjythss8fkfrljh0wqlsz +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1nt9x2szk5dkgr7m8q60kxeg2we546ud0uqe276] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1nt9x2szk5dkgr7m8q60kxeg2we546ud0uqe276 +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1up4rl2q7n3fh785t9ej78xhvfah9mxt8u24n32] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1up4rl2q7n3fh785t9ej78xhvfah9mxt8u24n32 +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1ve5rqgz5l2fytd22egw5tgs79pa7l5zzzdt0ys] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1ve5rqgz5l2fytd22egw5tgs79pa7l5zzzdt0ys +decimals = 0 + +[factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1y3cmnn0plm4vt6j2nyf5plg48rlywn7cuygv62] +peggy_denom = factory/inj1ctl84udl4flydzdgf8er4z35dd974sufuw4dfk/lpinj1y3cmnn0plm4vt6j2nyf5plg48rlywn7cuygv62 +decimals = 0 + +[factory/inj1cuwygvhqcxgjhudslflfxwxhge8d265tc0uqq5/position] +peggy_denom = factory/inj1cuwygvhqcxgjhudslflfxwxhge8d265tc0uqq5/position +decimals = 0 + +[factory/inj1cvdpxpwlggytumd9ydkvq7z3y0pp75wawnznqp/position] +peggy_denom = factory/inj1cvdpxpwlggytumd9ydkvq7z3y0pp75wawnznqp/position +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1afn8932y6f5v44eguf4tazn5f80uaxz4q603c9] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1afn8932y6f5v44eguf4tazn5f80uaxz4q603c9 +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1fzm58vwmtsn4vxuajvhsdqrjqrdhhdlqfd9lfd] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1fzm58vwmtsn4vxuajvhsdqrjqrdhhdlqfd9lfd +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1gf9dpyjtc5gfnc69nj6e67a2wrsjpruk3caywc] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1gf9dpyjtc5gfnc69nj6e67a2wrsjpruk3caywc +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1ghzfg2v3jzqe3vrhw4wngs43mscpxx98fpjwga] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1ghzfg2v3jzqe3vrhw4wngs43mscpxx98fpjwga +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1jdthft9pq8s87n5x65g49z3rv9nqnvpwrjgfz4] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1jdthft9pq8s87n5x65g49z3rv9nqnvpwrjgfz4 +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1lz5wufvx8qnvpwnw936dsgacdfqcrvrzn7z99f] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1lz5wufvx8qnvpwnw936dsgacdfqcrvrzn7z99f +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nlhwnpeph9gwlng972j9zjwm8n523hx0n2kaj9] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nlhwnpeph9gwlng972j9zjwm8n523hx0n2kaj9 +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nrlveguv98ag7hf3xepd3aycrm8mp7rnhek9av] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nrlveguv98ag7hf3xepd3aycrm8mp7rnhek9av +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nv62axs4mmxfcuwg6v9aayyevxr4z7p9u0vn4y] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1nv62axs4mmxfcuwg6v9aayyevxr4z7p9u0vn4y +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1v26u44zh87fvvdpayzvw8t9vrydz25mp6kdkru] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1v26u44zh87fvvdpayzvw8t9vrydz25mp6kdkru +decimals = 0 + +[factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1yj6rs33p42t6qx6j43z8d4zqx5egr76wdpz44t] +peggy_denom = factory/inj1cwx93480s73en2qxqlacte42dpusxdkgs83j0f/lpinj1yj6rs33p42t6qx6j43z8d4zqx5egr76wdpz44t +decimals = 0 + +[factory/inj1cxjmxnuul7fcwt5jfgn87gf3u9yq74trgn2h64/position] +peggy_denom = factory/inj1cxjmxnuul7fcwt5jfgn87gf3u9yq74trgn2h64/position +decimals = 0 + +[factory/inj1cxx7gcy35zce6x869mvq7af4e3gnka5m8yr9xm/bpINJ] +peggy_denom = factory/inj1cxx7gcy35zce6x869mvq7af4e3gnka5m8yr9xm/bpINJ +decimals = 0 + +[factory/inj1cyp93g4eq3l4xknl803x3je4k5xr9fdr5qp78h/position] +peggy_denom = factory/inj1cyp93g4eq3l4xknl803x3je4k5xr9fdr5qp78h/position +decimals = 0 + +[factory/inj1d0646us3wrcw6a77qmth6sc539vplaqdya55zh/nUSD] +peggy_denom = factory/inj1d0646us3wrcw6a77qmth6sc539vplaqdya55zh/nUSD +decimals = 18 + +[factory/inj1d2fz729s6egfvaf0ucg9pwecatkyp3s4zns0qq/position] +peggy_denom = factory/inj1d2fz729s6egfvaf0ucg9pwecatkyp3s4zns0qq/position +decimals = 0 + +[factory/inj1d37eu9nq4l3za205cswnt9qwcp256cp4g6f2wl/position] +peggy_denom = factory/inj1d37eu9nq4l3za205cswnt9qwcp256cp4g6f2wl/position +decimals = 0 + +[factory/inj1d3jc5pr6nsf9twyzjh9w5nj7nn235ysllwtpq7/frcoin] +peggy_denom = factory/inj1d3jc5pr6nsf9twyzjh9w5nj7nn235ysllwtpq7/frcoin +decimals = 0 + +[factory/inj1d3zazwsqnsg29srlc52vp70gnxzr0njun8z79r/position] +peggy_denom = factory/inj1d3zazwsqnsg29srlc52vp70gnxzr0njun8z79r/position +decimals = 0 + +[factory/inj1d42m7tzg46rm986d4khfr4khvtlp5nuynqa258/position] +peggy_denom = factory/inj1d42m7tzg46rm986d4khfr4khvtlp5nuynqa258/position +decimals = 0 + +[factory/inj1d47wsg95r9nwr564y3c8q6f3du4fvvucuhkcy7/position] +peggy_denom = factory/inj1d47wsg95r9nwr564y3c8q6f3du4fvvucuhkcy7/position +decimals = 0 + +[factory/inj1d4ajy0e7ykpem7zq3ur7e56uff9zspk8rfuvl8/position] +peggy_denom = factory/inj1d4ajy0e7ykpem7zq3ur7e56uff9zspk8rfuvl8/position +decimals = 0 + +[factory/inj1d4gfk3ychy9qcklj7azay6djhfytmalj7e0yax/bpINJ] +peggy_denom = factory/inj1d4gfk3ychy9qcklj7azay6djhfytmalj7e0yax/bpINJ +decimals = 0 + +[factory/inj1d4q5kja5dy95ss0yxkk5zlfj6zc49f40yh3wd5/position] +peggy_denom = factory/inj1d4q5kja5dy95ss0yxkk5zlfj6zc49f40yh3wd5/position +decimals = 0 + +[factory/inj1d5a4g5h3ew2e5sta9fjk42t2pp2azaw96hu8r5/position] +peggy_denom = factory/inj1d5a4g5h3ew2e5sta9fjk42t2pp2azaw96hu8r5/position +decimals = 0 + +[factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/injx] +peggy_denom = factory/inj1d5p93zzsgr5dwvxfus4hsp3nxz29y99r80905q/injx +decimals = 6 + +[factory/inj1d8je3vv9k4639et8asyypgyjrffxvj4me5zzdp/position] +peggy_denom = factory/inj1d8je3vv9k4639et8asyypgyjrffxvj4me5zzdp/position +decimals = 0 + +[factory/inj1dam3n6v90ky7l6emgv4v2zgzcxrmchssryzs7c/position] +peggy_denom = factory/inj1dam3n6v90ky7l6emgv4v2zgzcxrmchssryzs7c/position +decimals = 0 + +[factory/inj1dc6rrxhfjaxexzdcrec5w3ryl4jn6x5t7t9j3z/foobar] +peggy_denom = factory/inj1dc6rrxhfjaxexzdcrec5w3ryl4jn6x5t7t9j3z/foobar +decimals = 0 + +[factory/inj1ddp0ltux6sx2j2hh7q6uvqfhesyk0lwymzas6x/WIZZ] +peggy_denom = factory/inj1ddp0ltux6sx2j2hh7q6uvqfhesyk0lwymzas6x/WIZZ +decimals = 6 + +[factory/inj1dfvy2pcrk5cc3ypljed5f39xj75fpku38c09nr/position] +peggy_denom = factory/inj1dfvy2pcrk5cc3ypljed5f39xj75fpku38c09nr/position +decimals = 0 + +[factory/inj1dlfft5qkmmyhgvsrhalg5ncrxtsek4uggtsqcm/position] +peggy_denom = factory/inj1dlfft5qkmmyhgvsrhalg5ncrxtsek4uggtsqcm/position +decimals = 0 + +[factory/inj1dmfq9frxl7p3ym4w6lu8jj73ev7l35r5fwp2mu/position] +peggy_denom = factory/inj1dmfq9frxl7p3ym4w6lu8jj73ev7l35r5fwp2mu/position +decimals = 0 + +[factory/inj1dphl5v4j93lndzpeag8274aew870c425fdren7/position] +peggy_denom = factory/inj1dphl5v4j93lndzpeag8274aew870c425fdren7/position +decimals = 0 + +[factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDL] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/DDL +decimals = 6 + +[factory/inj1dtv4sfv6kp72tsk8y4dz6s8w3lkjga9clx99jg/position] +peggy_denom = factory/inj1dtv4sfv6kp72tsk8y4dz6s8w3lkjga9clx99jg/position +decimals = 0 + +[factory/inj1du8933kzqm6zqq7kz93c5kv28e7ffqy9lmdgr9/position] +peggy_denom = factory/inj1du8933kzqm6zqq7kz93c5kv28e7ffqy9lmdgr9/position +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683106600InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683106600InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107230InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107230InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107439InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683107439InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108418InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108418InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108796InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683108796InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683109853AtomUsdt7d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683109853AtomUsdt7d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136047InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136047InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136243InjUsdt14d80P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136243InjUsdt14d80P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136518AtomUsdt7d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136518AtomUsdt7d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136988InjUsdt14d130C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683136988InjUsdt14d130C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138126InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138126InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138306AtomUsdt21d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138306AtomUsdt21d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138463AtomUsdt21d115C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683138463AtomUsdt21d115C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139006InjUsdt21d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139006InjUsdt21d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139147InjUsdt21d88P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683139147InjUsdt21d88P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302884InjUsdt21d88P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302884InjUsdt21d88P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302928InjUsdt14d80P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683302928InjUsdt14d80P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303047InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303047InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303087AtomUsdt21d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303087AtomUsdt21d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303122AtomUsdt21d115C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303122AtomUsdt21d115C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303156InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303156InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303211InjUsdt14d130C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303211InjUsdt14d130C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303495InjUsdt21d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683303495InjUsdt21d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476746InjUsdt21d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476746InjUsdt21d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476780InjUsdt14d130C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476780InjUsdt14d130C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476814InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476814InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476835AtomUsdt21d115C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476835AtomUsdt21d115C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476858AtomUsdt21d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476858AtomUsdt21d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476891InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476891InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476927InjUsdt14d80P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476927InjUsdt14d80P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476949InjUsdt21d88P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683476949InjUsdt21d88P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650472InjUsdt21d88P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650472InjUsdt21d88P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650539InjUsdt14d80P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650539InjUsdt14d80P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650574InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650574InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650640AtomUsdt21d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650640AtomUsdt21d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650659AtomUsdt21d115C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650659AtomUsdt21d115C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650692InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650692InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650715InjUsdt14d130C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650715InjUsdt14d130C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650740InjUsdt21d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683650740InjUsdt21d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820836InjUsdt3d112C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820836InjUsdt3d112C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820868InjUsdt21d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820868InjUsdt21d110C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820948InjUsdt14d130C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683820948InjUsdt14d130C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821009InjUsdt7d120C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821009InjUsdt7d120C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821053AtomUsdt21d115C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821053AtomUsdt21d115C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821079AtomUsdt21d90P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821079AtomUsdt21d90P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821101InjUsdt7d85P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821101InjUsdt7d85P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821126InjUsdt14d80P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821126InjUsdt14d80P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821144InjUsdt21d88P] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683821144InjUsdt21d88P +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683822139InjUsdt3d112C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683822139InjUsdt3d112C +decimals = 0 + +[factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683883060InjUsdt1d110C] +peggy_denom = factory/inj1duhn2r05wkgym5a8whumjqee9ngcls2ckcd5y0/1683883060InjUsdt1d110C +decimals = 0 + +[factory/inj1dur2nnfx0mezw0yt80pzcvzacrs5dea3xmjmk0/position] +peggy_denom = factory/inj1dur2nnfx0mezw0yt80pzcvzacrs5dea3xmjmk0/position +decimals = 0 + +[factory/inj1dygmwx7n7ume7qldcsdhplzty5v5hlqkef9jwr/position] +peggy_denom = factory/inj1dygmwx7n7ume7qldcsdhplzty5v5hlqkef9jwr/position +decimals = 0 + +[factory/inj1dyzjct7twr54hnmvlgejaxz7uppzygp7hehrnu/iUSD] +peggy_denom = factory/inj1dyzjct7twr54hnmvlgejaxz7uppzygp7hehrnu/iUSD +decimals = 18 + +[factory/inj1e2muv4qz6fcj294hl8lmca62ujwavlvz4qm3hq/position] +peggy_denom = factory/inj1e2muv4qz6fcj294hl8lmca62ujwavlvz4qm3hq/position +decimals = 0 + +[factory/inj1e3h2tku2sj0chapk0dcmawqqkpp6u5tttxquk8/position] +peggy_denom = factory/inj1e3h2tku2sj0chapk0dcmawqqkpp6u5tttxquk8/position +decimals = 0 + +[factory/inj1e53379hwfxcsaa6lmf2m08d66wm9ddc4u5sh25/position] +peggy_denom = factory/inj1e53379hwfxcsaa6lmf2m08d66wm9ddc4u5sh25/position +decimals = 0 + +[factory/inj1e7m63dmrcz6t3x73n6dtpt6swwamyk04g97qlg/injpepe] +peggy_denom = factory/inj1e7m63dmrcz6t3x73n6dtpt6swwamyk04g97qlg/injpepe +decimals = 6 + +[factory/inj1ecx85kv6yhj7x4s5yt5qaqlt5xtpvpgmmvf92u/position] +peggy_denom = factory/inj1ecx85kv6yhj7x4s5yt5qaqlt5xtpvpgmmvf92u/position +decimals = 0 + +[factory/inj1efnh0jp95r6kwsved6y0k6pj8080gxuek2jrnk/ampINJ] +peggy_denom = factory/inj1efnh0jp95r6kwsved6y0k6pj8080gxuek2jrnk/ampINJ +decimals = 0 + +[factory/inj1eg6m8y4x74f9eq4e4754g2wva3pkr6vv3dmax5/position] +peggy_denom = factory/inj1eg6m8y4x74f9eq4e4754g2wva3pkr6vv3dmax5/position +decimals = 0 + +[factory/inj1ehjperv4y4tsmuzn76zg7asxxsgy9n3h97m4nw/position] +peggy_denom = factory/inj1ehjperv4y4tsmuzn76zg7asxxsgy9n3h97m4nw/position +decimals = 0 + +[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test] +peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test +decimals = 0 + +[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test12] +peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test12 +decimals = 0 + +[factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test1234] +peggy_denom = factory/inj1ejm3575vmekrr240xzlklvrzq23sg8r3enup29/test1234 +decimals = 0 + +[factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/UNI] +peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/UNI +decimals = 18 + +[factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninji] +peggy_denom = factory/inj1eksclftnrmglhxw7pvjq8wnuhdwn4ykw2nffc2/ninji +decimals = 0 + +[factory/inj1em24m6ujruu8pan9fkcsvf25rw46gyzks55mtl/position] +peggy_denom = factory/inj1em24m6ujruu8pan9fkcsvf25rw46gyzks55mtl/position +decimals = 0 + +[factory/inj1ers87xhm27jtgg3tru3zlfqzz882jlql38ky36/position] +peggy_denom = factory/inj1ers87xhm27jtgg3tru3zlfqzz882jlql38ky36/position +decimals = 0 + +[factory/inj1es8t7hpuuhamym96camsumq8f2p7s67ex6ekuk/position] +peggy_denom = factory/inj1es8t7hpuuhamym96camsumq8f2p7s67ex6ekuk/position +decimals = 0 + +[factory/inj1ettpy46cd5rgvghntdzkgtzfxtylx8apuqn993/position] +peggy_denom = factory/inj1ettpy46cd5rgvghntdzkgtzfxtylx8apuqn993/position +decimals = 0 + +[factory/inj1eumzsffrxg4n86n08z4udltdvjw2audeq3ml4r/position] +peggy_denom = factory/inj1eumzsffrxg4n86n08z4udltdvjw2audeq3ml4r/position +decimals = 0 + +[factory/inj1euqtqjkuer85sajsd9jssxfqh6xk0hl79x3kr9/1] +peggy_denom = factory/inj1euqtqjkuer85sajsd9jssxfqh6xk0hl79x3kr9/1 +decimals = 0 + +[factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/inj-test] +peggy_denom = factory/inj1eutzkvh4gf5vvmxusdwl2t6gprux67d4acwc0p/inj-test +decimals = 6 + +[factory/inj1euzdefun9xrhm5985wyqycz337cy72jqepsvpz/position] +peggy_denom = factory/inj1euzdefun9xrhm5985wyqycz337cy72jqepsvpz/position +decimals = 0 + +[factory/inj1ev0r4jdrp32595r4dsep5glfz8r29ltn9f6fn8/position] +peggy_denom = factory/inj1ev0r4jdrp32595r4dsep5glfz8r29ltn9f6fn8/position +decimals = 0 + +[factory/inj1expnflv5vkdjglnstsmywdaeenlr7kmw3am9cd/bINJ] +peggy_denom = factory/inj1expnflv5vkdjglnstsmywdaeenlr7kmw3am9cd/bINJ +decimals = 0 + +[factory/inj1ezgwxucda3qv6ss9sgmn5tke55n7razrka4nxf/position] +peggy_denom = factory/inj1ezgwxucda3qv6ss9sgmn5tke55n7razrka4nxf/position +decimals = 0 + +[factory/inj1eznzrkxw0ajqerwg780nae52tnv6mf6vc53c8m/position] +peggy_denom = factory/inj1eznzrkxw0ajqerwg780nae52tnv6mf6vc53c8m/position +decimals = 0 + +[factory/inj1f34r70r5mn3ecgqh6z0r425ujfjf0z0ssh97wz/position] +peggy_denom = factory/inj1f34r70r5mn3ecgqh6z0r425ujfjf0z0ssh97wz/position +decimals = 0 + +[factory/inj1f5nlcumww7lzunw9l8jkm0hu6ml77fr9rxlqyt/position] +peggy_denom = factory/inj1f5nlcumww7lzunw9l8jkm0hu6ml77fr9rxlqyt/position +decimals = 0 + +[factory/inj1f5p279aznnd8wst2rasw46gf9wmdnspx3ymml8/DUCK] +peggy_denom = factory/inj1f5p279aznnd8wst2rasw46gf9wmdnspx3ymml8/DUCK +decimals = 6 + +[factory/inj1f76ard420a76f9kjyy3pte0z0jgmz3m7fmm25l/kd] +peggy_denom = factory/inj1f76ard420a76f9kjyy3pte0z0jgmz3m7fmm25l/kd +decimals = 0 + +[factory/inj1f8qce3t94xjattfldlrt8txkdajj4wp5e77wd5/position] +peggy_denom = factory/inj1f8qce3t94xjattfldlrt8txkdajj4wp5e77wd5/position +decimals = 0 + +[factory/inj1faj8wsfpwyyn5758j2ycjhy2v0kt6n8jl65yy5/test] +peggy_denom = factory/inj1faj8wsfpwyyn5758j2ycjhy2v0kt6n8jl65yy5/test +decimals = 0 + +[factory/inj1fcjg8rsr3uzusq9uk80accx45cajqh7tfu0z09/position] +peggy_denom = factory/inj1fcjg8rsr3uzusq9uk80accx45cajqh7tfu0z09/position +decimals = 0 + +[factory/inj1fcmgj8zhutjyq3rs649nmhl7nl64vshvedq5ac/position] +peggy_denom = factory/inj1fcmgj8zhutjyq3rs649nmhl7nl64vshvedq5ac/position +decimals = 0 + +[factory/inj1fcv9exmq8kqkqlch5cxgqnrmqnsmp99m5k42q7/position] +peggy_denom = factory/inj1fcv9exmq8kqkqlch5cxgqnrmqnsmp99m5k42q7/position +decimals = 0 + +[factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/ak] +peggy_denom = factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/ak +decimals = 6 + +[factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/test] +peggy_denom = factory/inj1ff69sl4sgupxnxj6qslnwkjv7060y6cc6slp6m/test +decimals = 6 + +[factory/inj1ff8anga339wvstvskeu2t9wngl99e2ddyu37en/position] +peggy_denom = factory/inj1ff8anga339wvstvskeu2t9wngl99e2ddyu37en/position +decimals = 0 + +[factory/inj1fhtkg9tga7wdvll35cprd9wyzztp2cdl0qmv69/position] +peggy_denom = factory/inj1fhtkg9tga7wdvll35cprd9wyzztp2cdl0qmv69/position +decimals = 0 + +[factory/inj1fl8vrwlcd9m8hfwdctwcwvmztut8wuclxrsc28/position] +peggy_denom = factory/inj1fl8vrwlcd9m8hfwdctwcwvmztut8wuclxrsc28/position +decimals = 0 + +[factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding] +peggy_denom = factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding +decimals = 0 + +[factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding2] +peggy_denom = factory/inj1flelautgvu5x2yfzprke0m9damel9pvh4uegth/holding2 +decimals = 0 + +[factory/inj1fnlg4mqsz7swspeakkkkzedscx3wl74psgg42a/position] +peggy_denom = factory/inj1fnlg4mqsz7swspeakkkkzedscx3wl74psgg42a/position +decimals = 0 + +[factory/inj1fpmd6x8yk9trh9xl2n65emmcp53m82tenla0gs/position] +peggy_denom = factory/inj1fpmd6x8yk9trh9xl2n65emmcp53m82tenla0gs/position +decimals = 0 + +[factory/inj1fuhdsfutrh647ls7agk9hj37qqxdkr63xc54n9/position] +peggy_denom = factory/inj1fuhdsfutrh647ls7agk9hj37qqxdkr63xc54n9/position +decimals = 0 + +[factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/Magic-Test] +peggy_denom = factory/inj1fvgk4zvph04nwjp4z96etek2uvejq3ehdleqz9/Magic-Test +decimals = 6 + +[factory/inj1fvqjyqul2jlnj7xkpz4a7u0jsn8erf2fh3lzzn/position] +peggy_denom = factory/inj1fvqjyqul2jlnj7xkpz4a7u0jsn8erf2fh3lzzn/position +decimals = 0 + +[factory/inj1fvrauqfuqluvhazephwtcgjqvwxsp5x8jhxsnx/ak] +peggy_denom = factory/inj1fvrauqfuqluvhazephwtcgjqvwxsp5x8jhxsnx/ak +decimals = 0 + +[factory/inj1fw7tkwmwma9eawavzh5kthhkhu9uuhstdczgky/position] +peggy_denom = factory/inj1fw7tkwmwma9eawavzh5kthhkhu9uuhstdczgky/position +decimals = 0 + +[factory/inj1fwa63dj2c9lpjnewdsgulwxllvka96h6z93yaz/position] +peggy_denom = factory/inj1fwa63dj2c9lpjnewdsgulwxllvka96h6z93yaz/position +decimals = 0 + +[factory/inj1fzpdfqd67grg38r3yy5983uke0mzf5mzhhckux/1] +peggy_denom = factory/inj1fzpdfqd67grg38r3yy5983uke0mzf5mzhhckux/1 +decimals = 0 + +[factory/inj1g2pyrpdutgp8gynad0meweplj0hu08nnj6mwps/position] +peggy_denom = factory/inj1g2pyrpdutgp8gynad0meweplj0hu08nnj6mwps/position +decimals = 0 + +[factory/inj1g3jpwhw2xxwn9qjwjtp80r839pfm8vyc9lpvfm/position] +peggy_denom = factory/inj1g3jpwhw2xxwn9qjwjtp80r839pfm8vyc9lpvfm/position +decimals = 0 + +[factory/inj1g3tflajrul49kh2l4lr6mqzu2tvrz6agmxqt0c/position] +peggy_denom = factory/inj1g3tflajrul49kh2l4lr6mqzu2tvrz6agmxqt0c/position +decimals = 0 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AKK] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/AKK +decimals = 6 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BC] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BC +decimals = 0 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BCT] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/BCT +decimals = 0 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa1] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/Sharissa1 +decimals = 6 + +[factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT] +peggy_denom = factory/inj1g3xlmzw6z6wrhxqmxsdwj60fmscenaxlzfnwm7/TBT +decimals = 0 + +[factory/inj1g5793ypr3w8pp4qd75cuupwr6l27uwh4kwxtyp/position] +peggy_denom = factory/inj1g5793ypr3w8pp4qd75cuupwr6l27uwh4kwxtyp/position +decimals = 0 + +[factory/inj1g5lyftjq6zvj2vd4vhna4850ecjdw332sp7ah9/position] +peggy_denom = factory/inj1g5lyftjq6zvj2vd4vhna4850ecjdw332sp7ah9/position +decimals = 0 + +[factory/inj1g96xktmqzm89kz0cd3xr2mzhtzgyeyamhn4uy5/position] +peggy_denom = factory/inj1g96xktmqzm89kz0cd3xr2mzhtzgyeyamhn4uy5/position +decimals = 0 + +[factory/inj1gae0ejy3nhsc7zhujagrp9r86u5wwsq00te6sa/lpinj1v5dwwcnxdglerm3r8dgjy8a3scd7lwu7ffg5kc] +peggy_denom = factory/inj1gae0ejy3nhsc7zhujagrp9r86u5wwsq00te6sa/lpinj1v5dwwcnxdglerm3r8dgjy8a3scd7lwu7ffg5kc +decimals = 0 + +[factory/inj1gaq65qpckkamqqjjk92we2atekcu7z64jgms03/position] +peggy_denom = factory/inj1gaq65qpckkamqqjjk92we2atekcu7z64jgms03/position +decimals = 0 + +[factory/inj1gaz0m54z8excyw7lrnll865rmzm9tpzq7qltdy/ak] +peggy_denom = factory/inj1gaz0m54z8excyw7lrnll865rmzm9tpzq7qltdy/ak +decimals = 6 + +[factory/inj1gcvxhqqzfhc67283pv9zlwajfszn4zjmnvrt6f/position] +peggy_denom = factory/inj1gcvxhqqzfhc67283pv9zlwajfszn4zjmnvrt6f/position +decimals = 0 + +[factory/inj1gel3l0a7j4g9ph8lrfl97gwjrfu40hp8gt8laf/position] +peggy_denom = factory/inj1gel3l0a7j4g9ph8lrfl97gwjrfu40hp8gt8laf/position +decimals = 0 + +[factory/inj1gevmkpqjxgc8s0y8e6lvcdehfqc0e68ppq32df/position] +peggy_denom = factory/inj1gevmkpqjxgc8s0y8e6lvcdehfqc0e68ppq32df/position +decimals = 0 + +[factory/inj1gg3uw8u22f3223m7yryu8k9tgvgkwfr6pj630h/position] +peggy_denom = factory/inj1gg3uw8u22f3223m7yryu8k9tgvgkwfr6pj630h/position +decimals = 0 + +[factory/inj1ghuveva04c5ev9q20w4swt362n4sh49wya0fxl/position] +peggy_denom = factory/inj1ghuveva04c5ev9q20w4swt362n4sh49wya0fxl/position +decimals = 0 + +[factory/inj1gjjpzwvlak7kmqucl92g2car56r3zxjzysxuz8/foobar] +peggy_denom = factory/inj1gjjpzwvlak7kmqucl92g2car56r3zxjzysxuz8/foobar +decimals = 0 + +[factory/inj1gl0uf9nky7l6z280sle7x086pvgfd9e5tx932x/galaxy] +peggy_denom = factory/inj1gl0uf9nky7l6z280sle7x086pvgfd9e5tx932x/galaxy +decimals = 6 + +[factory/inj1gn6xfmxf6n9lu82892lyfwh4drxmwc2hmqef7u/position] +peggy_denom = factory/inj1gn6xfmxf6n9lu82892lyfwh4drxmwc2hmqef7u/position +decimals = 0 + +[factory/inj1gnqdy89s5q360f0j7rxsukxy0x343l6x4ferlt/position] +peggy_denom = factory/inj1gnqdy89s5q360f0j7rxsukxy0x343l6x4ferlt/position +decimals = 0 + +[factory/inj1gpux5gt63wn46yyfqh8cthugl9yqfrcnefmemm/position] +peggy_denom = factory/inj1gpux5gt63wn46yyfqh8cthugl9yqfrcnefmemm/position +decimals = 0 + +[factory/inj1gpxaq5mgd4ydhyxfdgcjwn5sm9qed7skpnrlj2/bINJ] +peggy_denom = factory/inj1gpxaq5mgd4ydhyxfdgcjwn5sm9qed7skpnrlj2/bINJ +decimals = 0 + +[factory/inj1grz7n07nu48jv8m5gpxsjlac3lqq5x3yspz9ck/position] +peggy_denom = factory/inj1grz7n07nu48jv8m5gpxsjlac3lqq5x3yspz9ck/position +decimals = 0 + +[factory/inj1gsfzd0l2xxkkvsrhedt7lnhrgydkp3argcwad3/position] +peggy_denom = factory/inj1gsfzd0l2xxkkvsrhedt7lnhrgydkp3argcwad3/position +decimals = 0 + +[factory/inj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9/lp] +peggy_denom = factory/inj1gunkve73s0h7jr9jgujjqwdxpur0rzt2dz30w9/lp +decimals = 0 + +[factory/inj1gvftjh39gp6akdxm6l5yrwx426hu7l0fkd3yry/ak] +peggy_denom = factory/inj1gvftjh39gp6akdxm6l5yrwx426hu7l0fkd3yry/ak +decimals = 6 + +[factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test] +peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test +decimals = 18 + +[factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test2] +peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test2 +decimals = 6 + +[factory/inj1gvskqyvy4y2630mn7lswylsyrvzq8xnp06mrn6/position] +peggy_denom = factory/inj1gvskqyvy4y2630mn7lswylsyrvzq8xnp06mrn6/position +decimals = 0 + +[factory/inj1gvsx78tja0wfqq9e2tddhlky4ydc2w3wx2zkrd/position] +peggy_denom = factory/inj1gvsx78tja0wfqq9e2tddhlky4ydc2w3wx2zkrd/position +decimals = 0 + +[factory/inj1gy6kakuaatzkd4hw6urjx05t73pr6mc9zngqn5/position] +peggy_denom = factory/inj1gy6kakuaatzkd4hw6urjx05t73pr6mc9zngqn5/position +decimals = 0 + +[factory/inj1hadwz2rpsccxdpyv04nmqevtrss35lenmz8dzw/position] +peggy_denom = factory/inj1hadwz2rpsccxdpyv04nmqevtrss35lenmz8dzw/position +decimals = 0 + +[factory/inj1hajw3kjyrn2xr42eu7t7ywtydlm0p6nma4m6qh/test] +peggy_denom = factory/inj1hajw3kjyrn2xr42eu7t7ywtydlm0p6nma4m6qh/test +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj10f4x5azxg58tfykzntcj4edazh3g3fnslut9vc] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj10f4x5azxg58tfykzntcj4edazh3g3fnslut9vc +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15466xjsqhh0l60kwx44h5hnzm5dy069mhpgcvk] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15466xjsqhh0l60kwx44h5hnzm5dy069mhpgcvk +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15dph6ndevrvvzec8wzdv9ahegndfcqs6922kkf] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj15dph6ndevrvvzec8wzdv9ahegndfcqs6922kkf +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj16e0ahu2q8u3teqk3z8ngr2nufslvsl5ru5ydt0] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj16e0ahu2q8u3teqk3z8ngr2nufslvsl5ru5ydt0 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj18lh2du7f0mayz7cmyjm487eudc48m3d24jltpc] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj18lh2du7f0mayz7cmyjm487eudc48m3d24jltpc +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj192ta9slx6l7ftreft5mds90pmpavmsu9n6vhr6] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj192ta9slx6l7ftreft5mds90pmpavmsu9n6vhr6 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1avns4wyef63l4scsxj2e6cf56fnt3m2lv9tgnk] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1avns4wyef63l4scsxj2e6cf56fnt3m2lv9tgnk +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1f5sksszg9uphrapwthjrrcpdmyr5r4guk5fq5x] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1f5sksszg9uphrapwthjrrcpdmyr5r4guk5fq5x +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1hhpqhlpch0h5xhufhlvl6xs95ccx2l8l4nk4un] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1hhpqhlpch0h5xhufhlvl6xs95ccx2l8l4nk4un +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1j58xf5f09u98jxvqyqsjhacdepepwxy67sg5dh] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1j58xf5f09u98jxvqyqsjhacdepepwxy67sg5dh +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1jrpf2rzsr9hfn7uaqgqjae6lx8vhfk00tjvvzw] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1jrpf2rzsr9hfn7uaqgqjae6lx8vhfk00tjvvzw +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1kfxppjerh6u36le9378zpu6da688v59y8qdjk2] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1kfxppjerh6u36le9378zpu6da688v59y8qdjk2 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lhfrehpyfgf5sx80z2qx7y4f6xqdwrf4y09znz] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lhfrehpyfgf5sx80z2qx7y4f6xqdwrf4y09znz +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lu4uvsxf2dar0xsuvxargvtr9370jzwek43vn7] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1lu4uvsxf2dar0xsuvxargvtr9370jzwek43vn7 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m70qfh8wte92l55lrddn2gzsscc97ve79ccdtc] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1m70qfh8wte92l55lrddn2gzsscc97ve79ccdtc +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1me0ydc5m8ggwuaerwt67tg4zh8yc6zgn39kz6k] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1me0ydc5m8ggwuaerwt67tg4zh8yc6zgn39kz6k +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mvlsa3azvj05xe68szp3jrzeg8p5lakeh40rkj] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mvlsa3azvj05xe68szp3jrzeg8p5lakeh40rkj +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1n9hcmejg2mfkkyyzze82nk9fdls5g32ykga47l] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1n9hcmejg2mfkkyyzze82nk9fdls5g32ykga47l +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1nkdq6elhmu0cv3ucy5zql7uakr05g94jx3nv0p] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1nkdq6elhmu0cv3ucy5zql7uakr05g94jx3nv0p +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1npj6nv6kxcyqjtjn8sguqsyc60ghr3j48pjj7x] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1npj6nv6kxcyqjtjn8sguqsyc60ghr3j48pjj7x +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1p9qrra4k3pt6ts3larlguucpw0urlc8jyq2ddg] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1p9qrra4k3pt6ts3larlguucpw0urlc8jyq2ddg +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1pmv03tjwu798ry6dyss4a2qn5dnmh7m7t9ljqe] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1pmv03tjwu798ry6dyss4a2qn5dnmh7m7t9ljqe +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1qdnxd73mfvj6uu6h08yk8h7zwvzpqx35ycnupf] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1qdnxd73mfvj6uu6h08yk8h7zwvzpqx35ycnupf +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1s5y4wz7yyzkp4pthylm84uyswnsfmqyayx22w3] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1s5y4wz7yyzkp4pthylm84uyswnsfmqyayx22w3 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1tzvk3zjxd7jjcnugz6jhufaqsn8c5llhjj3x67] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1tzvk3zjxd7jjcnugz6jhufaqsn8c5llhjj3x67 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1u5zugw73cvcj43efq5j3ns4y7tqvq52u4nvqu9] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1u5zugw73cvcj43efq5j3ns4y7tqvq52u4nvqu9 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1ufmjm7stkuhlzma23ypzgvlvtgqjweatkztq0c] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1ufmjm7stkuhlzma23ypzgvlvtgqjweatkztq0c +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1uqnsq33sjwhyhsc7wjh2d2tc40lu0tfrktes5v] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1uqnsq33sjwhyhsc7wjh2d2tc40lu0tfrktes5v +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1wrtwcee23p0k9z5tveerx8tyesvjs4k8vlf4en] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1wrtwcee23p0k9z5tveerx8tyesvjs4k8vlf4en +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1yhz4e7df95908jhs9erl87vdzjkdsc24q7afjf] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1yhz4e7df95908jhs9erl87vdzjkdsc24q7afjf +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zav98x9dlswwttdjmz7qg9fqhdvauc8smfqhvs] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zav98x9dlswwttdjmz7qg9fqhdvauc8smfqhvs +decimals = 0 + +[factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zflmjmg0qt02s0l0vlcg8zlyplsapefzy6ej3t] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1zflmjmg0qt02s0l0vlcg8zlyplsapefzy6ej3t +decimals = 0 + +[factory/inj1he7245j7my7f6470a94g0drsw86xajwzhr4ah9/position] +peggy_denom = factory/inj1he7245j7my7f6470a94g0drsw86xajwzhr4ah9/position +decimals = 0 + +[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9] +peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 +decimals = 0 + +[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj17wnnyqxj57y3crf5nn72krhx7w35zect2srfe2] +peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj17wnnyqxj57y3crf5nn72krhx7w35zect2srfe2 +decimals = 0 + +[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj19axs93f4hk8cansmhj372m96v2zhdmdqdd5fnm] +peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj19axs93f4hk8cansmhj372m96v2zhdmdqdd5fnm +decimals = 0 + +[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1wme3afmfl94l83jzekcm3j0h544ussu0x68wnl] +peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1wme3afmfl94l83jzekcm3j0h544ussu0x68wnl +decimals = 0 + +[factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636] +peggy_denom = factory/inj1heah64yarps3u85jyml4ter53h4lyrag4shfzp/inj1z0whhrxkg38lcrj7lv2eetsfhwztpfntfkc636 +decimals = 0 + +[factory/inj1hh4ngvv0l7tlt5gcpwwauzuthrmzwyutxkxq0x/position] +peggy_denom = factory/inj1hh4ngvv0l7tlt5gcpwwauzuthrmzwyutxkxq0x/position +decimals = 0 + +[factory/inj1hhezfw883am7xk86jkxauf92kg8wm9xsv5hymd/position] +peggy_denom = factory/inj1hhezfw883am7xk86jkxauf92kg8wm9xsv5hymd/position +decimals = 0 + +[factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TEST2] +peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/TEST2 +decimals = 6 + +[factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/test1] +peggy_denom = factory/inj1hj4nr0jt0mzpawxt5tyajqgwf3pct5552rvkvp/test1 +decimals = 0 + +[factory/inj1hjujvtzpwqfm76tkmg6qr2vlsp2drzph6n3n4n/position] +peggy_denom = factory/inj1hjujvtzpwqfm76tkmg6qr2vlsp2drzph6n3n4n/position +decimals = 0 + +[factory/inj1hk8w93z3rw6aznyvnc537qn9aht6gxlxn80j0h/position] +peggy_denom = factory/inj1hk8w93z3rw6aznyvnc537qn9aht6gxlxn80j0h/position +decimals = 0 + +[factory/inj1hlgmzgxzxzyjxu6394328vf0fmwd74pcc6cztc/position] +peggy_denom = factory/inj1hlgmzgxzxzyjxu6394328vf0fmwd74pcc6cztc/position +decimals = 0 + +[factory/inj1hljrl5cx0gcd8gdxmqm4tsuqkxchysdakyfhan/position] +peggy_denom = factory/inj1hljrl5cx0gcd8gdxmqm4tsuqkxchysdakyfhan/position +decimals = 0 + +[factory/inj1hm9qgpe4ksgat77xjstkhhcns0xex770t4crr3/bpINJ] +peggy_denom = factory/inj1hm9qgpe4ksgat77xjstkhhcns0xex770t4crr3/bpINJ +decimals = 0 + +[factory/inj1hms4dradmmdjlgrnh4dywg897g3hpcc5n7hxgk/position] +peggy_denom = factory/inj1hms4dradmmdjlgrnh4dywg897g3hpcc5n7hxgk/position +decimals = 0 + +[factory/inj1hnnwzsudnmtshgky0xfts8zm637skect2prc2l/position] +peggy_denom = factory/inj1hnnwzsudnmtshgky0xfts8zm637skect2prc2l/position +decimals = 0 + +[factory/inj1hr0hpnh95jdf2w8rax063mrqxcgesq4jeazg34/position] +peggy_denom = factory/inj1hr0hpnh95jdf2w8rax063mrqxcgesq4jeazg34/position +decimals = 0 + +[factory/inj1hr2aj9frer4n50j64ew6j4n434du4etv65t25h/position] +peggy_denom = factory/inj1hr2aj9frer4n50j64ew6j4n434du4etv65t25h/position +decimals = 0 + +[factory/inj1hs6te9qe40mzr4qayc9hhngv4tzn07a3cujshr/position] +peggy_denom = factory/inj1hs6te9qe40mzr4qayc9hhngv4tzn07a3cujshr/position +decimals = 0 + +[factory/inj1ht67n9wwrf8pkd2dupwsjqfe2wzaelaz2dsqj7/position] +peggy_denom = factory/inj1ht67n9wwrf8pkd2dupwsjqfe2wzaelaz2dsqj7/position +decimals = 0 + +[factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ak] +peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/ak +decimals = 6 + +[factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/inj-test] +peggy_denom = factory/inj1ht6d6axu5u4g24zephnc48ee585e2vge8czkzn/inj-test +decimals = 0 + +[factory/inj1hu80gaauahnfnd0pwfa97xzge7td6e4atu29jw/position] +peggy_denom = factory/inj1hu80gaauahnfnd0pwfa97xzge7td6e4atu29jw/position +decimals = 0 + +[factory/inj1hwaycepzld9rvsqzkeyjtflumzlu37n4xj8f3a/position] +peggy_denom = factory/inj1hwaycepzld9rvsqzkeyjtflumzlu37n4xj8f3a/position +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193599InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193599InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193683AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706193683AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706273714InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706360115InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706446512InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706532910InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706619311InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706705707InjUsdt2d110C +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103AtomUsdt2d90P] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103AtomUsdt2d90P +decimals = 0 + +[factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103InjUsdt2d110C] +peggy_denom = factory/inj1hyf3u76xpr5fna80yutgklxhyrl70f76gdzfqv/1706792103InjUsdt2d110C +decimals = 0 + +[factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/1] +peggy_denom = factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/1 +decimals = 0 + +[factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/2] +peggy_denom = factory/inj1hzuhzk3ng8x09ev6at6z4smdg00slcff6g77k7/2 +decimals = 0 + +[factory/inj1j07z60sprgkzqtqtq2lxtnpdxly25xj44h22nr/test] +peggy_denom = factory/inj1j07z60sprgkzqtqtq2lxtnpdxly25xj44h22nr/test +decimals = 0 + +[factory/inj1j3593zd3nx9gygnfxkqw5e7gr6wgl403yh3ydl/position] +peggy_denom = factory/inj1j3593zd3nx9gygnfxkqw5e7gr6wgl403yh3ydl/position +decimals = 0 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TEST] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TEST +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TST] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TST +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TSTTT] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/TSTTT +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testigg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testigg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testiggg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testiggg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggggg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testingggggg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/testinggggggg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstigg] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstigg +decimals = 6 + +[factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt] +peggy_denom = factory/inj1j55d6mj5j3hdzfk5v8m3a9zthq7m7hpkfswvq0/tstttttttt +decimals = 6 + +[factory/inj1j5uwfmqj9wcm8tu4ltva673wv03f884cpvurq8/position] +peggy_denom = factory/inj1j5uwfmqj9wcm8tu4ltva673wv03f884cpvurq8/position +decimals = 0 + +[factory/inj1j64299hq4a8yfd5qmpxkwu24t3as2xs9q78md0/position] +peggy_denom = factory/inj1j64299hq4a8yfd5qmpxkwu24t3as2xs9q78md0/position +decimals = 0 + +[factory/inj1j7ehe6pdmp92zs2gqz67tp4ukv9p323yk7qacy/RAMENV2] +peggy_denom = factory/inj1j7ehe6pdmp92zs2gqz67tp4ukv9p323yk7qacy/RAMENV2 +decimals = 6 + +[factory/inj1j9k4l9fep89pgaqecc5h9hpghjsa4ffwg8mjcr/position] +peggy_denom = factory/inj1j9k4l9fep89pgaqecc5h9hpghjsa4ffwg8mjcr/position +decimals = 0 + +[factory/inj1jc7jj2wx6mlgy2umkw03duflgvf5h77cc0cqjr/ak] +peggy_denom = factory/inj1jc7jj2wx6mlgy2umkw03duflgvf5h77cc0cqjr/ak +decimals = 6 + +[factory/inj1jcgs0vmqg5jyuz2y53w06prtwdhq0q3gyecfrl/position] +peggy_denom = factory/inj1jcgs0vmqg5jyuz2y53w06prtwdhq0q3gyecfrl/position +decimals = 0 + +[factory/inj1jd6tjedh3a8fcervaec5ftn463504k0d6d0ftg/position] +peggy_denom = factory/inj1jd6tjedh3a8fcervaec5ftn463504k0d6d0ftg/position +decimals = 0 + +[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/ak] +peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/ak +decimals = 6 + +[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira] +peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kira +decimals = 6 + +[factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kirat] +peggy_denom = factory/inj1jfuyujpvvkxq4566r3z3tv3jdy29pqra5ln0yk/kirat +decimals = 0 + +[factory/inj1jjlw9gfgn4kq2cpw2dlcz77z9dxuypg7dpfl2g/position] +peggy_denom = factory/inj1jjlw9gfgn4kq2cpw2dlcz77z9dxuypg7dpfl2g/position +decimals = 0 + +[factory/inj1jnu67egy9gex77d2fafz36nse6sg4sml7r3vv7/position] +peggy_denom = factory/inj1jnu67egy9gex77d2fafz36nse6sg4sml7r3vv7/position +decimals = 0 + +[factory/inj1jq267957yt6h7987szcrf5e8asfrzu86ayr568/1684001277InjUsdt1d110C] +peggy_denom = factory/inj1jq267957yt6h7987szcrf5e8asfrzu86ayr568/1684001277InjUsdt1d110C +decimals = 0 + +[factory/inj1jqccfrzpfhx9pvtxtrz0ufh6vl72uft7v5r360/position] +peggy_denom = factory/inj1jqccfrzpfhx9pvtxtrz0ufh6vl72uft7v5r360/position +decimals = 0 + +[factory/inj1jrjsn947qrmlujlpjahmg67qv9dcxkvyx6rl97/position] +peggy_denom = factory/inj1jrjsn947qrmlujlpjahmg67qv9dcxkvyx6rl97/position +decimals = 0 + +[factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/test] +peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/test +decimals = 0 + +[factory/inj1jtkk33paqrupr39tchhdavw2vmk5m09ymfq8xx/position] +peggy_denom = factory/inj1jtkk33paqrupr39tchhdavw2vmk5m09ymfq8xx/position +decimals = 0 + +[factory/inj1jx8akujhkqe88fm7juf9qr3r5m74z5lcyffzlf/position] +peggy_denom = factory/inj1jx8akujhkqe88fm7juf9qr3r5m74z5lcyffzlf/position +decimals = 0 + +[factory/inj1jxcx0qljtdzps58an4r66zn8hg5hv4z2694y2v/position] +peggy_denom = factory/inj1jxcx0qljtdzps58an4r66zn8hg5hv4z2694y2v/position +decimals = 0 + +[factory/inj1jy0zw3cpctqrhcg7qc0yglnljcsk89sr046rnj/position] +peggy_denom = factory/inj1jy0zw3cpctqrhcg7qc0yglnljcsk89sr046rnj/position +decimals = 0 + +[factory/inj1jykz2vaea5382hd7r76wvjv56v69h4agr52v2e/position] +peggy_denom = factory/inj1jykz2vaea5382hd7r76wvjv56v69h4agr52v2e/position +decimals = 0 + +[factory/inj1k2z5rumpc53854hzq5chxyayrqcrqm9uwad308/position] +peggy_denom = factory/inj1k2z5rumpc53854hzq5chxyayrqcrqm9uwad308/position +decimals = 0 + +[factory/inj1k3pnnh5fyjuc6tmmupyp2042cryk59l7nx2pu3/lpinj17dw5ek2829evlwcepftlvv9r53rqmc72akrsdz] +peggy_denom = factory/inj1k3pnnh5fyjuc6tmmupyp2042cryk59l7nx2pu3/lpinj17dw5ek2829evlwcepftlvv9r53rqmc72akrsdz +decimals = 0 + +[factory/inj1k4ytv0a9xhrxedsjsn9e92v4333a5n33u8zpwj/position] +peggy_denom = factory/inj1k4ytv0a9xhrxedsjsn9e92v4333a5n33u8zpwj/position +decimals = 0 + +[factory/inj1k7mc760g739rmxv8yhvya5mtpvymrs3vf98s4m/position] +peggy_denom = factory/inj1k7mc760g739rmxv8yhvya5mtpvymrs3vf98s4m/position +decimals = 0 + +[factory/inj1kagzsefacxy5p765q8upkjj9fwkjczlhe580ar/position] +peggy_denom = factory/inj1kagzsefacxy5p765q8upkjj9fwkjczlhe580ar/position +decimals = 0 + +[factory/inj1kchw3uh70ujhmvrkx7phjayaswnpf7sde67uzw/position] +peggy_denom = factory/inj1kchw3uh70ujhmvrkx7phjayaswnpf7sde67uzw/position +decimals = 0 + +[factory/inj1kdksyv2jv3nnmenqfvxxe38q4drwn8e7wj5pcx/position] +peggy_denom = factory/inj1kdksyv2jv3nnmenqfvxxe38q4drwn8e7wj5pcx/position +decimals = 0 + +[factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/inj-test] +peggy_denom = factory/inj1kezz4smdtr3t0v49d5qyt3ksd2emc594p7ftsx/inj-test +decimals = 0 + +[factory/inj1kg5qz6vfxxz7l6d8qh5spgjdjuwusarcmf447y/position] +peggy_denom = factory/inj1kg5qz6vfxxz7l6d8qh5spgjdjuwusarcmf447y/position +decimals = 0 + +[factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cook] +peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cook +decimals = 6 + +[factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cookie] +peggy_denom = factory/inj1kgx9rqg7dtl27lqqxyw6q0vvuljulj8gn99tme/cookie +decimals = 6 + +[factory/inj1kgzm28dyl9sh9atz5ms9wmv0tmp72dg3s4eezz/position] +peggy_denom = factory/inj1kgzm28dyl9sh9atz5ms9wmv0tmp72dg3s4eezz/position +decimals = 0 + +[factory/inj1kjcc00fu0ven6khmdrx8kmzsa3w03mxrzlvp66/position] +peggy_denom = factory/inj1kjcc00fu0ven6khmdrx8kmzsa3w03mxrzlvp66/position +decimals = 0 + +[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go1] +peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-go1 +decimals = 18 + +[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-main] +peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-main +decimals = 18 + +[factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-test] +peggy_denom = factory/inj1kp5yr4xragvff8el0unhgr4d5cx6322g7s04lt/inj-test +decimals = 0 + +[factory/inj1kp5z0kxyrnwzt3mgwl0klanx8yty6lnne25stk/position] +peggy_denom = factory/inj1kp5z0kxyrnwzt3mgwl0klanx8yty6lnne25stk/position +decimals = 0 + +[factory/inj1kql9xt6essgccf594ypqdu690wnjkdksp75d7r/position] +peggy_denom = factory/inj1kql9xt6essgccf594ypqdu690wnjkdksp75d7r/position +decimals = 0 + +[factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go1] +peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-go1 +decimals = 18 + +[factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-main] +peggy_denom = factory/inj1ks3hnkur9udnjuhf5ra806alm4tz3dmy03qkly/inj-main +decimals = 0 + +[factory/inj1kscpq7lqluusxhmzv0z2eluaj9yf2njayudlcs/TAB] +peggy_denom = factory/inj1kscpq7lqluusxhmzv0z2eluaj9yf2njayudlcs/TAB +decimals = 6 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/inj-test] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/inj-test +decimals = 0 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikena] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikena +decimals = 6 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikeng] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikeng +decimals = 6 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenk] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenk +decimals = 6 + +[factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenl] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/shurikenl +decimals = 0 + +[factory/inj1ku42wlmwuznlzeywnsvjkr5mf00hg4u72qau7y/position] +peggy_denom = factory/inj1ku42wlmwuznlzeywnsvjkr5mf00hg4u72qau7y/position +decimals = 0 + +[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/AKK] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/AKK +decimals = 0 + +[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/FAMILY +decimals = 6 + +[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/ak] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/ak +decimals = 0 + +[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/hdro] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/hdro +decimals = 6 + +[factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/sl] +peggy_denom = factory/inj1ku7eqpwpgjgt9ch07gqhvxev5pn2p2upzf72rm/sl +decimals = 0 + +[factory/inj1kvsuv80cz74znps8jpm7td9gxnd6zyjhs379rd/position] +peggy_denom = factory/inj1kvsuv80cz74znps8jpm7td9gxnd6zyjhs379rd/position +decimals = 0 + +[factory/inj1kw7hdjnneatd2mgc9snqhehhm8wkvmym9c3a37/position] +peggy_denom = factory/inj1kw7hdjnneatd2mgc9snqhehhm8wkvmym9c3a37/position +decimals = 0 + +[factory/inj1kygt3qa7rjux7wjmp3r2p29aq8zerz8zjcml8l/position] +peggy_denom = factory/inj1kygt3qa7rjux7wjmp3r2p29aq8zerz8zjcml8l/position +decimals = 0 + +[factory/inj1kzfya35nclmpzj95m3yhc0zht93k0xvdn2zgtj/position] +peggy_denom = factory/inj1kzfya35nclmpzj95m3yhc0zht93k0xvdn2zgtj/position +decimals = 0 + +[factory/inj1l08w00ngs4twqa7mhaavnjgs8sdym7l0pv57mn/position] +peggy_denom = factory/inj1l08w00ngs4twqa7mhaavnjgs8sdym7l0pv57mn/position +decimals = 0 + +[factory/inj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m/lp] +peggy_denom = factory/inj1l3urpgrzr6eh2alcfvyyxpazjzfdltz4h97u3m/lp +decimals = 0 + +[factory/inj1l5u0qphqa02dl257e2h6te07szdlnsjfuggf7d/position] +peggy_denom = factory/inj1l5u0qphqa02dl257e2h6te07szdlnsjfuggf7d/position +decimals = 0 + +[factory/inj1l67cg8jf97gxsxrf8cfz5khmutwh392c7hdlyp/position] +peggy_denom = factory/inj1l67cg8jf97gxsxrf8cfz5khmutwh392c7hdlyp/position +decimals = 0 + +[factory/inj1l7frwkpwkpx5ulleqz9tuj754m9z02rfdsmsqp/uLP] +peggy_denom = factory/inj1l7frwkpwkpx5ulleqz9tuj754m9z02rfdsmsqp/uLP +decimals = 0 + +[factory/inj1l8r30dpqq98l97wwwdxkkwdnpzu02aj0r6mnrw/banana] +peggy_denom = factory/inj1l8r30dpqq98l97wwwdxkkwdnpzu02aj0r6mnrw/banana +decimals = 0 + +[factory/inj1l92lfj2wudxpawj7rkta6kqvxr7twg7kah9zq9/position] +peggy_denom = factory/inj1l92lfj2wudxpawj7rkta6kqvxr7twg7kah9zq9/position +decimals = 0 + +[factory/inj1l96mcs69en0u4y423m4k5z8k6u48e25wnd4zpu/position] +peggy_denom = factory/inj1l96mcs69en0u4y423m4k5z8k6u48e25wnd4zpu/position +decimals = 0 + +[factory/inj1la5tx5xccss5ku6j8rk7erwukzl40q29mk97am/position] +peggy_denom = factory/inj1la5tx5xccss5ku6j8rk7erwukzl40q29mk97am/position +decimals = 0 + +[factory/inj1lg4ycnwe3xt9x9wsc2tfe0v9lm9kdxkyj760nw/position] +peggy_denom = factory/inj1lg4ycnwe3xt9x9wsc2tfe0v9lm9kdxkyj760nw/position +decimals = 0 + +[factory/inj1lg9sysgklc6tt85ax54k7fd28lx26prg5guunl/position] +peggy_denom = factory/inj1lg9sysgklc6tt85ax54k7fd28lx26prg5guunl/position +decimals = 0 + +[factory/inj1lgcxyyvmnhtp42apwgvhhvlqvezwlqly998eex/nUSD] +peggy_denom = factory/inj1lgcxyyvmnhtp42apwgvhhvlqvezwlqly998eex/nUSD +decimals = 18 + +[factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj] +peggy_denom = factory/inj1lhr06p7k3rdgk0knw5hfsde3fj87g2aq4e9a52/binj +decimals = 6 + +[factory/inj1ljsmrpm3hlth5zk347lqr23rdzm2ktd4aathkl/position] +peggy_denom = factory/inj1ljsmrpm3hlth5zk347lqr23rdzm2ktd4aathkl/position +decimals = 0 + +[factory/inj1lm6prvcxdq5e32f0eeq3nuvq6g9zk0k6787sas/lp] +peggy_denom = factory/inj1lm6prvcxdq5e32f0eeq3nuvq6g9zk0k6787sas/lp +decimals = 0 + +[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TEST] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/TEST +decimals = 6 + +[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom +decimals = 0 + +[factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/t1] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/t1 +decimals = 0 + +[factory/inj1lqt0nl9xuvprp2l2x0x6htln8cu7zrc39q0td4/position] +peggy_denom = factory/inj1lqt0nl9xuvprp2l2x0x6htln8cu7zrc39q0td4/position +decimals = 0 + +[factory/inj1lr2vhedf3a285rx5ms84w576g3hkktn7d8dx70/position] +peggy_denom = factory/inj1lr2vhedf3a285rx5ms84w576g3hkktn7d8dx70/position +decimals = 0 + +[factory/inj1lskj3yp5gdzyq5w8vqh82d9lhcu5xaq85tuewa/position] +peggy_denom = factory/inj1lskj3yp5gdzyq5w8vqh82d9lhcu5xaq85tuewa/position +decimals = 0 + +[factory/inj1lssnhhl6npy0v2wd6jm5575u06nu8a68ged88m/position] +peggy_denom = factory/inj1lssnhhl6npy0v2wd6jm5575u06nu8a68ged88m/position +decimals = 0 + +[factory/inj1ludhv2cz6xs53sayfhf7ykypq99akrxha3esw6/position] +peggy_denom = factory/inj1ludhv2cz6xs53sayfhf7ykypq99akrxha3esw6/position +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1703682000InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1703682000InjUsdt1d85P +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705510171InjUsdt1d105C] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705510171InjUsdt1d105C +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705555894InjUsdt1d105C] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705555894InjUsdt1d105C +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705569976InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705569976InjUsdt1d85P +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705588200000000001InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705588200000000001InjUsdt1d85P +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932000InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932000InjUsdt1d85P +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932001InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932001InjUsdt1d85P +decimals = 0 + +[factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932002InjUsdt1d85P] +peggy_denom = factory/inj1luxu6s0qywql92pnh3xnfdqzn6gkt7rrnetfc0/1705932002InjUsdt1d85P +decimals = 0 + +[factory/inj1lvj3thsvqlkps32mkrwptc4qyryrdt99k64f4m/position] +peggy_denom = factory/inj1lvj3thsvqlkps32mkrwptc4qyryrdt99k64f4m/position +decimals = 0 + +[factory/inj1lw7w3yfp8mrp4klef0y3y7fenap46kkrytav8v/position] +peggy_denom = factory/inj1lw7w3yfp8mrp4klef0y3y7fenap46kkrytav8v/position +decimals = 0 + +[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding] +peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding +decimals = 0 + +[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding2] +peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding2 +decimals = 0 + +[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding3] +peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding3 +decimals = 0 + +[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding4] +peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding4 +decimals = 0 + +[factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding5] +peggy_denom = factory/inj1lw9xs5y0mgcat5h4s8dylalyh93vlw3y7zavx5/holding5 +decimals = 0 + +[factory/inj1lwhr9t3aha4qc2p6rdvj6n5q9jwt4pf8czlhhn/ak] +peggy_denom = factory/inj1lwhr9t3aha4qc2p6rdvj6n5q9jwt4pf8czlhhn/ak +decimals = 6 + +[factory/inj1lxxt0kcw8fnc8y3svem9fpyhmelqccx5lk83fd/position] +peggy_denom = factory/inj1lxxt0kcw8fnc8y3svem9fpyhmelqccx5lk83fd/position +decimals = 0 + +[factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonify] +peggy_denom = factory/inj1lypqwz349za88um0m4ltjhgf8q6q8p4y93pv6p/moonify +decimals = 6 + +[factory/inj1lz2zgagnwgpzepxk6ny3amludjzajg98uhehwq/position] +peggy_denom = factory/inj1lz2zgagnwgpzepxk6ny3amludjzajg98uhehwq/position +decimals = 0 + +[factory/inj1m0a3h8dvz88xgf5v36tqm6kydeuu79te7sar05/upinj] +peggy_denom = factory/inj1m0a3h8dvz88xgf5v36tqm6kydeuu79te7sar05/upinj +decimals = 0 + +[factory/inj1m2v8rhhrma5207d5s6vmtxd9hajk559wdtc9lh/position] +peggy_denom = factory/inj1m2v8rhhrma5207d5s6vmtxd9hajk559wdtc9lh/position +decimals = 0 + +[factory/inj1m3c4lxq6gstpgd5f0ll7jln8fyweec5xxd7phy/TEST] +peggy_denom = factory/inj1m3c4lxq6gstpgd5f0ll7jln8fyweec5xxd7phy/TEST +decimals = 9 + +[factory/inj1m65rqkqvzmzeplzy3wl2mfrurku9hyxrpla2eq/position] +peggy_denom = factory/inj1m65rqkqvzmzeplzy3wl2mfrurku9hyxrpla2eq/position +decimals = 0 + +[factory/inj1m8hxczuf4gq8z5nvjw4nmcmnyfa5ch8kgkjuqp/position] +peggy_denom = factory/inj1m8hxczuf4gq8z5nvjw4nmcmnyfa5ch8kgkjuqp/position +decimals = 0 + +[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC] +peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/NLC +decimals = 6 + +[factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/nlc] +peggy_denom = factory/inj1m9myf06pt3kq3caeksz0ghvzr0xthhxqenu622/nlc +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-007] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-007 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-2] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-2 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-3] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-3 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-4] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Talis-4 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-007] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Vote-007 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token10] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token10 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token2] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token2 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token3] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token3 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token4] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token4 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token5] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token5 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token6] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token6 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token7] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token7 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token8] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token8 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token9] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/stake-token9 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-5] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-5 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-6] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-6 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-7] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-7 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-8] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/talis-8 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token10] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token10 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token2] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token2 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token3] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token3 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token4] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token4 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token5] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token5 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token6] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token6 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token7] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token7 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token8] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token8 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token9] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/vote-token9 +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis-4] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xTalis-4 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xbanana] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xbanana +decimals = 18 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-5] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-5 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-6] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-6 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-7] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-7 +decimals = 6 + +[factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-8] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/xtalis-8 +decimals = 6 + +[factory/inj1mea0kyuezl2ky54qtagsv7xlp0dxgqfs0cum8z/position] +peggy_denom = factory/inj1mea0kyuezl2ky54qtagsv7xlp0dxgqfs0cum8z/position +decimals = 0 + +[factory/inj1mecfy6gg944yt5mkwp34petqdd9dd37yu5yd5t/position] +peggy_denom = factory/inj1mecfy6gg944yt5mkwp34petqdd9dd37yu5yd5t/position +decimals = 0 + +[factory/inj1mf3x77h5ynafa57ga92rkp3hhwru5l63awf59v/tix] +peggy_denom = factory/inj1mf3x77h5ynafa57ga92rkp3hhwru5l63awf59v/tix +decimals = 6 + +[factory/inj1mfthw7jt2hzqq24exq66sregqwp8varmsdtyae/position] +peggy_denom = factory/inj1mfthw7jt2hzqq24exq66sregqwp8varmsdtyae/position +decimals = 0 + +[factory/inj1mg7www3nqcyaxaa82hf8vfx2jx39hj5qfkw3h3/position] +peggy_denom = factory/inj1mg7www3nqcyaxaa82hf8vfx2jx39hj5qfkw3h3/position +decimals = 0 + +[factory/inj1mhvjhmxs5fwnp3ladqehrsa8k8dhjfnaup9uhf/position] +peggy_denom = factory/inj1mhvjhmxs5fwnp3ladqehrsa8k8dhjfnaup9uhf/position +decimals = 0 + +[factory/inj1mlcqn2e3v6w0tum7ef5lkhqjjtnv5rzrzrh7rj/position] +peggy_denom = factory/inj1mlcqn2e3v6w0tum7ef5lkhqjjtnv5rzrzrh7rj/position +decimals = 0 + +[factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/boobs] +peggy_denom = factory/inj1mldpx3uh7jx25cr7wd4c7g6gwda7wa7mfnq469/boobs +decimals = 0 + +[factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN] +peggy_denom = factory/inj1mly2ykhf6f9tdj58pvndjf4q8dzdl4myjqm9t6/ALIEN +decimals = 6 + +[factory/inj1mq9zzzhdaza60pytwxkzd05grq963cgkkvpuez/position] +peggy_denom = factory/inj1mq9zzzhdaza60pytwxkzd05grq963cgkkvpuez/position +decimals = 0 + +[factory/inj1mt4qz5ytxeja23fn5ugpgqafut6lycj2jw58j2/injx] +peggy_denom = factory/inj1mt4qz5ytxeja23fn5ugpgqafut6lycj2jw58j2/injx +decimals = 18 + +[factory/inj1mu99lzv5z9cfm03xg3fryacxkgcsq6vh3x7ar7/position] +peggy_denom = factory/inj1mu99lzv5z9cfm03xg3fryacxkgcsq6vh3x7ar7/position +decimals = 0 + +[factory/inj1mwvx58l903kjlnjd0lmm3da7yw5tyl3jy85rfu/bINJ] +peggy_denom = factory/inj1mwvx58l903kjlnjd0lmm3da7yw5tyl3jy85rfu/bINJ +decimals = 0 + +[factory/inj1mxe7fkhprdmyv5tjlhwwcceyq5hcaqky82u0q9/position] +peggy_denom = factory/inj1mxe7fkhprdmyv5tjlhwwcceyq5hcaqky82u0q9/position +decimals = 0 + +[factory/inj1myspe4s4x800spny2c8v3z7ft5uvw5r0dxpjul/position] +peggy_denom = factory/inj1myspe4s4x800spny2c8v3z7ft5uvw5r0dxpjul/position +decimals = 0 + +[factory/inj1mznfy9hfq2ltcqfdaht4hk2dj7mvrfkucq6w8v/test] +peggy_denom = factory/inj1mznfy9hfq2ltcqfdaht4hk2dj7mvrfkucq6w8v/test +decimals = 6 + +[factory/inj1n0zpsl7shvw2ccyex45qs769rkmksuy90fpwpu/position] +peggy_denom = factory/inj1n0zpsl7shvw2ccyex45qs769rkmksuy90fpwpu/position +decimals = 0 + +[factory/inj1n4jprtth7dyd4y99g08pehyue7yy0nkhs8lugm/position] +peggy_denom = factory/inj1n4jprtth7dyd4y99g08pehyue7yy0nkhs8lugm/position +decimals = 0 + +[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/KEKW] +peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/KEKW +decimals = 0 + +[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/ak] +peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/ak +decimals = 0 + +[factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/xxxaaxxx] +peggy_denom = factory/inj1n5jpp6v84yj7cft7qnake9r7tflycx7tj6ksj7/xxxaaxxx +decimals = 6 + +[factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/ak] +peggy_denom = factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/ak +decimals = 0 + +[factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/btc] +peggy_denom = factory/inj1n5lp946tqfygmc0ywwz6afs3jfrph0a07grsek/btc +decimals = 6 + +[factory/inj1n75yp8epalhnzgwdp4esaakte8ymhjyqlqmujt/1683106055InjUsdt7d120C] +peggy_denom = factory/inj1n75yp8epalhnzgwdp4esaakte8ymhjyqlqmujt/1683106055InjUsdt7d120C +decimals = 0 + +[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA] +peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADARA +decimals = 0 + +[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRA] +peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRA +decimals = 0 + +[factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRAA] +peggy_denom = factory/inj1n85jfpxee430qavn9edlkup9kny7aszarag8ed/MADRAA +decimals = 0 + +[factory/inj1n9753c33nxml0er69zmvz4cc8s4xzx7jt4v2ga/position] +peggy_denom = factory/inj1n9753c33nxml0er69zmvz4cc8s4xzx7jt4v2ga/position +decimals = 0 + +[factory/inj1nahz98w2aqu9wlra68umlk7qmqmyqe0s00e7p7/position] +peggy_denom = factory/inj1nahz98w2aqu9wlra68umlk7qmqmyqe0s00e7p7/position +decimals = 0 + +[factory/inj1naq6rga6q9d94ale8elwt3kt55d5fxafe6trk5/position] +peggy_denom = factory/inj1naq6rga6q9d94ale8elwt3kt55d5fxafe6trk5/position +decimals = 0 + +[factory/inj1nd89fx0tn7twr6l5zfzdjex2ufgldxj7u3srd8/position] +peggy_denom = factory/inj1nd89fx0tn7twr6l5zfzdjex2ufgldxj7u3srd8/position +decimals = 0 + +[factory/inj1ndxqvkk6xv224z8uegusqr2jupa70ffg06n24r/position] +peggy_denom = factory/inj1ndxqvkk6xv224z8uegusqr2jupa70ffg06n24r/position +decimals = 0 + +[factory/inj1nfhnq3awj43m7fr76a39x2mrc96l95wm39hfcm/position] +peggy_denom = factory/inj1nfhnq3awj43m7fr76a39x2mrc96l95wm39hfcm/position +decimals = 0 + +[factory/inj1nfxhcjda4mn929gwtnk40mj9lce5m9rsun73qk/position] +peggy_denom = factory/inj1nfxhcjda4mn929gwtnk40mj9lce5m9rsun73qk/position +decimals = 0 + +[factory/inj1ng33rlfhcqrte7q70yvugkmsmhzslu247yxjlv/position] +peggy_denom = factory/inj1ng33rlfhcqrte7q70yvugkmsmhzslu247yxjlv/position +decimals = 0 + +[factory/inj1ng7cp4u2e3dsvd58uraw6vkz8qkxrw8trd9qd3/position] +peggy_denom = factory/inj1ng7cp4u2e3dsvd58uraw6vkz8qkxrw8trd9qd3/position +decimals = 0 + +[factory/inj1nm95w69a42qgnkw0hf8krvdt4eucqnyp0rwfwc/position] +peggy_denom = factory/inj1nm95w69a42qgnkw0hf8krvdt4eucqnyp0rwfwc/position +decimals = 0 + +[factory/inj1nmk2djc8hlv5eyxaqlys9w0klgh042r7g5n0nq/position] +peggy_denom = factory/inj1nmk2djc8hlv5eyxaqlys9w0klgh042r7g5n0nq/position +decimals = 0 + +[factory/inj1nnpa506h2ev0tn4csd5mk957hvggjfj5crt20c/position] +peggy_denom = factory/inj1nnpa506h2ev0tn4csd5mk957hvggjfj5crt20c/position +decimals = 0 + +[factory/inj1npas8uzgdhqul5wddw7fg2ym6yz6h9desduxlg/position] +peggy_denom = factory/inj1npas8uzgdhqul5wddw7fg2ym6yz6h9desduxlg/position +decimals = 0 + +[factory/inj1npmexmukus8uznafm4cnf7kp4lm7jzskfxc9px/position] +peggy_denom = factory/inj1npmexmukus8uznafm4cnf7kp4lm7jzskfxc9px/position +decimals = 0 + +[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZ] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/DGNZ +decimals = 6 + +[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnz] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnz +decimals = 0 + +[factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzzz] +peggy_denom = factory/inj1nppq4gg9ne5yvp9dw7fl9cdwjvn69u9mnyuynz/dgnzzz +decimals = 0 + +[factory/inj1nprnh57tgavs4dgdvqetkfn0xmjn99dvgnmwlq/ak] +peggy_denom = factory/inj1nprnh57tgavs4dgdvqetkfn0xmjn99dvgnmwlq/ak +decimals = 0 + +[factory/inj1npsfelk7ul73wp77q3gqvxm94eyfzy3320t0j0/injshit] +peggy_denom = factory/inj1npsfelk7ul73wp77q3gqvxm94eyfzy3320t0j0/injshit +decimals = 0 + +[factory/inj1nqnmkah2rcyesy7l0kafhppwqmjh4egmeamx2k/position] +peggy_denom = factory/inj1nqnmkah2rcyesy7l0kafhppwqmjh4egmeamx2k/position +decimals = 0 + +[factory/inj1nr2gsxj4mfzd6qlwsay3y6kf5kfdh5h5x5xn7p/position] +peggy_denom = factory/inj1nr2gsxj4mfzd6qlwsay3y6kf5kfdh5h5x5xn7p/position +decimals = 0 + +[factory/inj1nscw9jx4pzg3sa7ynmrn0xf7vf3zpqt3usd7n6/position] +peggy_denom = factory/inj1nscw9jx4pzg3sa7ynmrn0xf7vf3zpqt3usd7n6/position +decimals = 0 + +[factory/inj1nshc8fmkku4q8f47z7fagdh0fxyexva9vnc5yn/position] +peggy_denom = factory/inj1nshc8fmkku4q8f47z7fagdh0fxyexva9vnc5yn/position +decimals = 0 + +[factory/inj1nwk46lyvhmdj5hr8ynwdvz0jaa4men9ce2gt58/TEST] +peggy_denom = factory/inj1nwk46lyvhmdj5hr8ynwdvz0jaa4men9ce2gt58/TEST +decimals = 6 + +[factory/inj1nwqrpzzxd2w266u28vhq5cmhf9y6u6zvlg4e6c/position] +peggy_denom = factory/inj1nwqrpzzxd2w266u28vhq5cmhf9y6u6zvlg4e6c/position +decimals = 0 + +[factory/inj1nydlk930aypjgh8k6rsrdj5lulzvf295r4sxpu/nUSD] +peggy_denom = factory/inj1nydlk930aypjgh8k6rsrdj5lulzvf295r4sxpu/nUSD +decimals = 0 + +[factory/inj1nzvf3w7h345qzz3scf7et5ad8r0a4gn4u0jtf4/position] +peggy_denom = factory/inj1nzvf3w7h345qzz3scf7et5ad8r0a4gn4u0jtf4/position +decimals = 0 + +[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/CRE] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/CRE +decimals = 6 + +[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST +decimals = 6 + +[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST4] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST4 +decimals = 6 + +[factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST5] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/TST5 +decimals = 6 + +[factory/inj1p3j46g9p9ha2h5696kcq4z9l6e04ywnrskmyqa/position] +peggy_denom = factory/inj1p3j46g9p9ha2h5696kcq4z9l6e04ywnrskmyqa/position +decimals = 0 + +[factory/inj1p52h0yc5c9qz8hrdklc9pqwutfh9hr9dh4th5a/position] +peggy_denom = factory/inj1p52h0yc5c9qz8hrdklc9pqwutfh9hr9dh4th5a/position +decimals = 0 + +[factory/inj1p5w72hfax0ums3rnagtl6zr0e33pnyv20qut8a/position] +peggy_denom = factory/inj1p5w72hfax0ums3rnagtl6zr0e33pnyv20qut8a/position +decimals = 0 + +[factory/inj1p6g5aa4h0r7pae69y5rzs9ce60fn7ddsf4fynl/position] +peggy_denom = factory/inj1p6g5aa4h0r7pae69y5rzs9ce60fn7ddsf4fynl/position +decimals = 0 + +[factory/inj1p6qq59lapujkvyyfem4qe4xwkfqncxpwkr65yv/position] +peggy_denom = factory/inj1p6qq59lapujkvyyfem4qe4xwkfqncxpwkr65yv/position +decimals = 0 + +[factory/inj1pdckalz3dknkr7vqrrd40tg56gapya99u8t90t/position] +peggy_denom = factory/inj1pdckalz3dknkr7vqrrd40tg56gapya99u8t90t/position +decimals = 0 + +[factory/inj1pdutmxa3f7q4mtu42ynndx0p9lxfxvdf60swc9/position] +peggy_denom = factory/inj1pdutmxa3f7q4mtu42ynndx0p9lxfxvdf60swc9/position +decimals = 0 + +[factory/inj1pe4uuptfqzydz89eh27an4hrnd8eslwc2c6efe/position] +peggy_denom = factory/inj1pe4uuptfqzydz89eh27an4hrnd8eslwc2c6efe/position +decimals = 0 + +[factory/inj1ped5vf305cwv50z9y296jh8klglxt7ayj7p6dk/position] +peggy_denom = factory/inj1ped5vf305cwv50z9y296jh8klglxt7ayj7p6dk/position +decimals = 0 + +[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/inj-test] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/inj-test +decimals = 6 + +[factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/utest] +peggy_denom = factory/inj1pjp9q2ycs7eaav8d5ny5956k5m6t0alpl33xd6/utest +decimals = 0 + +[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test1] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test1 +decimals = 6 + +[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2 +decimals = 6 + +[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2323432] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test2323432 +decimals = 0 + +[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test3] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/inj-test3 +decimals = 6 + +[factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/test1] +peggy_denom = factory/inj1pk7jhvjj2lufcghmvr7gl49dzwkk3xj0uqkwfk/test1 +decimals = 0 + +[factory/inj1pk9rw4sz4sgmceu3pxjtd7dwvylgxmceff63qn/position] +peggy_denom = factory/inj1pk9rw4sz4sgmceu3pxjtd7dwvylgxmceff63qn/position +decimals = 0 + +[factory/inj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl/lp] +peggy_denom = factory/inj1pl9pe5yatc45hzngpt2s7l5avkl5znun5p40wl/lp +decimals = 0 + +[factory/inj1pmr64rmtj9tlnz3ueeagcm9ja4ej3emkpdkr6x/position] +peggy_denom = factory/inj1pmr64rmtj9tlnz3ueeagcm9ja4ej3emkpdkr6x/position +decimals = 0 + +[factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/pussy] +peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/pussy +decimals = 0 + +[factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/testtoken] +peggy_denom = factory/inj1pn6cg7jt5nvmh2rpjxhg95nrcjz0rujv54wkdg/testtoken +decimals = 0 + +[factory/inj1ppqx8xqhc7kexgwkpkll57lns49qxr96rhupps/kUSD] +peggy_denom = factory/inj1ppqx8xqhc7kexgwkpkll57lns49qxr96rhupps/kUSD +decimals = 0 + +[factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS-1] +peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS-1 +decimals = 0 + +[factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS1] +peggy_denom = factory/inj1prp8jk9fvxjzdgv8n2qlgrdfgxpq7t6k6rkmc7/PIGS1 +decimals = 0 + +[factory/inj1psjmkh8edtywpelhgh6knwy6fsqdrm9fet4ht7/position] +peggy_denom = factory/inj1psjmkh8edtywpelhgh6knwy6fsqdrm9fet4ht7/position +decimals = 0 + +[factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDLTest] +peggy_denom = factory/inj1put8lfpkwm47tqcl9fgh8grz987mezvrx4arls/DDLTest +decimals = 6 + +[factory/inj1puwsgl5qfv5z8z6ljfztcfc82euz063j655xlg/position] +peggy_denom = factory/inj1puwsgl5qfv5z8z6ljfztcfc82euz063j655xlg/position +decimals = 0 + +[factory/inj1pvs8adl72tdcwn5rty4pfmqpjfkxs6atkvzfy4/position] +peggy_denom = factory/inj1pvs8adl72tdcwn5rty4pfmqpjfkxs6atkvzfy4/position +decimals = 0 + +[factory/inj1pwjch4d8snnt3xkakdhn5xuzpp6n2v5ye8wnth/utest] +peggy_denom = factory/inj1pwjch4d8snnt3xkakdhn5xuzpp6n2v5ye8wnth/utest +decimals = 0 + +[factory/inj1pwztvdkju9lcmw68t04n7vt7832s3w9clv59ws/lp] +peggy_denom = factory/inj1pwztvdkju9lcmw68t04n7vt7832s3w9clv59ws/lp +decimals = 0 + +[factory/inj1pxnj6sh6njq66d2rffnth032ct07qatmr6fer3/position] +peggy_denom = factory/inj1pxnj6sh6njq66d2rffnth032ct07qatmr6fer3/position +decimals = 0 + +[factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/ak] +peggy_denom = factory/inj1pzwl6turgp49akhkxjynj77z9pd6x7zf2zmazz/ak +decimals = 6 + +[factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TEST] +peggy_denom = factory/inj1q2m26a7jdzjyfdn545vqsude3zwwtfrdap5jgz/TEST +decimals = 6 + +[factory/inj1q3c3sar5uq02xus9j6a7vxrpdqwya4xfkdj0wv/position] +peggy_denom = factory/inj1q3c3sar5uq02xus9j6a7vxrpdqwya4xfkdj0wv/position +decimals = 0 + +[factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK] +peggy_denom = factory/inj1q4z7jjxdk7whwmkt39x7krc49xaqapuswhjhkn/COCK +decimals = 0 + +[factory/inj1qau4ax7mlyxam8f4xrz02tqydus4h8n5pt0zue/position] +peggy_denom = factory/inj1qau4ax7mlyxam8f4xrz02tqydus4h8n5pt0zue/position +decimals = 0 + +[factory/inj1qc5kqy83ksr0xtd08vjv9eyv3d72kcc93e740s/position] +peggy_denom = factory/inj1qc5kqy83ksr0xtd08vjv9eyv3d72kcc93e740s/position +decimals = 0 + +[factory/inj1qemlmtltmk7rhzk0wzwrhnp0ystlvx3mx046xs/position] +peggy_denom = factory/inj1qemlmtltmk7rhzk0wzwrhnp0ystlvx3mx046xs/position +decimals = 0 + +[factory/inj1qh6h56lfum2fxpvweukyx83m8q96s7lj03hxtg/position] +peggy_denom = factory/inj1qh6h56lfum2fxpvweukyx83m8q96s7lj03hxtg/position +decimals = 0 + +[factory/inj1qhw695hnxrg8nk8krat53jva7jctlxp576pq4x/position] +peggy_denom = factory/inj1qhw695hnxrg8nk8krat53jva7jctlxp576pq4x/position +decimals = 0 + +[factory/inj1qhx3w0663ta9tmu330vljhfs6r2qcfnklyqfe0/position] +peggy_denom = factory/inj1qhx3w0663ta9tmu330vljhfs6r2qcfnklyqfe0/position +decimals = 0 + +[factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/Lenz] +peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/Lenz +decimals = 6 + +[factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTestingTestnetFinal] +peggy_denom = factory/inj1qkfk75uastafdvnphj95drkkuqsf0ct42k3grf/LenzTestingTestnetFinal +decimals = 6 + +[factory/inj1qn2t30yflmrkmtxyc348jhmvnypsd2xk4lk74s/position] +peggy_denom = factory/inj1qn2t30yflmrkmtxyc348jhmvnypsd2xk4lk74s/position +decimals = 0 + +[factory/inj1qnymwcy78ty0ldvfcxk6ksfct9ndgpj0p06zak/position] +peggy_denom = factory/inj1qnymwcy78ty0ldvfcxk6ksfct9ndgpj0p06zak/position +decimals = 0 + +[factory/inj1qplngxl3zt3j6n0r3ryx6d8k58wu38t8amfpv3/position] +peggy_denom = factory/inj1qplngxl3zt3j6n0r3ryx6d8k58wu38t8amfpv3/position +decimals = 0 + +[factory/inj1qpr7c23qy3usjy3hem2wr2e9vuz39sau9032lr/position] +peggy_denom = factory/inj1qpr7c23qy3usjy3hem2wr2e9vuz39sau9032lr/position +decimals = 0 + +[factory/inj1quptgzfh2z6258sh3yckklyg7gys569rmp5s3e/kUSD] +peggy_denom = factory/inj1quptgzfh2z6258sh3yckklyg7gys569rmp5s3e/kUSD +decimals = 6 + +[factory/inj1qusz42g00le4gvqu6cej3qsf4n383dr4f2c4gj/position] +peggy_denom = factory/inj1qusz42g00le4gvqu6cej3qsf4n383dr4f2c4gj/position +decimals = 0 + +[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/AA] +peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/AA +decimals = 0 + +[factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/ape] +peggy_denom = factory/inj1qx7qnj9wwdrxc9e239ycshqnqgapdh7s44vez7/ape +decimals = 6 + +[factory/inj1qxwtvk3ctdrctnmyen9v2wvcr026rpauc0q25g/position] +peggy_denom = factory/inj1qxwtvk3ctdrctnmyen9v2wvcr026rpauc0q25g/position +decimals = 0 + +[factory/inj1qy5wmnjahh8aek5cjmgkupcu9dxkksfelkllae/position] +peggy_denom = factory/inj1qy5wmnjahh8aek5cjmgkupcu9dxkksfelkllae/position +decimals = 0 + +[factory/inj1qyz0463rsew039f2lny2vzx0c0mhc6ru6jfarz/position] +peggy_denom = factory/inj1qyz0463rsew039f2lny2vzx0c0mhc6ru6jfarz/position +decimals = 0 + +[factory/inj1r2964d6pf76jpylnyc447jv67ddc4dflqrqk4m/position] +peggy_denom = factory/inj1r2964d6pf76jpylnyc447jv67ddc4dflqrqk4m/position +decimals = 0 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Life-Token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Life-Token +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Lifeless-Token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Lifeless-Token +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquifier] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquifier +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquify] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Liquify +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Savior-Token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Savior-Token +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Tested-Token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/Tested-Token +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lifedd] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lifedd +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lord-stone-token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/lord-stone-token +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/saramon] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/saramon +decimals = 6 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token +decimals = 0 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token2] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-token2 +decimals = 0 + +[factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-tokens] +peggy_denom = factory/inj1r2nhkxpuk8kna036rud4kqz2357dptqs2gcjll/test-tokens +decimals = 0 + +[factory/inj1r3qaemv4lnht42z8mynzfcfjrlyhlupx76le90/position] +peggy_denom = factory/inj1r3qaemv4lnht42z8mynzfcfjrlyhlupx76le90/position +decimals = 0 + +[factory/inj1r3u5yl5u5twct896xm2nhk8e8f2d3vvz28uuen/position] +peggy_denom = factory/inj1r3u5yl5u5twct896xm2nhk8e8f2d3vvz28uuen/position +decimals = 0 + +[factory/inj1r4fje8a30glg7fmr3uqnk4fl0sm67s6dpvgrg3/testToken] +peggy_denom = factory/inj1r4fje8a30glg7fmr3uqnk4fl0sm67s6dpvgrg3/testToken +decimals = 6 + +[factory/inj1r6mje70a37k8c5ata5g42pp87ncdxfv23vzzu7/position] +peggy_denom = factory/inj1r6mje70a37k8c5ata5g42pp87ncdxfv23vzzu7/position +decimals = 0 + +[factory/inj1r6tj96lrtn6jtyjq8xa39ny2j2spqajm43awu4/position] +peggy_denom = factory/inj1r6tj96lrtn6jtyjq8xa39ny2j2spqajm43awu4/position +decimals = 0 + +[factory/inj1r8dwjecdv7z9dk6kl4mgqtvt2e3g002z8ptvvm/position] +peggy_denom = factory/inj1r8dwjecdv7z9dk6kl4mgqtvt2e3g002z8ptvvm/position +decimals = 0 + +[factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1477ukmxx47mgsfe09qwd6gyp98ftecjytrqdrc] +peggy_denom = factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1477ukmxx47mgsfe09qwd6gyp98ftecjytrqdrc +decimals = 0 + +[factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1u67283zzclfr4pvxc9svwn7jurxm4aku46tjtt] +peggy_denom = factory/inj1raephyfwd5mxp6ps4dmsw8d7mup8efmf0tdj0r/inj1u67283zzclfr4pvxc9svwn7jurxm4aku46tjtt +decimals = 0 + +[factory/inj1rc38yz7hvvdygad44lfz0xe8ymf0mt539p6u8l/position] +peggy_denom = factory/inj1rc38yz7hvvdygad44lfz0xe8ymf0mt539p6u8l/position +decimals = 0 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/LIOR] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/LIOR +decimals = 6 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/ak] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/ak +decimals = 6 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/factory/bior] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/factory/bior +decimals = 0 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/libor] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/libor +decimals = 0 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/lior] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/lior +decimals = 6 + +[factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nain] +peggy_denom = factory/inj1rfdg206x7stm8rfl5crudn8v776k9q9njkqnzr/nain +decimals = 0 + +[factory/inj1rl8xukts6h729y2l3s29k5v95fur7nj6d5kerm/DREAM] +peggy_denom = factory/inj1rl8xukts6h729y2l3s29k5v95fur7nj6d5kerm/DREAM +decimals = 6 + +[factory/inj1rlg44s9tmzsecj7fnxzd5p7tzptrfwqt8cgewf/shuriken] +peggy_denom = factory/inj1rlg44s9tmzsecj7fnxzd5p7tzptrfwqt8cgewf/shuriken +decimals = 0 + +[factory/inj1rmfvy5j4fhqlfzlutz26hynhhpt7xyf8r3vsxu/position] +peggy_denom = factory/inj1rmfvy5j4fhqlfzlutz26hynhhpt7xyf8r3vsxu/position +decimals = 0 + +[factory/inj1rn4cagrvcgl49d7n60vnxpftnaqw7xtuxerh23/position] +peggy_denom = factory/inj1rn4cagrvcgl49d7n60vnxpftnaqw7xtuxerh23/position +decimals = 0 + +[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/TTKC] +peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/TTKC +decimals = 6 + +[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ak] +peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ak +decimals = 6 + +[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/bINJ] +peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/bINJ +decimals = 6 + +[factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ninja] +peggy_denom = factory/inj1rq4l2efkesetql824keqewk7h95ltua6xxu6fw/ninja +decimals = 6 + +[factory/inj1rqn67w2cm3uxxvnjxvsm9889zyrtxxpjl56g7p/nUSD] +peggy_denom = factory/inj1rqn67w2cm3uxxvnjxvsm9889zyrtxxpjl56g7p/nUSD +decimals = 18 + +[factory/inj1rr23r9ysrtg0jat8ljm5lfc9g0nz8y0ts27fhg/position] +peggy_denom = factory/inj1rr23r9ysrtg0jat8ljm5lfc9g0nz8y0ts27fhg/position +decimals = 0 + +[factory/inj1rrw6l34tzj8nwxrg2u6ra78jlcykrz763ltp9d/position] +peggy_denom = factory/inj1rrw6l34tzj8nwxrg2u6ra78jlcykrz763ltp9d/position +decimals = 0 + +[factory/inj1rsvh5w3pzs9ta8v484agjzyfsq4c42nlaetmnv/position] +peggy_denom = factory/inj1rsvh5w3pzs9ta8v484agjzyfsq4c42nlaetmnv/position +decimals = 0 + +[factory/inj1ruljx4vla6qq08ejml5syehqf40xh3q7365dee/position] +peggy_denom = factory/inj1ruljx4vla6qq08ejml5syehqf40xh3q7365dee/position +decimals = 0 + +[factory/inj1rw057xldmte58t9jqljn3gyzck07lyy7stmqnu/position] +peggy_denom = factory/inj1rw057xldmte58t9jqljn3gyzck07lyy7stmqnu/position +decimals = 0 + +[factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/test] +peggy_denom = factory/inj1rw3qvamxgmvyexuz2uhyfa4hukvtvteznxjvke/test +decimals = 0 + +[factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/INJDOGE] +peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/INJDOGE +decimals = 0 + +[factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ak] +peggy_denom = factory/inj1s04p0wztwl823lwcnkdstd3xp3n30a8hhel2jf/ak +decimals = 0 + +[factory/inj1s0sl8egfgc29scvlj2x3v5cj73xhkm90237u97/position] +peggy_denom = factory/inj1s0sl8egfgc29scvlj2x3v5cj73xhkm90237u97/position +decimals = 0 + +[factory/inj1s4s8tmcfc43y0mfxm8cwhf3wehsxw6za8k3x4c/position] +peggy_denom = factory/inj1s4s8tmcfc43y0mfxm8cwhf3wehsxw6za8k3x4c/position +decimals = 0 + +[factory/inj1s6yq89jvdq3ps4h8wx8jk60c2r0jwczes4sgl6/position] +peggy_denom = factory/inj1s6yq89jvdq3ps4h8wx8jk60c2r0jwczes4sgl6/position +decimals = 0 + +[factory/inj1s8cp9up483f30cxpd7saxp935evy70fd4jddzg/iUSD] +peggy_denom = factory/inj1s8cp9up483f30cxpd7saxp935evy70fd4jddzg/iUSD +decimals = 18 + +[factory/inj1s8knaspkz9s5cphxxx62j5saxr923mqy4vsycz/position] +peggy_denom = factory/inj1s8knaspkz9s5cphxxx62j5saxr923mqy4vsycz/position +decimals = 0 + +[factory/inj1s92j8qw73qhhuhlecj3ekux8ck60wj93ry5haw/position] +peggy_denom = factory/inj1s92j8qw73qhhuhlecj3ekux8ck60wj93ry5haw/position +decimals = 0 + +[factory/inj1s9dzsqrrq09z46ye7ffa9fldg3dt0e2cvx6yla/auction.0] +peggy_denom = factory/inj1s9dzsqrrq09z46ye7ffa9fldg3dt0e2cvx6yla/auction.0 +decimals = 0 + +[factory/inj1sa2wmd8zhf893ex6da8jgnp06pcj2tv59mq457/position] +peggy_denom = factory/inj1sa2wmd8zhf893ex6da8jgnp06pcj2tv59mq457/position +decimals = 0 + +[factory/inj1sa5g8q4egwzy09942675r0az9tftac9tnrz2kr/JCLUB] +peggy_denom = factory/inj1sa5g8q4egwzy09942675r0az9tftac9tnrz2kr/JCLUB +decimals = 6 + +[factory/inj1sclqgctp0hxenfgvh59y8reppg5gssjw8p078u/position] +peggy_denom = factory/inj1sclqgctp0hxenfgvh59y8reppg5gssjw8p078u/position +decimals = 0 + +[factory/inj1sdpk4n3zw4n70uxg83ep3sj5x2ynh608lqxcw0/ak] +peggy_denom = factory/inj1sdpk4n3zw4n70uxg83ep3sj5x2ynh608lqxcw0/ak +decimals = 6 + +[factory/inj1sf0dsdnsvtf06fdwsy800ysne2cemlkfwe3duq/position] +peggy_denom = factory/inj1sf0dsdnsvtf06fdwsy800ysne2cemlkfwe3duq/position +decimals = 0 + +[factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/ak] +peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/ak +decimals = 0 + +[factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/test123] +peggy_denom = factory/inj1sf4jk2ku0syp7x6lns8dau73sc2grtqpf3try5/test123 +decimals = 6 + +[factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior] +peggy_denom = factory/inj1sg3yjgjlwhtrepeuusj4jwv209rh6cmk882cw3/lior +decimals = 6 + +[factory/inj1sg9htcd8tqgxlnsl9qe2mm5y4l9zq0mq6qhph9/position] +peggy_denom = factory/inj1sg9htcd8tqgxlnsl9qe2mm5y4l9zq0mq6qhph9/position +decimals = 0 + +[factory/inj1sgh3equhfwqpscgcxksnz69r67qu4yfcvlreyj/position] +peggy_denom = factory/inj1sgh3equhfwqpscgcxksnz69r67qu4yfcvlreyj/position +decimals = 0 + +[factory/inj1sh5n5v86gmugkq8za8gh2flfsurymmha4fvw2x/at-token] +peggy_denom = factory/inj1sh5n5v86gmugkq8za8gh2flfsurymmha4fvw2x/at-token +decimals = 0 + +[factory/inj1sj9xzvxq2fmfwmaffueymlmrdmgcsfzexlnxzl/bINJ] +peggy_denom = factory/inj1sj9xzvxq2fmfwmaffueymlmrdmgcsfzexlnxzl/bINJ +decimals = 0 + +[factory/inj1sjgzywux3snnkz74r5sul04vk44zfrfdq6yx9g/iUSD] +peggy_denom = factory/inj1sjgzywux3snnkz74r5sul04vk44zfrfdq6yx9g/iUSD +decimals = 18 + +[factory/inj1skkzrk8x56lz2t0908tsgywyq9u63l7633z47d/position] +peggy_denom = factory/inj1skkzrk8x56lz2t0908tsgywyq9u63l7633z47d/position +decimals = 0 + +[factory/inj1skpv9emvexywcg42mne4lugd6xjwglzsqxu888/position] +peggy_denom = factory/inj1skpv9emvexywcg42mne4lugd6xjwglzsqxu888/position +decimals = 0 + +[factory/inj1sm0ccywqn6nmzjgrptlauzpzrjz42rt9uq2vlr/position] +peggy_denom = factory/inj1sm0ccywqn6nmzjgrptlauzpzrjz42rt9uq2vlr/position +decimals = 0 + +[factory/inj1sm8mpx3e4p2z4ryzhp6t2gdzwrzdwxnf447dnx/position] +peggy_denom = factory/inj1sm8mpx3e4p2z4ryzhp6t2gdzwrzdwxnf447dnx/position +decimals = 0 + +[factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/TEST] +peggy_denom = factory/inj1sn34edy635nv4yhts3khgpy5qxw8uey6wvzq53/TEST +decimals = 6 + +[factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/CAT] +peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/CAT +decimals = 6 + +[factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vader] +peggy_denom = factory/inj1sq839juq97296mumt84hzfjpc2nf7h2u774g59/Vader +decimals = 0 + +[factory/inj1sr4jakhjmur7hc3j9n3tv72uu9dwv9756sgpwq/position] +peggy_denom = factory/inj1sr4jakhjmur7hc3j9n3tv72uu9dwv9756sgpwq/position +decimals = 0 + +[factory/inj1ss277vzv95cllcl5q4wy4jrmpxk093xgltmphw/position] +peggy_denom = factory/inj1ss277vzv95cllcl5q4wy4jrmpxk093xgltmphw/position +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485AtomUsdt2d0.93P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485AtomUsdt2d0.93P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706894751.711989485InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230AtomUsdt2d0.93P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230AtomUsdt2d0.93P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706965216.786331230InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969190.664112751InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969190.664112751InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969205.325387195InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969205.325387195InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969261.401032761InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969261.401032761InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969341.520964599AtomUsdt2d0.93P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1706969341.520964599AtomUsdt2d0.93P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405AtomUsdt2d0.93P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405AtomUsdt2d0.93P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1707054927.433248405InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1708611446.026416584InjUsdt2d1.08C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1708611446.026416584InjUsdt2d1.08C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1709902288.058267150InjUsdt24d1.17C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1709902288.058267150InjUsdt24d1.17C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1711621611InjUsdt1d1.06C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1711621611InjUsdt1d1.06C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712154662InjUsdt1d1.06C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712154662InjUsdt1d1.06C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738450InjUsdt28d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738450InjUsdt28d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738484InjUsdt28d0.85P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738484InjUsdt28d0.85P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738818InjUsdt28d0.85P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712738818InjUsdt28d0.85P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712739110InjUsdt28d0.86P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1712739110InjUsdt28d0.86P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713965158InjUsdt28d0.86P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713965158InjUsdt28d0.86P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966058InjUsdt28d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966058InjUsdt28d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966386InjUsdt28d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1713966386InjUsdt28d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066545InjUsdt24d1.17C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066545InjUsdt24d1.17C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066761InjUsdt16d0.89P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715066761InjUsdt16d0.89P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d1.1C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715097040InjUsdt2d1.1C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d1.1C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1715266529InjUsdt2d1.1C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717647176InjUsdt2d1.1C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717647176InjUsdt2d1.1C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749427InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749427InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749631InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1717749631InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718699872InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718699872InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718764795InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718764795InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718766318InjUsdt24d1.19C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718766318InjUsdt24d1.19C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718779878InjUsdt26d1.19C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1718779878InjUsdt26d1.19C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719297355InjUsdt26d1.19C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719297355InjUsdt26d1.19C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719306854InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719306854InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719393332InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719393332InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719918905InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719918905InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719921133InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1719921133InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720000120InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720000120InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513336InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513336InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513965InjUsdt2d0.95P] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1720513965InjUsdt2d0.95P +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721199238InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721199238InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721736957InjUsdt26d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721736957InjUsdt26d1.2C +decimals = 0 + +[factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721737329InjUsdt28d1.2C] +peggy_denom = factory/inj1ss7rm7yde55dyddg7532dmdjy3gzvrjthxmqtd/1721737329InjUsdt28d1.2C +decimals = 0 + +[factory/inj1ssysf4uhqa4nndser07cvgfzlqtvsg3l0y8vvn/position] +peggy_denom = factory/inj1ssysf4uhqa4nndser07cvgfzlqtvsg3l0y8vvn/position +decimals = 0 + +[factory/inj1st6pj5nvz429dkmz3t0papc3273j5xnzjan8sm/position] +peggy_denom = factory/inj1st6pj5nvz429dkmz3t0papc3273j5xnzjan8sm/position +decimals = 0 + +[factory/inj1svtmsxdu47vc0kd0eppxnq9khky324wjfxa0yg/position] +peggy_denom = factory/inj1svtmsxdu47vc0kd0eppxnq9khky324wjfxa0yg/position +decimals = 0 + +[factory/inj1t3kcptjlvg8vjpedkr2y7pe0cwlkkjmtn8p5w7/position] +peggy_denom = factory/inj1t3kcptjlvg8vjpedkr2y7pe0cwlkkjmtn8p5w7/position +decimals = 0 + +[factory/inj1t3p0szvrgxax3zf7c02w673axrut9mu5vw342u/position] +peggy_denom = factory/inj1t3p0szvrgxax3zf7c02w673axrut9mu5vw342u/position +decimals = 0 + +[factory/inj1t6jgdm6ullrxazu2g6hl7493qcacefyver6ltq/position] +peggy_denom = factory/inj1t6jgdm6ullrxazu2g6hl7493qcacefyver6ltq/position +decimals = 0 + +[factory/inj1t6ur7kmu7vu2k6lja2ng9ayrqfdmsqzks7se0q/position] +peggy_denom = factory/inj1t6ur7kmu7vu2k6lja2ng9ayrqfdmsqzks7se0q/position +decimals = 0 + +[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1c0rh80uc9v4frwh00zvmkr2qx0599z78lm7jxj] +peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1c0rh80uc9v4frwh00zvmkr2qx0599z78lm7jxj +decimals = 0 + +[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1hl2qkjhs5t8xqa7yetjghr4x3yxnlja7wemzy8] +peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1hl2qkjhs5t8xqa7yetjghr4x3yxnlja7wemzy8 +decimals = 0 + +[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1nzpletdxtcznj0xlu75y0dtly8acvm253kaj07] +peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1nzpletdxtcznj0xlu75y0dtly8acvm253kaj07 +decimals = 0 + +[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1r6zj9v8c4hyj64uzdhe844ncwd0vspy0lhrke4] +peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1r6zj9v8c4hyj64uzdhe844ncwd0vspy0lhrke4 +decimals = 0 + +[factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1yne8ww7fahfjvadqkasld3vkj597gsysk06dym] +peggy_denom = factory/inj1t6z53mnu7wulpp3n886k3laqk4za9xyr4e8azx/lpinj1yne8ww7fahfjvadqkasld3vkj597gsysk06dym +decimals = 0 + +[factory/inj1t70s0zcf7twcm7qm0lv7f7u5j3yd7v4mttxnvn/position] +peggy_denom = factory/inj1t70s0zcf7twcm7qm0lv7f7u5j3yd7v4mttxnvn/position +decimals = 0 + +[factory/inj1t80nlw8w36am2575rfd5z2yn4m46v2gsch9aj5/position] +peggy_denom = factory/inj1t80nlw8w36am2575rfd5z2yn4m46v2gsch9aj5/position +decimals = 0 + +[factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST] +peggy_denom = factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST +decimals = 6 + +[factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST2] +peggy_denom = factory/inj1t88furrvvv32qj82wwtz86s03rzxqlj0f59eev/TEST2 +decimals = 6 + +[factory/inj1t9cx33dk3tywjct6f6lq8d3j5yg7cg5jtarmkz/position] +peggy_denom = factory/inj1t9cx33dk3tywjct6f6lq8d3j5yg7cg5jtarmkz/position +decimals = 0 + +[factory/inj1ta3rgat7k3s9jehqfr3lv4dpwsytrqejdstv5m/position] +peggy_denom = factory/inj1ta3rgat7k3s9jehqfr3lv4dpwsytrqejdstv5m/position +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj12yhwzv3wvh0lgwft5n5x4q382d7q4fj2am62y6] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj12yhwzv3wvh0lgwft5n5x4q382d7q4fj2am62y6 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj13g2ry3dwj49jd3hdyq2xvyd4eghtkr5dnejhff] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj13g2ry3dwj49jd3hdyq2xvyd4eghtkr5dnejhff +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj14dz74tz06lxz2pl4e5vcv3v62lst8d43rp6hy4] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj14dz74tz06lxz2pl4e5vcv3v62lst8d43rp6hy4 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj176anlxqyz6289gf0dg0xvd3qja7ahs3cnsda63] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj176anlxqyz6289gf0dg0xvd3qja7ahs3cnsda63 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj17kjkepym5j8xss5nmud6gq4c47xt0xf02wgsms] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj17kjkepym5j8xss5nmud6gq4c47xt0xf02wgsms +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1dycczj4m8gwdj4m2fv7xm396u8tq9lp9w363zj] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1dycczj4m8gwdj4m2fv7xm396u8tq9lp9w363zj +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fde04yn4n8skenekdth633922qajlk8yk730re] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fde04yn4n8skenekdth633922qajlk8yk730re +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fgdlfyru0e0fk4tsxtdz6an7vfwz3g82w40qy6] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fgdlfyru0e0fk4tsxtdz6an7vfwz3g82w40qy6 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fujkefqpzz8crmm655q2x24y7gp7p9ppnph495] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1fujkefqpzz8crmm655q2x24y7gp7p9ppnph495 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1gruytagt6wcqarncm5ske8y3zevgqv8u6mkgyx] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1gruytagt6wcqarncm5ske8y3zevgqv8u6mkgyx +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1jmqvf9eypak3hh85gfpcpm7d8jjzd7jnnhr0xw] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1jmqvf9eypak3hh85gfpcpm7d8jjzd7jnnhr0xw +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1kxdfjs4tnu88aaqhvl9caja9qq9fs4r5qmpwqj] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1kxdfjs4tnu88aaqhvl9caja9qq9fs4r5qmpwqj +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1l9cu77ay8wlyh7mxlgh0dpazw70w4f3y26g5v5] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1l9cu77ay8wlyh7mxlgh0dpazw70w4f3y26g5v5 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1lz280526tw8r06jtpxkzxajqmfsjkt57963kfr] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1lz280526tw8r06jtpxkzxajqmfsjkt57963kfr +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1q37rs9cmgqz5vnvwmr5v2a4sdzez0xfs2lvl63] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1q37rs9cmgqz5vnvwmr5v2a4sdzez0xfs2lvl63 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qamlsmj22p3zkchgva2ydhegfwz3ls7m5sm7rs] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qamlsmj22p3zkchgva2ydhegfwz3ls7m5sm7rs +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1qaq7mkvuc474k2nyjm2suwyes06fdm4kt26ks4 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1tzkdzjq28sjp2rn6053rg9526w8sc2tm8jh0u4] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1tzkdzjq28sjp2rn6053rg9526w8sc2tm8jh0u4 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1uavssa4h4s73h5fdqlheytyl6c8mvl89yfuuq9] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1uavssa4h4s73h5fdqlheytyl6c8mvl89yfuuq9 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1urvjvfzgmrvj79tk97t22whkwdfg7qng32rjjz] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1urvjvfzgmrvj79tk97t22whkwdfg7qng32rjjz +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xqsp96842fsht7m6p4slvrfhl53wfqft866sc7] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xqsp96842fsht7m6p4slvrfhl53wfqft866sc7 +decimals = 0 + +[factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xwk6glum68vdqdnx5gs0mkp909vdhx6uwhfr4y] +peggy_denom = factory/inj1tcjf7r5vksr0g80pdcdada44teauwkkahelyfy/lpinj1xwk6glum68vdqdnx5gs0mkp909vdhx6uwhfr4y +decimals = 0 + +[factory/inj1td2vzcjnhwmzfd9ky9mxtwmnfrv0a3keytv2y3/position] +peggy_denom = factory/inj1td2vzcjnhwmzfd9ky9mxtwmnfrv0a3keytv2y3/position +decimals = 0 + +[factory/inj1tg5f2vykdt4sweqgsm3q8lva30wry955hwdvju/position] +peggy_denom = factory/inj1tg5f2vykdt4sweqgsm3q8lva30wry955hwdvju/position +decimals = 0 + +[factory/inj1tgn4tyjf0y20mxpydwv3454l3ze0uwdl3cgpaf/position] +peggy_denom = factory/inj1tgn4tyjf0y20mxpydwv3454l3ze0uwdl3cgpaf/position +decimals = 0 + +[factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior] +peggy_denom = factory/inj1tgphgjqsz8fupkfjx6cy275e3s0l8xfu6rd6jh/lior +decimals = 6 + +[factory/inj1tk4ml8fce5ghx7y2gtnqhw57e9m59ep27497xv/uLP] +peggy_denom = factory/inj1tk4ml8fce5ghx7y2gtnqhw57e9m59ep27497xv/uLP +decimals = 0 + +[factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1kjpg9p0h6g5zuwdzhgn7atleqeuqnysxs9xvtv] +peggy_denom = factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1kjpg9p0h6g5zuwdzhgn7atleqeuqnysxs9xvtv +decimals = 0 + +[factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1qscnau8y47upvhc7rs5c2kkpkrpqc0a0crp6av] +peggy_denom = factory/inj1tlfznhm0t6m456nlqzcdhcm54048dp00n4rznd/lpinj1qscnau8y47upvhc7rs5c2kkpkrpqc0a0crp6av +decimals = 0 + +[factory/inj1tlrwn7cm5hgpttyjkrw94qvwapeck2f7u855hn/position] +peggy_denom = factory/inj1tlrwn7cm5hgpttyjkrw94qvwapeck2f7u855hn/position +decimals = 0 + +[factory/inj1tlxsr4ezttv242jh3tdt675s2kemvcqx9yn4m3/position] +peggy_denom = factory/inj1tlxsr4ezttv242jh3tdt675s2kemvcqx9yn4m3/position +decimals = 0 + +[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test] +peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test +decimals = 0 + +[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test2] +peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test2 +decimals = 0 + +[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test3] +peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/inj-test3 +decimals = 0 + +[factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/your-token-subdenom] +peggy_denom = factory/inj1tnplj57r9he4z0v4596zvqxysj4hyr8l4vndhj/your-token-subdenom +decimals = 0 + +[factory/inj1tnwe94x7n52vs70rsawvcs0fnktqp2h38vje26/BOND] +peggy_denom = factory/inj1tnwe94x7n52vs70rsawvcs0fnktqp2h38vje26/BOND +decimals = 0 + +[factory/inj1tq80yx8jmw48wjzpaajqpyd7pe849vsz20qwsk/position] +peggy_denom = factory/inj1tq80yx8jmw48wjzpaajqpyd7pe849vsz20qwsk/position +decimals = 0 + +[factory/inj1tqw2laydve0l92fvkel5l6cdjgzm8ek5k6w7yq/position] +peggy_denom = factory/inj1tqw2laydve0l92fvkel5l6cdjgzm8ek5k6w7yq/position +decimals = 0 + +[factory/inj1trs377m67pndeu0sxptzuptcrzua5k4jya9rc3/position] +peggy_denom = factory/inj1trs377m67pndeu0sxptzuptcrzua5k4jya9rc3/position +decimals = 0 + +[factory/inj1tsqkcae8d6azqn6587d0e28prw682954y22ejs/position] +peggy_denom = factory/inj1tsqkcae8d6azqn6587d0e28prw682954y22ejs/position +decimals = 0 + +[factory/inj1tvgmd4hmxt4synazauj02v044dwenmucljzm3h/kin] +peggy_denom = factory/inj1tvgmd4hmxt4synazauj02v044dwenmucljzm3h/kin +decimals = 0 + +[factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-test] +peggy_denom = factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-test +decimals = 0 + +[factory/inj1tvzvzmhp5wnryf6dph2w5alkweqy4jj4w9fxwc/position] +peggy_denom = factory/inj1tvzvzmhp5wnryf6dph2w5alkweqy4jj4w9fxwc/position +decimals = 0 + +[factory/inj1twteeyr3xuvckejmu9z4728qdasavaq0z32gkd/position] +peggy_denom = factory/inj1twteeyr3xuvckejmu9z4728qdasavaq0z32gkd/position +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheJanitor] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/TheJanitor +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/mtsc] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/mtsc +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rfl] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rfl +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rflf] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/rflf +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tst] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tst +decimals = 0 + +[factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tstt] +peggy_denom = factory/inj1tx74j0uslp4pr5neyxxxgajh6gx5s9lnahpp5r/tstt +decimals = 0 + +[factory/inj1txpchnswwz7qnwgx4ew5enwalwkxl0wm7fwjfp/position] +peggy_denom = factory/inj1txpchnswwz7qnwgx4ew5enwalwkxl0wm7fwjfp/position +decimals = 0 + +[factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1ylxjl6qvr3efug3950rn9z2atdp02fyejlpsgx] +peggy_denom = factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1ylxjl6qvr3efug3950rn9z2atdp02fyejlpsgx +decimals = 0 + +[factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1yzv093zw480v5q3vmy275xyvp4x9q98k029ezd] +peggy_denom = factory/inj1txza6wm8eykq7v6d97kywxz9r0xe9r8tleq9al/inj1yzv093zw480v5q3vmy275xyvp4x9q98k029ezd +decimals = 0 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/KIWI] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/KIWI +decimals = 6 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST +decimals = 6 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST2] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST2 +decimals = 6 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST3] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST3 +decimals = 6 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST4] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST4 +decimals = 6 + +[factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST5] +peggy_denom = factory/inj1u0lamqk0qggn5cxqn53t79jsthcpen9w754ayc/TEST5 +decimals = 18 + +[factory/inj1u0yfajq9e5huyylh4tllxvswdsgp3d2eum7za5/position] +peggy_denom = factory/inj1u0yfajq9e5huyylh4tllxvswdsgp3d2eum7za5/position +decimals = 0 + +[factory/inj1u2gzmedq4suw64ulpu7uwehy2mqaysfrt0nq0q/position] +peggy_denom = factory/inj1u2gzmedq4suw64ulpu7uwehy2mqaysfrt0nq0q/position +decimals = 0 + +[factory/inj1u4d97wd4mya77h6mxk8q7grz6smc4esmjawhv9/position] +peggy_denom = factory/inj1u4d97wd4mya77h6mxk8q7grz6smc4esmjawhv9/position +decimals = 0 + +[factory/inj1u4h6wt3rcctpcrmpcctmkhvxqt3aj5ugmm5hlj/position] +peggy_denom = factory/inj1u4h6wt3rcctpcrmpcctmkhvxqt3aj5ugmm5hlj/position +decimals = 0 + +[factory/inj1u64862u7plt539jm79eqnm4redcke8nszdy504/position] +peggy_denom = factory/inj1u64862u7plt539jm79eqnm4redcke8nszdy504/position +decimals = 0 + +[factory/inj1u6czgmqjcpku02z5hgnqd8c8z647lhzx07r8vd/position] +peggy_denom = factory/inj1u6czgmqjcpku02z5hgnqd8c8z647lhzx07r8vd/position +decimals = 0 + +[factory/inj1u6kx7cmvay8pv74d5xk07wtdergjcmhm5yfuxa/tp] +peggy_denom = factory/inj1u6kx7cmvay8pv74d5xk07wtdergjcmhm5yfuxa/tp +decimals = 0 + +[factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/TEST] +peggy_denom = factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/TEST +decimals = 6 + +[factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/Test] +peggy_denom = factory/inj1uc0hj8z6xu6nf3m4flwpklf98vu4wr87hud3mh/Test +decimals = 6 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684004788InjUsdt1d110C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684004788InjUsdt1d110C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684160754InjUsdt1d110C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684160754InjUsdt1d110C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684161043InjUsdt7d85P] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684161043InjUsdt7d85P +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342128InjUsdt21d110C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342128InjUsdt21d110C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342228InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342228InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342259InjUsdt7d120C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342259InjUsdt7d120C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342288AtomUsdt21d115C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342288AtomUsdt21d115C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342323AtomUsdt21d90P] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342323AtomUsdt21d90P +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342562InjUsdt14d80P] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342562InjUsdt14d80P +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342583InjUsdt21d88P] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342583InjUsdt21d88P +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342627InjUsdt7d85P] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684342627InjUsdt7d85P +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684519105InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684519105InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684730927InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684730927InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684902871InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1684902871InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685029827InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685029827InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685200859InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685200859InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685201782InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685201782InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685379415InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685379415InjUsdt14d130C +decimals = 0 + +[factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685547447InjUsdt14d130C] +peggy_denom = factory/inj1udrg8ug3g0qr54zw5yvcg3rxesuj06pvr4xtkz/1685547447InjUsdt14d130C +decimals = 0 + +[factory/inj1ue7fhf4gm9et2j8c74pf3j6mpq6zfr0ss9pymj/position] +peggy_denom = factory/inj1ue7fhf4gm9et2j8c74pf3j6mpq6zfr0ss9pymj/position +decimals = 0 + +[factory/inj1uegc6g6gvjeq3efkevha8a26lruku53j2tm6ez/nusd] +peggy_denom = factory/inj1uegc6g6gvjeq3efkevha8a26lruku53j2tm6ez/nusd +decimals = 0 + +[factory/inj1ueq4h3gh8v2wdq6nk97d4ucxutdkqz7uma7twy/position] +peggy_denom = factory/inj1ueq4h3gh8v2wdq6nk97d4ucxutdkqz7uma7twy/position +decimals = 0 + +[factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/ak] +peggy_denom = factory/inj1ujd7rlhp8980lwg74tek7gv4yv4qj4xcvxrx45/ak +decimals = 6 + +[factory/inj1unjzfc767mt3ddln99h3u7gqccq4ktnkqxssgn/position] +peggy_denom = factory/inj1unjzfc767mt3ddln99h3u7gqccq4ktnkqxssgn/position +decimals = 0 + +[factory/inj1up4y7jqyz0vxqpzky20jve5837thglaccfu80m/position] +peggy_denom = factory/inj1up4y7jqyz0vxqpzky20jve5837thglaccfu80m/position +decimals = 0 + +[factory/inj1urpyedgvqtfutghgd9pygsa9n9df6nahjygjfc/position] +peggy_denom = factory/inj1urpyedgvqtfutghgd9pygsa9n9df6nahjygjfc/position +decimals = 0 + +[factory/inj1usgjy0d22uetxkrw7wk7ghdwcje5mldjlahf9u/position] +peggy_denom = factory/inj1usgjy0d22uetxkrw7wk7ghdwcje5mldjlahf9u/position +decimals = 0 + +[factory/inj1ut4dqsjmy359rtcm2c968kju22j3auejw227yk/position] +peggy_denom = factory/inj1ut4dqsjmy359rtcm2c968kju22j3auejw227yk/position +decimals = 0 + +[factory/inj1utgap8ev5g4f97t5qta6fz2vreea6kh49x7d57/position] +peggy_denom = factory/inj1utgap8ev5g4f97t5qta6fz2vreea6kh49x7d57/position +decimals = 0 + +[factory/inj1uumx6djsue8reph7zqxvct9qh5ymfkewrlrvkh/position] +peggy_denom = factory/inj1uumx6djsue8reph7zqxvct9qh5ymfkewrlrvkh/position +decimals = 0 + +[factory/inj1uv23c02y8kyst63gmd9s90xnusxm082cz75svm/position] +peggy_denom = factory/inj1uv23c02y8kyst63gmd9s90xnusxm082cz75svm/position +decimals = 0 + +[factory/inj1uv6psuupldve0c9n3uezqlecadszqexv5vxx04/position] +peggy_denom = factory/inj1uv6psuupldve0c9n3uezqlecadszqexv5vxx04/position +decimals = 0 + +[factory/inj1uvhnfynmzakn5w9hy0lx4ekjg2n43l6wn589yn/position] +peggy_denom = factory/inj1uvhnfynmzakn5w9hy0lx4ekjg2n43l6wn589yn/position +decimals = 0 + +[factory/inj1uxfds27smnfldzeqvw9sxe9ezmsn76vf36y8mu/position] +peggy_denom = factory/inj1uxfds27smnfldzeqvw9sxe9ezmsn76vf36y8mu/position +decimals = 0 + +[factory/inj1uyv6e9u30eckntsa5y968mvzh53482stcmhuqp/position] +peggy_denom = factory/inj1uyv6e9u30eckntsa5y968mvzh53482stcmhuqp/position +decimals = 0 + +[factory/inj1v3nvact8rvv23fc5ql8ghv46s8gxajwynddsgf/position] +peggy_denom = factory/inj1v3nvact8rvv23fc5ql8ghv46s8gxajwynddsgf/position +decimals = 0 + +[factory/inj1v3t83cl8jg2g9rxxzzyz663sx2md7mkap48qpw/position] +peggy_denom = factory/inj1v3t83cl8jg2g9rxxzzyz663sx2md7mkap48qpw/position +decimals = 0 + +[factory/inj1v4rt4k8c92m2e39xnrp0rur23ch24vlraeqrnj/position] +peggy_denom = factory/inj1v4rt4k8c92m2e39xnrp0rur23ch24vlraeqrnj/position +decimals = 0 + +[factory/inj1v4s3v3nmsx6szyxqgcnqdfseucu4ccm65sh0xr/lp] +peggy_denom = factory/inj1v4s3v3nmsx6szyxqgcnqdfseucu4ccm65sh0xr/lp +decimals = 0 + +[factory/inj1v50298l9a3p8zq3hm6sfa02sj3h4l40m2e85sg/position] +peggy_denom = factory/inj1v50298l9a3p8zq3hm6sfa02sj3h4l40m2e85sg/position +decimals = 0 + +[factory/inj1v6f2f8gqyk9u5pquxqvsxamjfmu0anlqty0tck/position] +peggy_denom = factory/inj1v6f2f8gqyk9u5pquxqvsxamjfmu0anlqty0tck/position +decimals = 0 + +[factory/inj1v6j600fchr65djzwg32pwn0wrmumayk7wz3045/position] +peggy_denom = factory/inj1v6j600fchr65djzwg32pwn0wrmumayk7wz3045/position +decimals = 0 + +[factory/inj1v9dh0z7vmn8aa6rjssertmh65q6zu43vu4lzqg/position] +peggy_denom = factory/inj1v9dh0z7vmn8aa6rjssertmh65q6zu43vu4lzqg/position +decimals = 0 + +[factory/inj1v9efws63c8luhqqcxxyjv5yn84tw4an528avmn/position] +peggy_denom = factory/inj1v9efws63c8luhqqcxxyjv5yn84tw4an528avmn/position +decimals = 0 + +[factory/inj1v9m8ra08jmvgf7r086wjs660gaz4qman79068v/position] +peggy_denom = factory/inj1v9m8ra08jmvgf7r086wjs660gaz4qman79068v/position +decimals = 0 + +[factory/inj1v9u88x6364g7mgyhywe6k5mgmwh9hrmzgfqkga/position] +peggy_denom = factory/inj1v9u88x6364g7mgyhywe6k5mgmwh9hrmzgfqkga/position +decimals = 0 + +[factory/inj1vam3mucqmr3jq8g8tlyvwpg2d6n5saepvjqm9j/position] +peggy_denom = factory/inj1vam3mucqmr3jq8g8tlyvwpg2d6n5saepvjqm9j/position +decimals = 0 + +[factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj167fk7vydv5sc3yvdlhrrnrh236qusaaunsrlaw] +peggy_denom = factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj167fk7vydv5sc3yvdlhrrnrh236qusaaunsrlaw +decimals = 0 + +[factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj1jl72nssaq64u6ze7ducpvne4k3knd7p4e38wmv] +peggy_denom = factory/inj1vdjylk9h6x5l5rdeq69kzz8epkdj49jz3vnkck/lpinj1jl72nssaq64u6ze7ducpvne4k3knd7p4e38wmv +decimals = 0 + +[factory/inj1vfwt0zwcx60sk3rlszfwezygd35lq9kjh6g9df/ak] +peggy_denom = factory/inj1vfwt0zwcx60sk3rlszfwezygd35lq9kjh6g9df/ak +decimals = 6 + +[factory/inj1vgg9a0fgt03s6naw4y8kpeqrxaftvjx7n729x9/position] +peggy_denom = factory/inj1vgg9a0fgt03s6naw4y8kpeqrxaftvjx7n729x9/position +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/ABC] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/ABC +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/INJ] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/INJ +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TOK] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TOK +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TST] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TST +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TYC] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/TYC +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWG] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWG +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWWG] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWWG +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWwGG] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/WWwGG +decimals = 0 + +[factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/your-token-subdenom] +peggy_denom = factory/inj1vh4qp2p4y0lxqxhu7w2wj3puam6x28atmkqcar/your-token-subdenom +decimals = 0 + +[factory/inj1vh87n639uwq0smzzxj82mqlyu5yxzn7l7fjcs0/position] +peggy_denom = factory/inj1vh87n639uwq0smzzxj82mqlyu5yxzn7l7fjcs0/position +decimals = 0 + +[factory/inj1vjjppnr2gws0e678uhegmcruhyx55nk6w2hg2k/position] +peggy_denom = factory/inj1vjjppnr2gws0e678uhegmcruhyx55nk6w2hg2k/position +decimals = 0 + +[factory/inj1vjjzzlev5u0hzzh4lju29mhv9efte87w5czs39/position] +peggy_denom = factory/inj1vjjzzlev5u0hzzh4lju29mhv9efte87w5czs39/position +decimals = 0 + +[factory/inj1vjyvqyhvd00zzpwrr6v3keydp43z8pnsl48cx3/Testone] +peggy_denom = factory/inj1vjyvqyhvd00zzpwrr6v3keydp43z8pnsl48cx3/Testone +decimals = 6 + +[factory/inj1vkrp72xd67plcggcfjtjelqa4t5a093xljf2vj/inj1spw6nd0pj3kd3fgjljhuqpc8tv72a9v89myuja] +peggy_denom = factory/inj1vkrp72xd67plcggcfjtjelqa4t5a093xljf2vj/inj1spw6nd0pj3kd3fgjljhuqpc8tv72a9v89myuja +decimals = 0 + +[factory/inj1vlkpm04nu8dssskal6xkssfz6rl4zayg2pq7yu/position] +peggy_denom = factory/inj1vlkpm04nu8dssskal6xkssfz6rl4zayg2pq7yu/position +decimals = 0 + +[factory/inj1vmch9emlwa49ersxh7svqjckkjwuzrm76xuyqq/position] +peggy_denom = factory/inj1vmch9emlwa49ersxh7svqjckkjwuzrm76xuyqq/position +decimals = 0 + +[factory/inj1vmcrwdcymjkz8djsp04ya95xcux6utvp4dvwch/position] +peggy_denom = factory/inj1vmcrwdcymjkz8djsp04ya95xcux6utvp4dvwch/position +decimals = 0 + +[factory/inj1vnw2qhycavcehry6a9sex07nr76axev5s59x96/position] +peggy_denom = factory/inj1vnw2qhycavcehry6a9sex07nr76axev5s59x96/position +decimals = 0 + +[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cook] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cook +decimals = 6 + +[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cookie] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/cookie +decimals = 6 + +[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test213] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test213 +decimals = 6 + +[factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test9] +peggy_denom = factory/inj1vpp394hzv5rwz9de9xx60rxjl9cx82t0nt0nrz/test9 +decimals = 6 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BONK] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BONK +decimals = 18 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BOY] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/BOY +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAD] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAD +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADARA] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADARA +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADRAA] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MADRAA +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAY] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MAY +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MUD] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/MUD +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/TTS] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/TTS +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/bou] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/bou +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/lyl] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/lyl +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/ruk] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/ruk +decimals = 0 + +[factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/tis] +peggy_denom = factory/inj1vqt6a3y2t7efvdv7u3zl6ht7tg4a5733wljxy5/tis +decimals = 0 + +[factory/inj1vu3ywmx6jhknclgjetxftdf2fpgyxsndh9xy4t/ugop] +peggy_denom = factory/inj1vu3ywmx6jhknclgjetxftdf2fpgyxsndh9xy4t/ugop +decimals = 0 + +[factory/inj1vursge2u0xq88ff5dc9zl3wzxpaed6498pyurc/position] +peggy_denom = factory/inj1vursge2u0xq88ff5dc9zl3wzxpaed6498pyurc/position +decimals = 0 + +[factory/inj1vypjl0lxse2hpkpff9jpjcfpexnwhjhrl4jtxg/position] +peggy_denom = factory/inj1vypjl0lxse2hpkpff9jpjcfpexnwhjhrl4jtxg/position +decimals = 0 + +[factory/inj1vzup2kfsrsevjcesq3pyzc6dyz07ve8jc6m4kf/tv-t1] +peggy_denom = factory/inj1vzup2kfsrsevjcesq3pyzc6dyz07ve8jc6m4kf/tv-t1 +decimals = 0 + +[factory/inj1w0dj787d00t9t53vz9aszkcmdt0he6cmall5lz/position] +peggy_denom = factory/inj1w0dj787d00t9t53vz9aszkcmdt0he6cmall5lz/position +decimals = 0 + +[factory/inj1w2p89vprfp4rk9ql22fcat579jw6lcndaqenxk/position] +peggy_denom = factory/inj1w2p89vprfp4rk9ql22fcat579jw6lcndaqenxk/position +decimals = 0 + +[factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/inj-test] +peggy_denom = factory/inj1w4v783ckdxa4sg3xr7thtqy92u8pjt09cq84ns/inj-test +decimals = 0 + +[factory/inj1w64pxulxdnjnsgg88yg0wv4xtltuvdt60dxx52/usdcet] +peggy_denom = factory/inj1w64pxulxdnjnsgg88yg0wv4xtltuvdt60dxx52/usdcet +decimals = 0 + +[factory/inj1wcgxfkevadmdvrnfj6arpm0dulaap778gdfydy/position] +peggy_denom = factory/inj1wcgxfkevadmdvrnfj6arpm0dulaap778gdfydy/position +decimals = 0 + +[factory/inj1wdlaxz5j2kuvvw6j6zapkhst03w99uqu4qzjqr/position] +peggy_denom = factory/inj1wdlaxz5j2kuvvw6j6zapkhst03w99uqu4qzjqr/position +decimals = 0 + +[factory/inj1weg6gph4cwe7mnk06h7r640r9kjz3aah5vd8q2/position] +peggy_denom = factory/inj1weg6gph4cwe7mnk06h7r640r9kjz3aah5vd8q2/position +decimals = 0 + +[factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/ak] +peggy_denom = factory/inj1wfu4622uhs5kmfws8vse76sxac7qxu3pckhkph/ak +decimals = 0 + +[factory/inj1wljgztgggw6a96hgyypyl8fwmtgtedzkekhnxn/position] +peggy_denom = factory/inj1wljgztgggw6a96hgyypyl8fwmtgtedzkekhnxn/position +decimals = 0 + +[factory/inj1wlygmaypnsznpvnzjmlcfntua0k9smduh9ps3k/position] +peggy_denom = factory/inj1wlygmaypnsznpvnzjmlcfntua0k9smduh9ps3k/position +decimals = 0 + +[factory/inj1wn5jk6wn52c3lcz7tj2syt3tye7s7hzn49gnk7/position] +peggy_denom = factory/inj1wn5jk6wn52c3lcz7tj2syt3tye7s7hzn49gnk7/position +decimals = 0 + +[factory/inj1wpuctnwfks0c9wu8cysq8lj056a07h4lk8pffc/position] +peggy_denom = factory/inj1wpuctnwfks0c9wu8cysq8lj056a07h4lk8pffc/position +decimals = 0 + +[factory/inj1wqk89jknq4z4vk247r7qw83e3efq79pr0gcrac/TEST] +peggy_denom = factory/inj1wqk89jknq4z4vk247r7qw83e3efq79pr0gcrac/TEST +decimals = 18 + +[factory/inj1wr9djhlgvu6ssy9aw2f6xnzr6edl8p3fmdxvr5/position] +peggy_denom = factory/inj1wr9djhlgvu6ssy9aw2f6xnzr6edl8p3fmdxvr5/position +decimals = 0 + +[factory/inj1wtkwu7263hrj6qsyq59dvjtfq7eg3n97zmyew7/position] +peggy_denom = factory/inj1wtkwu7263hrj6qsyq59dvjtfq7eg3n97zmyew7/position +decimals = 0 + +[factory/inj1ww0njtv5man6as3evjy4aq3t08dnapf8wgvvpx/kusd] +peggy_denom = factory/inj1ww0njtv5man6as3evjy4aq3t08dnapf8wgvvpx/kusd +decimals = 0 + +[factory/inj1wyuxew5u8tdv2fcrjxqtewa75a0nhud26yx322/position] +peggy_denom = factory/inj1wyuxew5u8tdv2fcrjxqtewa75a0nhud26yx322/position +decimals = 0 + +[factory/inj1wz4c7eq2kqzchry9ppc5nv0llcr56v8s8xy3qy/ak] +peggy_denom = factory/inj1wz4c7eq2kqzchry9ppc5nv0llcr56v8s8xy3qy/ak +decimals = 0 + +[factory/inj1x098l8f3uxkfslk02n8ekct867qft2q9a43pez/position] +peggy_denom = factory/inj1x098l8f3uxkfslk02n8ekct867qft2q9a43pez/position +decimals = 0 + +[factory/inj1x0y2k45p8g4c5k09z6y4s62ann48td8dmmtr7p/position] +peggy_denom = factory/inj1x0y2k45p8g4c5k09z6y4s62ann48td8dmmtr7p/position +decimals = 0 + +[factory/inj1x33pdf4m2d89klwevndvdv408em5fskarss4j4/position] +peggy_denom = factory/inj1x33pdf4m2d89klwevndvdv408em5fskarss4j4/position +decimals = 0 + +[factory/inj1x36xltunr3hczrzzcjgsdz8a4rjrxvl3lwnyxx/position] +peggy_denom = factory/inj1x36xltunr3hczrzzcjgsdz8a4rjrxvl3lwnyxx/position +decimals = 0 + +[factory/inj1x52kjrdrfxlsgnfu67cstxfcf33ax97anne4qw/position] +peggy_denom = factory/inj1x52kjrdrfxlsgnfu67cstxfcf33ax97anne4qw/position +decimals = 0 + +[factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/Test] +peggy_denom = factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/Test +decimals = 0 + +[factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/test] +peggy_denom = factory/inj1x59f3klrj20uenzynq5va3r9jjn0g4req7wpc0/test +decimals = 6 + +[factory/inj1x5w6ggv3p67kpj9n6teprx3uqxfn4e5rpq82fv/position] +peggy_denom = factory/inj1x5w6ggv3p67kpj9n6teprx3uqxfn4e5rpq82fv/position +decimals = 0 + +[factory/inj1x63pwwsuwpmgnm3jjgm8v4cva05358082tqysd/position] +peggy_denom = factory/inj1x63pwwsuwpmgnm3jjgm8v4cva05358082tqysd/position +decimals = 0 + +[factory/inj1x66srsf7gnm0fz3p6ceazp7h9p60hyxmxqh0s3/position] +peggy_denom = factory/inj1x66srsf7gnm0fz3p6ceazp7h9p60hyxmxqh0s3/position +decimals = 0 + +[factory/inj1x7c4naavu5g6325xkxgaffll6q033prgpe86q3/nUSD] +peggy_denom = factory/inj1x7c4naavu5g6325xkxgaffll6q033prgpe86q3/nUSD +decimals = 18 + +[factory/inj1x8lczzuhxpp5nhf72nfv0e74vkjxvqag05clpn/position] +peggy_denom = factory/inj1x8lczzuhxpp5nhf72nfv0e74vkjxvqag05clpn/position +decimals = 0 + +[factory/inj1x8rucyh7paah9dlldcfcfuscl3scdtus26m822/position] +peggy_denom = factory/inj1x8rucyh7paah9dlldcfcfuscl3scdtus26m822/position +decimals = 0 + +[factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test] +peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test +decimals = 18 + +[factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test1] +peggy_denom = factory/inj1x8v44tuhlfk8f64j4vehftwggfzdjtthmeddwm/test1 +decimals = 8 + +[factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi] +peggy_denom = factory/inj1xawhm3d8lf9n0rqdljpal033yackja3dt0kvp0/nobi +decimals = 6 + +[factory/inj1xcj5al0gdrs7mwcn84jhsj5a2kgsqj4c9qk5en/injMiam] +peggy_denom = factory/inj1xcj5al0gdrs7mwcn84jhsj5a2kgsqj4c9qk5en/injMiam +decimals = 0 + +[factory/inj1xcmem6znjw0tevhewzaj9vgck3j5jggfc47ue0/position] +peggy_denom = factory/inj1xcmem6znjw0tevhewzaj9vgck3j5jggfc47ue0/position +decimals = 0 + +[factory/inj1xcn064p3w42wmuple0tqxv2zgkv2pyuzl3u5px/position] +peggy_denom = factory/inj1xcn064p3w42wmuple0tqxv2zgkv2pyuzl3u5px/position +decimals = 0 + +[factory/inj1xfjnl464vcmwzx82tcjmgkde68hra4rhetq2c5/position] +peggy_denom = factory/inj1xfjnl464vcmwzx82tcjmgkde68hra4rhetq2c5/position +decimals = 0 + +[factory/inj1xgf4n9sa7rpedzngd66m49wd74aywptnujwqeq/position] +peggy_denom = factory/inj1xgf4n9sa7rpedzngd66m49wd74aywptnujwqeq/position +decimals = 0 + +[factory/inj1xh3ced9w5hkak0te7gcqejlg0uskv3xsqw6nqr/position] +peggy_denom = factory/inj1xh3ced9w5hkak0te7gcqejlg0uskv3xsqw6nqr/position +decimals = 0 + +[factory/inj1xh928v0zwy54nv3d9m9splk0nu9jfnugg8pmkk/asg] +peggy_denom = factory/inj1xh928v0zwy54nv3d9m9splk0nu9jfnugg8pmkk/asg +decimals = 0 + +[factory/inj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn/lp] +peggy_denom = factory/inj1xl7n4zw38878cret04u6vk3m2r6z8upepweccn/lp +decimals = 0 + +[factory/inj1xlkkl7hvcvk2thxn6gf706eykx5j4j57mak7hp/position] +peggy_denom = factory/inj1xlkkl7hvcvk2thxn6gf706eykx5j4j57mak7hp/position +decimals = 0 + +[factory/inj1xmgw5eyauaftulpu0xaeafhre33q02vf6pc4ts/position] +peggy_denom = factory/inj1xmgw5eyauaftulpu0xaeafhre33q02vf6pc4ts/position +decimals = 0 + +[factory/inj1xpx6s84xjvlgz63y0nkw8nw66zu3ezzxwwx8wh/position] +peggy_denom = factory/inj1xpx6s84xjvlgz63y0nkw8nw66zu3ezzxwwx8wh/position +decimals = 0 + +[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/PUGGO] +peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/PUGGO +decimals = 0 + +[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test1] +peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test1 +decimals = 0 + +[factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test2] +peggy_denom = factory/inj1xrhrlnawe9g6ct95nurs8sfehcq8tsm35c4al2/Test2 +decimals = 0 + +[factory/inj1xsadv6kc7v6jhauunr8qy8angg9ttx752j4ama/position] +peggy_denom = factory/inj1xsadv6kc7v6jhauunr8qy8angg9ttx752j4ama/position +decimals = 0 + +[factory/inj1xug34v8e887uzcc9mr2pql06h2ztvhxxm6asll/utest] +peggy_denom = factory/inj1xug34v8e887uzcc9mr2pql06h2ztvhxxm6asll/utest +decimals = 0 + +[factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/INJECT] +peggy_denom = factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/INJECT +decimals = 6 + +[factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/ak] +peggy_denom = factory/inj1xv7td74ss4q0rrvsuey9qrzqc8qj89zvlh0kmj/ak +decimals = 0 + +[factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DGNZ] +peggy_denom = factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DGNZ +decimals = 6 + +[factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DREAM] +peggy_denom = factory/inj1xwdxxej579ns9gcs80jfxvl50yctvptxtpn2fa/DREAM +decimals = 6 + +[factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/kira] +peggy_denom = factory/inj1xy3kvlr4q4wdd6lrelsrw2fk2ged0any44hhwq/kira +decimals = 6 + +[factory/inj1xyr5tt9ltrdm9uvnerwtv4sz9hllqvgt3pkea2/position] +peggy_denom = factory/inj1xyr5tt9ltrdm9uvnerwtv4sz9hllqvgt3pkea2/position +decimals = 0 + +[factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/testtoken] +peggy_denom = factory/inj1xyufatym0y7dlv2qzm7p5rkythh9n6wa588yl6/testtoken +decimals = 6 + +[factory/inj1xzfme2xzc2zcwdvkhkklssudaeyeax5mpfu45c/kira] +peggy_denom = factory/inj1xzfme2xzc2zcwdvkhkklssudaeyeax5mpfu45c/kira +decimals = 6 + +[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/IPDAI] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/IPDAI +decimals = 0 + +[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Ipdai] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Ipdai +decimals = 0 + +[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Test1] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/Test1 +decimals = 6 + +[factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ak] +peggy_denom = factory/inj1y3g4wpgnc4s28gd9ure3vwm9cmvmdphml6mtul/ak +decimals = 0 + +[factory/inj1y3g6p8hsdk2tx85nhftujuz2femtztwpzwxlun/position] +peggy_denom = factory/inj1y3g6p8hsdk2tx85nhftujuz2femtztwpzwxlun/position +decimals = 0 + +[factory/inj1y3uz825u9x4yr440x7dpfpz9p93k2ua3mfsj8m/position] +peggy_denom = factory/inj1y3uz825u9x4yr440x7dpfpz9p93k2ua3mfsj8m/position +decimals = 0 + +[factory/inj1y40ej8fymv3y3002y7vs38ad8wmkfx70x6p9fl/position] +peggy_denom = factory/inj1y40ej8fymv3y3002y7vs38ad8wmkfx70x6p9fl/position +decimals = 0 + +[factory/inj1y8mflyjjgrtmtmufn9cpt9snkyaksv8yyjfn7e/position] +peggy_denom = factory/inj1y8mflyjjgrtmtmufn9cpt9snkyaksv8yyjfn7e/position +decimals = 0 + +[factory/inj1y8n40n0r4qhpv03refwjf2w8qeskn7wz9papy9/position] +peggy_denom = factory/inj1y8n40n0r4qhpv03refwjf2w8qeskn7wz9papy9/position +decimals = 0 + +[factory/inj1y9ns569xn73s2dez3edfl8x9rldhlnmf342x2v/uLP] +peggy_denom = factory/inj1y9ns569xn73s2dez3edfl8x9rldhlnmf342x2v/uLP +decimals = 0 + +[factory/inj1yflxv3tzd0ya8rsqzl8y5e2fanzmwczzlzrh96/position] +peggy_denom = factory/inj1yflxv3tzd0ya8rsqzl8y5e2fanzmwczzlzrh96/position +decimals = 0 + +[factory/inj1yfxejgk5n6jljvf9f5sxex7k22td5vkqnugnvm/ak] +peggy_denom = factory/inj1yfxejgk5n6jljvf9f5sxex7k22td5vkqnugnvm/ak +decimals = 6 + +[factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk] +peggy_denom = factory/inj1yg24mn8enl5e6v4jl2j6cce47mx4vyd6e8dpck/milk +decimals = 6 + +[factory/inj1yhyhvdj0lsjnvvrsv6r0wplzvg5w3ye5nskecp/position] +peggy_denom = factory/inj1yhyhvdj0lsjnvvrsv6r0wplzvg5w3ye5nskecp/position +decimals = 0 + +[factory/inj1ykvprwchmpgm632hsqwwmnwquazrpxmdykap3m/position] +peggy_denom = factory/inj1ykvprwchmpgm632hsqwwmnwquazrpxmdykap3m/position +decimals = 0 + +[factory/inj1yl97tnwqftg37d6ccjvd4zq3vh4mxynp6e2ldp/position] +peggy_denom = factory/inj1yl97tnwqftg37d6ccjvd4zq3vh4mxynp6e2ldp/position +decimals = 0 + +[factory/inj1ym7sl98neeh4t7gq8z4we3ugp4s68ghpvvkyas/position] +peggy_denom = factory/inj1ym7sl98neeh4t7gq8z4we3ugp4s68ghpvvkyas/position +decimals = 0 + +[factory/inj1ymah0zcd9ujkgaqaldfks6drttmxhwun05fvpv/kUSD] +peggy_denom = factory/inj1ymah0zcd9ujkgaqaldfks6drttmxhwun05fvpv/kUSD +decimals = 0 + +[factory/inj1ymqf6eyt00yxxqg40c8jrn9ey3ydms52ep39wh/position] +peggy_denom = factory/inj1ymqf6eyt00yxxqg40c8jrn9ey3ydms52ep39wh/position +decimals = 0 + +[factory/inj1yn4sntvmxmmzejlq7uer85g0jn0qr884qnhhkk/position] +peggy_denom = factory/inj1yn4sntvmxmmzejlq7uer85g0jn0qr884qnhhkk/position +decimals = 0 + +[factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VIC] +peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/VIC +decimals = 6 + +[factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/injtokens] +peggy_denom = factory/inj1yq4dwvnujpr9m8w4m5uq3e8hu0xxnw0eypzr0k/injtokens +decimals = 0 + +[factory/inj1yrcescuerfwmuk9fcsmzrcqxjk0l2crkva7w7q/position] +peggy_denom = factory/inj1yrcescuerfwmuk9fcsmzrcqxjk0l2crkva7w7q/position +decimals = 0 + +[factory/inj1yreaxfwm7hrnft6qckl9g8xc3p827qm06c90sp/position] +peggy_denom = factory/inj1yreaxfwm7hrnft6qckl9g8xc3p827qm06c90sp/position +decimals = 0 + +[factory/inj1ysw6mfrdusl7t68axsjzva7uf805zjrf35uzf4/position] +peggy_denom = factory/inj1ysw6mfrdusl7t68axsjzva7uf805zjrf35uzf4/position +decimals = 0 + +[factory/inj1ysym7p26k099yftp7pecfefefqu6y8lpg5380e/position] +peggy_denom = factory/inj1ysym7p26k099yftp7pecfefefqu6y8lpg5380e/position +decimals = 0 + +[factory/inj1ytsgm4785kt2knde6zs9dr24w0vhsaqptma6wh/position] +peggy_denom = factory/inj1ytsgm4785kt2knde6zs9dr24w0vhsaqptma6wh/position +decimals = 0 + +[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/test] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/test +decimals = 6 + +[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtt] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtt +decimals = 6 + +[factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testttt] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testttt +decimals = 6 + +[factory/inj1yuhlreumk975lw4ne3qp0r3cvp4zphvpjm0x3a/bINJ] +peggy_denom = factory/inj1yuhlreumk975lw4ne3qp0r3cvp4zphvpjm0x3a/bINJ +decimals = 0 + +[factory/inj1yvfgszkzz5elj0vt8zwnua9fqkgmep83kety09/position] +peggy_denom = factory/inj1yvfgszkzz5elj0vt8zwnua9fqkgmep83kety09/position +decimals = 0 + +[factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIOR] +peggy_denom = factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIOR +decimals = 6 + +[factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIORi] +peggy_denom = factory/inj1yvu45hmxcn53m4uwrklzpemxhfpgcvw5klglyd/LIORi +decimals = 6 + +[factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/ak] +peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/ak +decimals = 0 + +[factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk2] +peggy_denom = factory/inj1yxyprnlhyupl2lmpwsjhnux70uz8d5rgqussvc/bonk2 +decimals = 0 + +[factory/inj1yy6u35zlmjz9wr3judrakha5t896y2zu8l96ld/position] +peggy_denom = factory/inj1yy6u35zlmjz9wr3judrakha5t896y2zu8l96ld/position +decimals = 0 + +[factory/inj1yzctp4r2g9phkam9zhensdasar83h0u4hrq0ap/MEME] +peggy_denom = factory/inj1yzctp4r2g9phkam9zhensdasar83h0u4hrq0ap/MEME +decimals = 6 + +[factory/inj1yzl27sewa2447vtvnp00r02fca8sw3vyc57fkl/position] +peggy_denom = factory/inj1yzl27sewa2447vtvnp00r02fca8sw3vyc57fkl/position +decimals = 0 + +[factory/inj1z2mvkyphlykuayz5jk5geujpc2s5h6x5p40gkq/position] +peggy_denom = factory/inj1z2mvkyphlykuayz5jk5geujpc2s5h6x5p40gkq/position +decimals = 0 + +[factory/inj1z2yh32tk3gu8z9shasyrhh42vwsuljmcft82ut/position] +peggy_denom = factory/inj1z2yh32tk3gu8z9shasyrhh42vwsuljmcft82ut/position +decimals = 0 + +[factory/inj1z3qduw4n3uq549xx47sertmrclyratf498x63e/position] +peggy_denom = factory/inj1z3qduw4n3uq549xx47sertmrclyratf498x63e/position +decimals = 0 + +[factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken] +peggy_denom = factory/inj1z426atp9k68uv49kaam7m0vnehw5fulxkyvde0/shuriken +decimals = 6 + +[factory/inj1z4phq0clwmns79duanyg7nk2eankp3we7h4sdk/position] +peggy_denom = factory/inj1z4phq0clwmns79duanyg7nk2eankp3we7h4sdk/position +decimals = 0 + +[factory/inj1z7jcqanqnw969ad6wlucxn9v0t3z3j6swnunvs/lp] +peggy_denom = factory/inj1z7jcqanqnw969ad6wlucxn9v0t3z3j6swnunvs/lp +decimals = 0 + +[factory/inj1z8hv3ad5uskyk8rqtm7aje8gnml5y4rrs97txq/position] +peggy_denom = factory/inj1z8hv3ad5uskyk8rqtm7aje8gnml5y4rrs97txq/position +decimals = 0 + +[factory/inj1z9vd7p6pjgun9h8g0c8snuu03nrqer0sjuuhdf/position] +peggy_denom = factory/inj1z9vd7p6pjgun9h8g0c8snuu03nrqer0sjuuhdf/position +decimals = 0 + +[factory/inj1zcd6q9pgvlqg77uap9fy89a0ljpwm2wnaskf0g/position] +peggy_denom = factory/inj1zcd6q9pgvlqg77uap9fy89a0ljpwm2wnaskf0g/position +decimals = 0 + +[factory/inj1zdhmeaydxdhdd35wa4edrf748rpma662vrenk3/position] +peggy_denom = factory/inj1zdhmeaydxdhdd35wa4edrf748rpma662vrenk3/position +decimals = 0 + +[factory/inj1zf6dferymtlutcycrlddy9gy979sgsp6wj9046/position] +peggy_denom = factory/inj1zf6dferymtlutcycrlddy9gy979sgsp6wj9046/position +decimals = 0 + +[factory/inj1zgrjmn0ak8w566fvruttuzu22lyuqgm0gwtn6x/ninja] +peggy_denom = factory/inj1zgrjmn0ak8w566fvruttuzu22lyuqgm0gwtn6x/ninja +decimals = 0 + +[factory/inj1zhwkngnvdh6wewmp75ka7q6jn3c4z8sglrvfgl/position] +peggy_denom = factory/inj1zhwkngnvdh6wewmp75ka7q6jn3c4z8sglrvfgl/position +decimals = 0 + +[factory/inj1zmunv4qvrnl5023drl008kqnm5dp5luwxylf4p/position] +peggy_denom = factory/inj1zmunv4qvrnl5023drl008kqnm5dp5luwxylf4p/position +decimals = 0 + +[factory/inj1zmy72r0sl4q85kxszv5jljqsvqsq4geqg8yvcz/position] +peggy_denom = factory/inj1zmy72r0sl4q85kxszv5jljqsvqsq4geqg8yvcz/position +decimals = 0 + +[factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test3] +peggy_denom = factory/inj1znf9vj0gjl0uhewdqa7eqyvrjgmyqvmc7tvwrm/test3 +decimals = 0 + +[factory/inj1zr0qfmzlputn5x8g62l383wasj6tsqvu9l6fcv/position] +peggy_denom = factory/inj1zr0qfmzlputn5x8g62l383wasj6tsqvu9l6fcv/position +decimals = 0 + +[factory/inj1zszapyz8f2meqqccarkervwtcqq6994n6e4uce/position] +peggy_denom = factory/inj1zszapyz8f2meqqccarkervwtcqq6994n6e4uce/position +decimals = 0 + +[factory/inj1ztude0usp9vkxmaeh7pggx5lcc80rrwj97l3pz/position] +peggy_denom = factory/inj1ztude0usp9vkxmaeh7pggx5lcc80rrwj97l3pz/position +decimals = 0 + +[factory/inj1ztz8ftj8c87xczhfa24t0enntz86e0u4dp7sp3/position] +peggy_denom = factory/inj1ztz8ftj8c87xczhfa24t0enntz86e0u4dp7sp3/position +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj10khun6rk82dp2wdajh6z3vjsrac6wpuywt22yy] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj10khun6rk82dp2wdajh6z3vjsrac6wpuywt22yy +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj12yzugqf4uchk7y3j4mw5epwh88rw7hc7k79x2y] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj12yzugqf4uchk7y3j4mw5epwh88rw7hc7k79x2y +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj144r9lg7zjsmxkz34wa9cjj83mamfav3yr7pguc] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj144r9lg7zjsmxkz34wa9cjj83mamfav3yr7pguc +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1989lj26y5jcartkvj2x55vnef8kf5ayl6p67gw] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1989lj26y5jcartkvj2x55vnef8kf5ayl6p67gw +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1etyvn2kgsgl0fwlcwljsq7l85cep878v7n0n3z] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1etyvn2kgsgl0fwlcwljsq7l85cep878v7n0n3z +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1fm2wjk79v79qdm5nprxrevnmjxlnhpvclg84rq] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1fm2wjk79v79qdm5nprxrevnmjxlnhpvclg84rq +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1haaudm8yme03h45aflzerlsng098prk83pxany] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1haaudm8yme03h45aflzerlsng098prk83pxany +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1j3twfggy7t48hq3rkwnt9lf3q7q3ud58jzdnx6] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1j3twfggy7t48hq3rkwnt9lf3q7q3ud58jzdnx6 +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1jd2sq5eh25dszupf08dgnhha5dufmp5u85zhgj] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1jd2sq5eh25dszupf08dgnhha5dufmp5u85zhgj +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1juujgtcttsykxmqn0rr5whsr0djc73pgawr622] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1juujgtcttsykxmqn0rr5whsr0djc73pgawr622 +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1l0ge2pwpr74ck23p99f29p7tpkuj6uuhxrvt5x] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1l0ge2pwpr74ck23p99f29p7tpkuj6uuhxrvt5x +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1pllmhm80hnlh56u4aledjqye989cf83hhfwrxk] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1pllmhm80hnlh56u4aledjqye989cf83hhfwrxk +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1qpha543j56js3nfx0ywd3m5av7qhl68qcad8h4] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1qpha543j56js3nfx0ywd3m5av7qhl68qcad8h4 +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rejyjsu3rdgx0w9l3v07ar220n5s7tawg48p2a] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rejyjsu3rdgx0w9l3v07ar220n5s7tawg48p2a +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rltxjlvs4wz53jldufklaaxar73n5ytpcpacfp] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1rltxjlvs4wz53jldufklaaxar73n5ytpcpacfp +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1ru65qlj534a8wu4guw9txetpkev43ausxdsv3s] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1ru65qlj534a8wu4guw9txetpkev43ausxdsv3s +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1s5v5rmqmplwa68fj26rztlyh0dzy83sqd255xq] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1s5v5rmqmplwa68fj26rztlyh0dzy83sqd255xq +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1sln84pshkreuvash6js0vu2gzcnwfg34lugwt7] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1sln84pshkreuvash6js0vu2gzcnwfg34lugwt7 +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1stjq2xyc7mtxp3ms60rauw2v6fvpfdl04d2qxj] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1stjq2xyc7mtxp3ms60rauw2v6fvpfdl04d2qxj +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1wm6uhg9ht6089c8h3yev2mt454s54v8kanxmcf] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1wm6uhg9ht6089c8h3yev2mt454s54v8kanxmcf +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1xdc8dhazn69vt4u6elpcn0kwxlmq0hjtjwytq5] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1xdc8dhazn69vt4u6elpcn0kwxlmq0hjtjwytq5 +decimals = 0 + +[factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1y3pkfkrr3nr23320a3w4t2x5qlfk0l5w0s6rwl] +peggy_denom = factory/inj1zxd4pvdczkw52yhum0u23vsxzhqr7jyuau7cef/lpinj1y3pkfkrr3nr23320a3w4t2x5qlfk0l5w0s6rwl +decimals = 0 + +[factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj136zzmzanrgth7hw4f4z09eqym5ur76wr664la2] +peggy_denom = factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj136zzmzanrgth7hw4f4z09eqym5ur76wr664la2 +decimals = 0 + +[factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj1rfl7neqrtmhmujrktpll075latrq760c96emkc] +peggy_denom = factory/inj1zzm7s6thfkfr2hhpaq6m2c7xc0g3nek7gvrcht/inj1rfl7neqrtmhmujrktpll075latrq760c96emkc +decimals = 0 + +[good] +peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/good +decimals = 6 + +[hINJ] +peggy_denom = factory/inj1hdvy6tl89llqy3ze8lv6mz5qh66sx9enn0jxg6/inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc +decimals = 18 + +[hng] +peggy_denom = factory/inj1hslxdwcszyjesl0e7q339qvqme8jtpkgvfw667/hng +decimals = 6 + +[iUSD] +peggy_denom = factory/inj16a2uxar2v8uyj3xanx6tyvzaqmlqj6jj03829u/nUSD +decimals = 18 + +[ibc/2CD6478D5AFA173C86448E008B760934166AED04C3968874EA6E44D2ECEA236D] +peggy_denom = ibc/2CD6478D5AFA173C86448E008B760934166AED04C3968874EA6E44D2ECEA236D +decimals = 0 + +[ibc/45B1C97F9EF078E4E4E0DEBA0CCE451F7CCA62C051DD29A4C57B7C31F8EBF87D] +peggy_denom = ibc/45B1C97F9EF078E4E4E0DEBA0CCE451F7CCA62C051DD29A4C57B7C31F8EBF87D +decimals = 0 + +[ibc/51EF06F0C3D94C42CBB77F2E9FD853862B29D8524D69A389F761C94F12DDABFB] +peggy_denom = ibc/51EF06F0C3D94C42CBB77F2E9FD853862B29D8524D69A389F761C94F12DDABFB +decimals = 0 + +[ibc/6767A6D74DE6E67F282BF0DA664960588594E10FAE25C7568D0E9714854A614A] +peggy_denom = ibc/6767A6D74DE6E67F282BF0DA664960588594E10FAE25C7568D0E9714854A614A +decimals = 0 + +[ibc/728275E9A4A5485F9EE43886013B01426A4A5C6E9747C8F0F422492B74BF0DD5] +peggy_denom = ibc/728275E9A4A5485F9EE43886013B01426A4A5C6E9747C8F0F422492B74BF0DD5 +decimals = 0 + +[ibc/85F860A9556E285E2F5E6CBC39F04E8E7A497488B9E7D11912030EB49D5E2CCB] +peggy_denom = ibc/85F860A9556E285E2F5E6CBC39F04E8E7A497488B9E7D11912030EB49D5E2CCB +decimals = 0 + +[ibc/86D3C0CC2008F9254902A58D2B24237BEFB9194F8CF1FF7E29312D932C31E841] +peggy_denom = ibc/86D3C0CC2008F9254902A58D2B24237BEFB9194F8CF1FF7E29312D932C31E841 +decimals = 0 + +[ibc/8D50C7D7F9EE586BC705D088C68601ACA5D192C63F6043B785676963074774B3] +peggy_denom = ibc/8D50C7D7F9EE586BC705D088C68601ACA5D192C63F6043B785676963074774B3 +decimals = 0 + +[ibc/97498452BF27CC90656FD7D6EFDA287FA2BFFFF3E84691C84CB9E0451F6DF0A4] +peggy_denom = ibc/97498452BF27CC90656FD7D6EFDA287FA2BFFFF3E84691C84CB9E0451F6DF0A4 +decimals = 0 + +[ibc/9E7EA73E3A4BA56CE72A4E574F529D43DABFEB1BDE5451515A21D6828E52EED5] +peggy_denom = ibc/9E7EA73E3A4BA56CE72A4E574F529D43DABFEB1BDE5451515A21D6828E52EED5 +decimals = 0 + +[ibc/9EBB1486F41AC90325E2BDB23F1EBE57BD6B0DDE25CC9E3051A5EAE2A589B032] +peggy_denom = ibc/9EBB1486F41AC90325E2BDB23F1EBE57BD6B0DDE25CC9E3051A5EAE2A589B032 +decimals = 0 + +[ibc/A2BBF23BE4234FD27AEF7269B30A124B91E3EB2D7F33E756B5EC2FC1F3DCF0B3] +peggy_denom = ibc/A2BBF23BE4234FD27AEF7269B30A124B91E3EB2D7F33E756B5EC2FC1F3DCF0B3 +decimals = 0 + +[ibc/B0D9A85855FFB4C6472AD514B48C91275453B2AFC501472EE29895C400463E6B] +peggy_denom = ibc/B0D9A85855FFB4C6472AD514B48C91275453B2AFC501472EE29895C400463E6B +decimals = 0 + +[ibc/B8F94CEDA547914DC365232034474E8AFE503304BDE91D281C3AB5024060A491] +peggy_denom = ibc/B8F94CEDA547914DC365232034474E8AFE503304BDE91D281C3AB5024060A491 +decimals = 0 + +[ibc/BE8B9A10C7F6E014F617E4C883D24A8E34A4399C2E18D583DD9506CEADF0D7E5] +peggy_denom = ibc/BE8B9A10C7F6E014F617E4C883D24A8E34A4399C2E18D583DD9506CEADF0D7E5 +decimals = 0 + +[ibc/C738E90C95E4D7A405B7D3D8992EC554DDCC2079991AB5FF67051A99E02C95A1] +peggy_denom = ibc/C738E90C95E4D7A405B7D3D8992EC554DDCC2079991AB5FF67051A99E02C95A1 +decimals = 0 + +[ibc/C877F38C8B5172A906FBFDEBB243B8313C58CCF2F534C1EC5DD6819662051DDE] +peggy_denom = ibc/C877F38C8B5172A906FBFDEBB243B8313C58CCF2F534C1EC5DD6819662051DDE +decimals = 0 + +[ibc/D9C20413CBBD2CD0AA87141639F7048597F2A90A80F63D155A91F483BD04CFA3] +peggy_denom = ibc/D9C20413CBBD2CD0AA87141639F7048597F2A90A80F63D155A91F483BD04CFA3 +decimals = 0 + +[ibc/E1932BA371D397A1FD6066792D585348090F3764E2BA4F08298803ED8A76F226] +peggy_denom = ibc/E1932BA371D397A1FD6066792D585348090F3764E2BA4F08298803ED8A76F226 +decimals = 0 + +[ibc/E40FBDD3CB829D3A57D8A5588783C39620B4E4F26B08970DE0F8173D60E3E6E1] +peggy_denom = ibc/E40FBDD3CB829D3A57D8A5588783C39620B4E4F26B08970DE0F8173D60E3E6E1 +decimals = 0 + +[ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839] +peggy_denom = ibc/EBD5A24C554198EBAF44979C5B4D2C2D312E6EBAB71962C92F735499C7575839 +decimals = 6 + +[ibc/F14B1670FD61AC2BA511C6260D940A120A47B27AAF8322FCDBBAD8E9967BB518] +peggy_denom = ibc/F14B1670FD61AC2BA511C6260D940A120A47B27AAF8322FCDBBAD8E9967BB518 +decimals = 0 + +[inj-test] +peggy_denom = factory/inj1dskr075p0ktts987r8h3jxcjce6h73flvmm8a4/inj-test +decimals = 6 + +[inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9] +peggy_denom = inj12ngevx045zpvacus9s6anr258gkwpmthnz80e9 +decimals = 8 + +[inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw] +peggy_denom = inj12sqy9uzzl3h3vqxam7sz9f0yvmhampcgesh3qw +decimals = 6 + +[inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp] +peggy_denom = inj14eaxewvy7a3fk948c3g3qham98mcqpm8v5y0dp +decimals = 6 + +[inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc] +peggy_denom = inj1mz7mfhgx8tuvjqut03qdujrkzwlx9xhcj6yldc +decimals = 18 + +[inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4] +peggy_denom = inj1plsk58sxqjw9828aqzeskmc8xy9eu5kppw3jg4 +decimals = 8 + +[injjj] +peggy_denom = factory/inj1dqagu9cx72lph0rg3ghhuwj20cw9f8x7rq2zz6/injjj +decimals = 6 + +[injo] +peggy_denom = factory/inj1kt6ujkzdfv9we6t3ca344d3wquynrq6dg77qju/injo +decimals = 6 + +[injtest1] +peggy_denom = factory/inj1ef5ddgx4q83a8mmap2gxsc7w5q5pj6rmfhjaex/inj-test1 +decimals = 6 + +[kUSD] +peggy_denom = factory/inj1kheekln6ukwx36hwa3d4u05a0yjnf97kjkes4h/kUSD +decimals = 6 + +[lol] +peggy_denom = factory/inj1x5h2d974gqwcskvk4pdtf25f7heml469e756ez/lol +decimals = 6 + +[lootbox1] +peggy_denom = factory/inj1llr45x92t7jrqtxvc02gpkcqhqr82dvyzkr4mz/lootbox1 +decimals = 0 + +[lootbox22] +peggy_denom = factory/inj1aetmaq5pswvfg6nhvgd4lt94qmg23ka3ljgxlm/lootbox22 +decimals = 0 + +[lym] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/lym +decimals = 6 + +[mINJo] +peggy_denom = factory/inj1tnphav95y6ekpvnta3ztsdyhla0543mkrfy7af/mINJo +decimals = 6 + +[mani] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/mani +decimals = 6 + +[mnk] +peggy_denom = factory/inj1ckddr5lfwjvm2lvtzra0ftx7066seqr3navva0/mnk +decimals = 6 + +[nATOM] +peggy_denom = inj16jf4qkcarp3lan4wl2qkrelf4kduvvujwg0780 +decimals = 6 + +[nINJ] +peggy_denom = inj13xlpypcwl5fuc84uhqzzqumnrcfpptyl6w3vrf +decimals = 18 + +[nTIA] +peggy_denom = inj1fzquxxxam59z6fzewy2hvvreeh3m04x83zg4vv +decimals = 6 + +[nUSD] +peggy_denom = factory/inj13l36tutxv09s72adll47g3jykymj305zuw42r0/nUSD +decimals = 18 + +[nUSDT] +peggy_denom = inj1cy9hes20vww2yr6crvs75gxy5hpycya2hmjg9s +decimals = 6 + +[nWETH] +peggy_denom = inj1kehk5nvreklhylx22p3x0yjydfsz9fv3fvg5xt +decimals = 18 + +[napejas] +peggy_denom = factory/inj148sjw9h9n3n8gjw37reetwdlc7v4hfhl8r7vv3/napejas +decimals = 6 + +[ninja] +peggy_denom = factory/inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0/ninja +decimals = 6 + +[pal] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pal +decimals = 6 + +[peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9] +peggy_denom = peggy0x1902e18fEB1234D00d880f1fACA5C8d74e8501E9 +decimals = 18 + +[peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599] +peggy_denom = peggy0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 +decimals = 8 + +[peggy0x43123e1d077351267113ada8bE85A058f5D492De] +peggy_denom = peggy0x43123e1d077351267113ada8bE85A058f5D492De +decimals = 6 + +[peggy0x43871C5e85144EC340A3A63109F3F11C3745FE4E] +peggy_denom = peggy0x43871C5e85144EC340A3A63109F3F11C3745FE4E +decimals = 18 + +[peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7] +peggy_denom = peggy0x44C21afAaF20c270EBbF5914Cfc3b5022173FEB7 +decimals = 0 + +[peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369] +peggy_denom = peggy0x5Ac3A2F6205a481C7a8984E4291E450e52cd0369 +decimals = 18 + +[peggy0x6F3050fa31c4CC2bB4A213B7d53c220Ac04Dd59D] +peggy_denom = peggy0x6F3050fa31c4CC2bB4A213B7d53c220Ac04Dd59D +decimals = 18 + +[peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8] +peggy_denom = peggy0x6c3ea9036406852006290770BEdFcAbA0e23A0e8 +decimals = 6 + +[peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB] +peggy_denom = peggy0x8D983cb9388EaC77af0474fA441C4815500Cb7BB +decimals = 6 + +[peggy0x91Efc46E7C52ab1fFca310Ca7972AeA48891E5CD] +peggy_denom = peggy0x91Efc46E7C52ab1fFca310Ca7972AeA48891E5CD +decimals = 18 + +[peggy0x9ff0b0dA21e77D775eB27A4845eCbF9700bfCF0B] +peggy_denom = peggy0x9ff0b0dA21e77D775eB27A4845eCbF9700bfCF0B +decimals = 18 + +[peggy0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6] +peggy_denom = peggy0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6 +decimals = 18 + +[peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c] +peggy_denom = peggy0xBe8d71D26525440A03311cc7fa372262c5354A3c +decimals = 18 + +[peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2] +peggy_denom = peggy0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 +decimals = 18 + +[peggy0xC2C527C0CACF457746Bd31B2a698Fe89de2b6d49] +peggy_denom = peggy0xC2C527C0CACF457746Bd31B2a698Fe89de2b6d49 +decimals = 6 + +[peggy0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C] +peggy_denom = peggy0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C +decimals = 6 + +[peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080] +peggy_denom = peggy0xFfFFfFff1FcaCBd218EDc0EbA20Fc2308C778080 +decimals = 10 + +[peggy0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0] +peggy_denom = peggy0xaA8E23Fb1079EA71e0a56F48a2aA51851D8433D0 +decimals = 6 + +[peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30] +peggy_denom = peggy0xe28b3b32b6c345a34ff64674606124dd5aceca30 +decimals = 18 + +[peggy0xf9152067989BDc8783fF586624124C05A529A5D1] +peggy_denom = peggy0xf9152067989BDc8783fF586624124C05A529A5D1 +decimals = 6 + +[pip] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pip +decimals = 6 + +[pli] +peggy_denom = factory/inj1jx7r5vjr7ykdg4weseluq7ta90emw02jyz5mt5/pli +decimals = 6 + +[pop] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pop +decimals = 6 + +[pot] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pot +decimals = 6 + +[pqc] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/pqc +decimals = 6 + +[pvs] +peggy_denom = factory/inj1rc34aepsrw03kczyskra9dlk9fzkx9jf48ccjc/pvs +decimals = 6 + +[red] +peggy_denom = factory/inj18xg8yh445ernwxdquklwpngffqv3agfyt5uqqs/red +decimals = 6 + +[rereerre] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/rereerre +decimals = 6 + +[rpo] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/rpo +decimals = 6 + +[rrrt] +peggy_denom = factory/inj13rgc9jwc3q7day42a7r2znhyvvvaauvlpuxwvh/rrrt +decimals = 6 + +[s] +peggy_denom = factory/inj1tvml37kkfymrwmx583ed9eyur3jjq72ftf67rc/inj-fuckingcomeon +decimals = 6 + +[sUSDE] +peggy_denom = peggy0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 +decimals = 18 + +[share1] +peggy_denom = share1 +decimals = 18 + +[share10] +peggy_denom = share10 +decimals = 18 + +[share100] +peggy_denom = share100 +decimals = 18 + +[share101] +peggy_denom = share101 +decimals = 18 + +[share102] +peggy_denom = share102 +decimals = 18 + +[share103] +peggy_denom = share103 +decimals = 18 + +[share104] +peggy_denom = share104 +decimals = 18 + +[share105] +peggy_denom = share105 +decimals = 18 + +[share106] +peggy_denom = share106 +decimals = 18 + +[share107] +peggy_denom = share107 +decimals = 18 + +[share108] +peggy_denom = share108 +decimals = 18 + +[share109] +peggy_denom = share109 +decimals = 18 + +[share11] +peggy_denom = share11 +decimals = 18 + +[share110] +peggy_denom = share110 +decimals = 18 + +[share111] +peggy_denom = share111 +decimals = 18 + +[share112] +peggy_denom = share112 +decimals = 18 + +[share113] +peggy_denom = share113 +decimals = 18 + +[share114] +peggy_denom = share114 +decimals = 18 + +[share115] +peggy_denom = share115 +decimals = 18 + +[share116] +peggy_denom = share116 +decimals = 18 + +[share117] +peggy_denom = share117 +decimals = 18 + +[share118] +peggy_denom = share118 +decimals = 18 + +[share119] +peggy_denom = share119 +decimals = 18 + +[share12] +peggy_denom = share12 +decimals = 18 + +[share120] +peggy_denom = share120 +decimals = 18 + +[share121] +peggy_denom = share121 +decimals = 18 + +[share122] +peggy_denom = share122 +decimals = 18 + +[share123] +peggy_denom = share123 +decimals = 18 + +[share124] +peggy_denom = share124 +decimals = 18 + +[share125] +peggy_denom = share125 +decimals = 18 + +[share126] +peggy_denom = share126 +decimals = 18 + +[share127] +peggy_denom = share127 +decimals = 18 + +[share128] +peggy_denom = share128 +decimals = 18 + +[share129] +peggy_denom = share129 +decimals = 18 + +[share13] +peggy_denom = share13 +decimals = 18 + +[share130] +peggy_denom = share130 +decimals = 18 + +[share131] +peggy_denom = share131 +decimals = 18 + +[share132] +peggy_denom = share132 +decimals = 18 + +[share133] +peggy_denom = share133 +decimals = 18 + +[share134] +peggy_denom = share134 +decimals = 18 + +[share135] +peggy_denom = share135 +decimals = 18 + +[share136] +peggy_denom = share136 +decimals = 18 + +[share137] +peggy_denom = share137 +decimals = 18 + +[share138] +peggy_denom = share138 +decimals = 18 + +[share139] +peggy_denom = share139 +decimals = 18 + +[share14] +peggy_denom = share14 +decimals = 18 + +[share140] +peggy_denom = share140 +decimals = 18 + +[share141] +peggy_denom = share141 +decimals = 18 + +[share142] +peggy_denom = share142 +decimals = 18 + +[share143] +peggy_denom = share143 +decimals = 18 + +[share144] +peggy_denom = share144 +decimals = 18 + +[share145] +peggy_denom = share145 +decimals = 18 + +[share146] +peggy_denom = share146 +decimals = 18 + +[share147] +peggy_denom = share147 +decimals = 18 + +[share148] +peggy_denom = share148 +decimals = 18 + +[share149] +peggy_denom = share149 +decimals = 18 + +[share15] +peggy_denom = share15 +decimals = 18 + +[share150] +peggy_denom = share150 +decimals = 18 + +[share151] +peggy_denom = share151 +decimals = 18 + +[share16] +peggy_denom = share16 +decimals = 18 + +[share17] +peggy_denom = share17 +decimals = 18 + +[share18] +peggy_denom = share18 +decimals = 18 + +[share19] +peggy_denom = share19 +decimals = 18 + +[share2] +peggy_denom = share2 +decimals = 18 + +[share20] +peggy_denom = share20 +decimals = 18 + +[share21] +peggy_denom = share21 +decimals = 18 + +[share22] +peggy_denom = share22 +decimals = 18 + +[share23] +peggy_denom = share23 +decimals = 18 + +[share24] +peggy_denom = share24 +decimals = 18 + +[share25] +peggy_denom = share25 +decimals = 18 + +[share27] +peggy_denom = share27 +decimals = 18 + +[share28] +peggy_denom = share28 +decimals = 18 + +[share29] +peggy_denom = share29 +decimals = 18 + +[share3] +peggy_denom = share3 +decimals = 18 + +[share30] +peggy_denom = share30 +decimals = 18 + +[share31] +peggy_denom = share31 +decimals = 18 + +[share32] +peggy_denom = share32 +decimals = 18 + +[share33] +peggy_denom = share33 +decimals = 18 + +[share34] +peggy_denom = share34 +decimals = 18 + +[share35] +peggy_denom = share35 +decimals = 18 + +[share36] +peggy_denom = share36 +decimals = 18 + +[share37] +peggy_denom = share37 +decimals = 18 + +[share38] +peggy_denom = share38 +decimals = 18 + +[share39] +peggy_denom = share39 +decimals = 18 + +[share4] +peggy_denom = share4 +decimals = 18 + +[share40] +peggy_denom = share40 +decimals = 18 + +[share41] +peggy_denom = share41 +decimals = 18 + +[share42] +peggy_denom = share42 +decimals = 18 + +[share43] +peggy_denom = share43 +decimals = 18 + +[share44] +peggy_denom = share44 +decimals = 18 + +[share45] +peggy_denom = share45 +decimals = 18 + +[share46] +peggy_denom = share46 +decimals = 18 + +[share47] +peggy_denom = share47 +decimals = 18 + +[share48] +peggy_denom = share48 +decimals = 18 + +[share49] +peggy_denom = share49 +decimals = 18 + +[share5] +peggy_denom = share5 +decimals = 18 + +[share50] +peggy_denom = share50 +decimals = 18 + +[share51] +peggy_denom = share51 +decimals = 18 + +[share52] +peggy_denom = share52 +decimals = 18 + +[share53] +peggy_denom = share53 +decimals = 18 + +[share54] +peggy_denom = share54 +decimals = 18 + +[share55] +peggy_denom = share55 +decimals = 18 + +[share56] +peggy_denom = share56 +decimals = 18 + +[share57] +peggy_denom = share57 +decimals = 18 + +[share58] +peggy_denom = share58 +decimals = 18 + +[share59] +peggy_denom = share59 +decimals = 18 + +[share6] +peggy_denom = share6 +decimals = 18 + +[share60] +peggy_denom = share60 +decimals = 18 + +[share61] +peggy_denom = share61 +decimals = 18 + +[share62] +peggy_denom = share62 +decimals = 18 + +[share63] +peggy_denom = share63 +decimals = 18 + +[share64] +peggy_denom = share64 +decimals = 18 + +[share65] +peggy_denom = share65 +decimals = 18 + +[share66] +peggy_denom = share66 +decimals = 18 + +[share67] +peggy_denom = share67 +decimals = 18 + +[share68] +peggy_denom = share68 +decimals = 18 + +[share69] +peggy_denom = share69 +decimals = 18 + +[share7] +peggy_denom = share7 +decimals = 18 + +[share70] +peggy_denom = share70 +decimals = 18 + +[share71] +peggy_denom = share71 +decimals = 18 + +[share72] +peggy_denom = share72 +decimals = 18 + +[share73] +peggy_denom = share73 +decimals = 18 + +[share74] +peggy_denom = share74 +decimals = 18 + +[share75] +peggy_denom = share75 +decimals = 18 + +[share76] +peggy_denom = share76 +decimals = 18 + +[share77] +peggy_denom = share77 +decimals = 18 + +[share78] +peggy_denom = share78 +decimals = 18 + +[share79] +peggy_denom = share79 +decimals = 18 + +[share8] +peggy_denom = share8 +decimals = 18 + +[share80] +peggy_denom = share80 +decimals = 18 + +[share81] +peggy_denom = share81 +decimals = 18 + +[share82] +peggy_denom = share82 +decimals = 18 + +[share83] +peggy_denom = share83 +decimals = 18 + +[share84] +peggy_denom = share84 +decimals = 18 + +[share85] +peggy_denom = share85 +decimals = 18 + +[share86] +peggy_denom = share86 +decimals = 18 + +[share87] +peggy_denom = share87 +decimals = 18 + +[share88] +peggy_denom = share88 +decimals = 18 + +[share89] +peggy_denom = share89 +decimals = 18 + +[share9] +peggy_denom = share9 +decimals = 18 + +[share90] +peggy_denom = share90 +decimals = 18 + +[share91] +peggy_denom = share91 +decimals = 18 + +[share92] +peggy_denom = share92 +decimals = 18 + +[share93] +peggy_denom = share93 +decimals = 18 + +[share94] +peggy_denom = share94 +decimals = 18 + +[share95] +peggy_denom = share95 +decimals = 18 + +[share96] +peggy_denom = share96 +decimals = 18 + +[share97] +peggy_denom = share97 +decimals = 18 + +[share98] +peggy_denom = share98 +decimals = 18 + +[share99] +peggy_denom = share99 +decimals = 18 + +[shroom1] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom1 +decimals = 18 + +[shroom2] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/shroom2 +decimals = 18 + +[sis] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/sis +decimals = 6 + +[sms] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/sms +decimals = 6 + +[snake] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/snake +decimals = 18 + +[spore] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/spore +decimals = 18 + +[ssINJ] +peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/ssainj +decimals = 0 + +[sssyn] +peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/sssyn +decimals = 0 + +[stETH] +peggy_denom = peggy0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 +decimals = 18 + +[syl] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/syl +decimals = 6 + +[tclub] +peggy_denom = factory/inj10knx7vr764l30lwckhsk6ahwzg52akrrngccfh/tclub +decimals = 6 + +[test] +peggy_denom = factory/inj106ul9gd8vf0rdhs7gvul4e5eqju8uyr62twp6v/test +decimals = 6 + +[test123] +peggy_denom = factory/inj1kle8tjn2z2rq4vy6y2getsva6vd3n3j7uh2tds/test123 +decimals = 6 + +[test2] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/test2 +decimals = 6 + +[test213] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test213 +decimals = 6 + +[test2134] +peggy_denom = factory/inj1asqp852arxkam8uckm2uvc4y365kdf06evq3zy/test2134 +decimals = 6 + +[test3] +peggy_denom = factory/inj1gvhyp8un5l9jpxpd90rdtj3ejd6qser2s2jxtz/test222 +decimals = 0 + +[test5] +peggy_denom = factory/inj1k4wfy3kjmhczjzttwatrpapdgpvaqxchr7gk7a/test7555 +decimals = 0 + +[testcoin21] +peggy_denom = factory/inj1rgetw4w58wy9p74ckx6lph5p8qg20md8u9z9eq/testcoin21 +decimals = 6 + +[testdokwon] +peggy_denom = factory/inj1apmvarl2xyv6kecx2ukkeymddw3we4zkygjyc0/testdokwon +decimals = 6 + +[teste] +peggy_denom = factory/inj1fcj6mmsj44wm04ff77kuncqx6vg4cl9qsgugkg/teste +decimals = 6 + +[teste3] +peggy_denom = factory/inj1sn6u0472ds6v8x2x482gqqc36g0lz28uhq660v/teste3 +decimals = 8 + +[testestse] +peggy_denom = factory/inj1597pysn2u56ggcckykt2zzjuqkeezy5yxfujtj/TooTOO +decimals = 6 + +[testff] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testff +decimals = 6 + +[testt] +peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/testt +decimals = 6 + +[testtoken] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtoken +decimals = 6 + +[testtt] +peggy_denom = factory/inj1js6xyr58llrsme8zwydk2u6jty95q0d3aqhrq6/testtt +decimals = 6 + +[testttt] +peggy_denom = factory/inj1cml96vmptgw99syqrrz8az79xer2pcgp0a885r/testttt +decimals = 6 + +[testtttt] +peggy_denom = factory/inj1yuaz9qw8m75w7gxn3j7p9ph9pcsp8krpune70q/testtttt +decimals = 6 + +[tet] +peggy_denom = factory/inj1e5yundzcqr77d8nkswgxn9qyrhmr4hdk6qq9pl/tet +decimals = 6 + +[toby] +peggy_denom = factory/inj1temu696g738vldkgnn7fqmgvkq2l36qsng5ea7/toby +decimals = 6 + +[token-symbol] +peggy_denom = factory/inj1lq9wn94d49tt7gc834cxkm0j5kwlwu4gm65lhe/token-symbol +decimals = 6 + +[tol] +peggy_denom = factory/inj1p30u767z9wwxmnh986snpp0c9u0sxwc9mnyexy/tol +decimals = 6 + +[tst] +peggy_denom = factory/inj1s2n5rq58sp9cak8808q0c0qtdpu5xhfgeu2y97/inj-icon +decimals = 6 + +[tst1] +peggy_denom = factory/inj1wt8aa8ct7eap805lsz9jh8spezf6mkxe0ejp79/tst1 +decimals = 6 + +[unknown] +peggy_denom = unknown +decimals = 0 + +[usssyn] +peggy_denom = factory/inj1mlalkqq4egj7mz68x47tmpnf57aj7480g4evxa/usssyn +decimals = 0 + +[uyO] +peggy_denom = factory/inj17gkuet8f6pssxd8nycm3qr9d9y699rupv6397z/uyO +decimals = 0 + +[wBTC] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/wbtc +decimals = 8 + +[wETH] +peggy_denom = factory/inj17vytdwqczqz72j65saukplrktd4gyfme5agf6c/weth +decimals = 8 + +[wUSDM] +peggy_denom = peggy0x57F5E098CaD7A3D1Eed53991D4d66C45C9AF7812 +decimals = 18 + +[xband] +peggy_denom = factory/inj1maeyvxfamtn8lfyxpjca8kuvauuf2qeu6gtxm3/Stake-0 +decimals = 6 + +[yolo] +peggy_denom = factory/inj1mt876zny9j6xae25h7hl7zuqf7gkx8q63k0426/yolo +decimals = 6 diff --git a/client/metadata/fetch_metadata.go b/client/metadata/fetch_metadata.go index cb4f08b0..5bfa0da2 100644 --- a/client/metadata/fetch_metadata.go +++ b/client/metadata/fetch_metadata.go @@ -9,7 +9,7 @@ import ( exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" - //derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" + // derivativeExchangePB "github.com/InjectiveLabs/sdk-go/exchange/derivative_exchange_rpc/pb" "math" "strconv" @@ -81,7 +81,7 @@ func FetchDenom(network common.Network) { metadataOutput += config } - //fetch derivative markets + // fetch derivative markets derivativeMarketsReq := derivativeExchangePB.MarketsRequest{MarketStatus: "active"} derivativeRes, err := exchangeClient.GetDerivativeMarkets(ctx, &derivativeMarketsReq) if err != nil { @@ -128,7 +128,7 @@ func FetchDenom(network common.Network) { } fileName := fmt.Sprintf("client/metadata/assets/%s.ini", network.Name) - err = os.WriteFile(fileName, []byte(metadataOutput), 0644) + err = os.WriteFile(fileName, []byte(metadataOutput), 0600) // nolint:gocritic // 0600 is the correct permission if err != nil { panic(err) } diff --git a/client/tm/tmclient.go b/client/tm/tmclient.go index 420567f6..6b5908c8 100644 --- a/client/tm/tmclient.go +++ b/client/tm/tmclient.go @@ -9,15 +9,14 @@ import ( rpcclient "github.com/cometbft/cometbft/rpc/client" rpchttp "github.com/cometbft/cometbft/rpc/client/http" ctypes "github.com/cometbft/cometbft/rpc/core/types" - tmctypes "github.com/cometbft/cometbft/rpc/core/types" ) type TendermintClient interface { - GetBlock(ctx context.Context, height int64) (*tmctypes.ResultBlock, error) + GetBlock(ctx context.Context, height int64) (*ctypes.ResultBlock, error) GetLatestBlockHeight(ctx context.Context) (int64, error) - GetTxs(ctx context.Context, block *tmctypes.ResultBlock) ([]*ctypes.ResultTx, error) + GetTxs(ctx context.Context, block *ctypes.ResultBlock) ([]*ctypes.ResultTx, error) GetBlockResults(ctx context.Context, height int64) (*ctypes.ResultBlockResults, error) - GetValidatorSet(ctx context.Context, height int64) (*tmctypes.ResultValidators, error) + GetValidatorSet(ctx context.Context, height int64) (*ctypes.ResultValidators, error) GetABCIInfo(ctx context.Context) (*ctypes.ResultABCIInfo, error) } @@ -37,7 +36,7 @@ func NewRPCClient(rpcNodeAddr string) TendermintClient { } // GetBlock queries for a block by height. An error is returned if the query fails. -func (c *tmClient) GetBlock(ctx context.Context, height int64) (*tmctypes.ResultBlock, error) { +func (c *tmClient) GetBlock(ctx context.Context, height int64) (*ctypes.ResultBlock, error) { return c.rpcClient.Block(ctx, &height) } @@ -60,7 +59,7 @@ func (c *tmClient) GetLatestBlockHeight(ctx context.Context) (int64, error) { // GetTxs queries for all the transactions in a block height. // It uses `Tx` RPC method to query for the transaction. -func (c *tmClient) GetTxs(ctx context.Context, block *tmctypes.ResultBlock) ([]*ctypes.ResultTx, error) { +func (c *tmClient) GetTxs(ctx context.Context, block *ctypes.ResultBlock) ([]*ctypes.ResultTx, error) { txs := make([]*ctypes.ResultTx, 0, len(block.Block.Txs)) for _, tmTx := range block.Block.Txs { @@ -82,11 +81,11 @@ func (c *tmClient) GetTxs(ctx context.Context, block *tmctypes.ResultBlock) ([]* // GetValidatorSet returns all the known Tendermint validators for a given block // height. An error is returned if the query fails. -func (c *tmClient) GetValidatorSet(ctx context.Context, height int64) (*tmctypes.ResultValidators, error) { +func (c *tmClient) GetValidatorSet(ctx context.Context, height int64) (*ctypes.ResultValidators, error) { return c.rpcClient.Validators(ctx, &height, nil, nil) } // GetABCIInfo returns the node abci version -func (c *tmClient) GetABCIInfo(ctx context.Context) (*tmctypes.ResultABCIInfo, error) { +func (c *tmClient) GetABCIInfo(ctx context.Context) (*ctypes.ResultABCIInfo, error) { return c.rpcClient.ABCIInfo(ctx) } diff --git a/eip712_cosmos.go b/eip712_cosmos.go index 8107f903..cc0e645b 100644 --- a/eip712_cosmos.go +++ b/eip712_cosmos.go @@ -10,14 +10,14 @@ import ( "strings" "time" - sdkmath "cosmossdk.io/math" + "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cosmtypes "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/migrations/legacytx" authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" + ethmath "github.com/ethereum/go-ethereum/common/math" "github.com/pkg/errors" "github.com/InjectiveLabs/sdk-go/typeddata" @@ -53,7 +53,6 @@ func WrapTxToEIP712( timeoutHeight, feeInfo, msgs, memo, - nil, ) txData := make(map[string]interface{}) @@ -65,7 +64,7 @@ func WrapTxToEIP712( domain := typeddata.TypedDataDomain{ Name: "Injective Web3", Version: "1.0.0", - ChainId: math.NewHexOrDecimal256(int64(chainID)), + ChainId: ethmath.NewHexOrDecimal256(int64(chainID)), VerifyingContract: "cosmos", Salt: "0", } @@ -195,12 +194,12 @@ func traverseFields( if prefix == typeDefPrefix { if len(typeMap[rootType]) == n { - return + return nil } } else { typeDef := sanitizeTypedef(prefix) if len(typeMap[typeDef]) == n { - return + return nil } } @@ -233,7 +232,7 @@ func traverseFields( err = cdc.UnpackAny(any, &anyWrapper.Value) if err != nil { err = errors.Wrap(err, "failed to unpack Any in msg struct") - return + return err } fieldType = reflect.TypeOf(anyWrapper) @@ -291,7 +290,7 @@ func traverseFields( fieldPrefix := fmt.Sprintf("%s.%s", prefix, fieldName) ethTyp := typToEth(fieldType) - if len(ethTyp) > 0 { + if ethTyp != "" { if isCollection { ethTyp += "[]" } @@ -338,7 +337,7 @@ func traverseFields( err = traverseFields(cdc, typeMap, rootType, fieldPrefix, fieldType, field) if err != nil { - return + return err } continue @@ -380,7 +379,7 @@ var ( hashType = reflect.TypeOf(common.Hash{}) addressType = reflect.TypeOf(common.Address{}) bigIntType = reflect.TypeOf(big.Int{}) - cosmIntType = reflect.TypeOf(sdkmath.Int{}) + cosmIntType = reflect.TypeOf(math.Int{}) cosmosAnyType = reflect.TypeOf(&codectypes.Any{}) timeType = reflect.TypeOf(time.Time{}) ) @@ -415,12 +414,12 @@ func typToEth(typ reflect.Type) string { return "uint64" case reflect.Slice: ethName := typToEth(typ.Elem()) - if len(ethName) > 0 { + if ethName != "" { return ethName + "[]" } case reflect.Array: ethName := typToEth(typ.Elem()) - if len(ethName) > 0 { + if ethName != "" { return ethName + "[]" } case reflect.Ptr: @@ -501,7 +500,7 @@ func WrapTxToEIP712V2( domain := typeddata.TypedDataDomain{ Name: "Injective Web3", Version: "1.0.0", - ChainId: math.NewHexOrDecimal256(int64(chainID)), + ChainId: ethmath.NewHexOrDecimal256(int64(chainID)), VerifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC", Salt: "0", } diff --git a/ethereum/util/amounts.go b/ethereum/util/amounts.go index 1435beaa..9535c8cf 100644 --- a/ethereum/util/amounts.go +++ b/ethereum/util/amounts.go @@ -10,16 +10,16 @@ import ( type Wei decimal.Decimal func (w Wei) String() string { - return (decimal.Decimal)(w).String() + return decimal.Decimal(w).String() } func (w Wei) StringGwei() string { - d := (decimal.Decimal)(w).Div(decimal.NewFromFloat(1e9)) + d := decimal.Decimal(w).Div(decimal.NewFromFloat(1e9)) return d.String() } func (w Wei) Bytes() []byte { - return []byte((decimal.Decimal)(w).String()) + return []byte(decimal.Decimal(w).String()) } func (w *Wei) Scan(v interface{}) error { @@ -37,10 +37,10 @@ func (w *Wei) Scan(v interface{}) error { } d, err := decimal.NewFromString(source) if err != nil { - err := fmt.Errorf("failed to parse decimal.Decimal from %s, error: %v", source, err) + err := fmt.Errorf("failed to parse decimal.Decimal from %s, error: %w", source, err) return err } else { - *w = (Wei)(d) + *w = Wei(d) } return nil } @@ -128,7 +128,7 @@ func (w *Wei) Add(amount *Wei) *Wei { return (*Wei)(&result) } -// Sub substracts two amounts and returns a new amount. +// Sub subtracts two amounts and returns a new amount. func (w *Wei) Sub(amount *Wei) *Wei { d1 := (*decimal.Decimal)(w) d2 := (*decimal.Decimal)(amount) diff --git a/ethereum/util/contract.go b/ethereum/util/contract.go index c3c66568..7f83113c 100644 --- a/ethereum/util/contract.go +++ b/ethereum/util/contract.go @@ -41,7 +41,7 @@ func BindContract(client *ethclient.Client, contract *Contract) (*BoundContract, } parsedABI, err := abi.JSON(bytes.NewReader(contract.ABI)) if err != nil { - err = fmt.Errorf("failed to parse contract ABI: %v", err) + err = fmt.Errorf("failed to parse contract ABI: %w", err) return nil, err } bound := &BoundContract{ @@ -87,10 +87,6 @@ func (contract *BoundContract) ABI() abi.ABI { return contract.abi } -func (c *BoundContract) DeployContract(opts *bind.TransactOpts, params ...interface{}) (common.Address, *types.Transaction, error) { - panic("not implemented") -} - func (c *BoundContract) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { if c.transactFn == nil { return c.BoundContract.Transact(opts, method, params...) diff --git a/examples/chain/1_LocalOrderHash/example.go b/examples/chain/1_LocalOrderHash/example.go index b271aaab..a3ba477d 100644 --- a/examples/chain/1_LocalOrderHash/example.go +++ b/examples/chain/1_LocalOrderHash/example.go @@ -119,7 +119,7 @@ func main() { fmt.Println("computed spot order hashes: ", orderHashes.Spot) fmt.Println("computed derivative order hashes: ", orderHashes.Derivative) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg, msg1) if err != nil { diff --git a/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go b/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go index 617617dd..e8911b0c 100644 --- a/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go +++ b/examples/chain/4_MsgBatchCreateSpotLimitOrders/example.go @@ -112,7 +112,7 @@ func main() { fmt.Println("simulated order hashes", msgBatchCreateSpotLimitOrdersResponse.OrderHashes) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go b/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go index 24830abc..cbd1812c 100644 --- a/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go +++ b/examples/chain/5_MsgBatchCreateDerivativeLimitOrders/example.go @@ -117,7 +117,7 @@ func main() { fmt.Println("simulated order hashes", msgBatchCreateDerivativeLimitOrdersResponse.OrderHashes) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/6_MsgRegisterAsDMM/example.go b/examples/chain/6_MsgRegisterAsDMM/example.go index ca877e9e..a21f352b 100644 --- a/examples/chain/6_MsgRegisterAsDMM/example.go +++ b/examples/chain/6_MsgRegisterAsDMM/example.go @@ -60,7 +60,7 @@ func main() { Sender: senderAddress.String(), } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/auction/1_MsgBid/example.go b/examples/chain/auction/1_MsgBid/example.go index 0012157c..bae1cbd1 100644 --- a/examples/chain/auction/1_MsgBid/example.go +++ b/examples/chain/auction/1_MsgBid/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -59,7 +61,7 @@ func main() { round := uint64(9355) bidAmount := sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ } msg := &auctiontypes.MsgBid{ @@ -68,7 +70,7 @@ func main() { BidAmount: bidAmount, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/authz/1_MsgGrant/example.go b/examples/chain/authz/1_MsgGrant/example.go index 02f5116e..96fad70a 100644 --- a/examples/chain/authz/1_MsgGrant/example.go +++ b/examples/chain/authz/1_MsgGrant/example.go @@ -60,9 +60,9 @@ func main() { grantee := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" expireIn := time.Now().AddDate(1, 0, 0) // years months days - //GENERIC AUTHZ - //msgtype := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" - //msg := chainClient.BuildGenericAuthz(granter, grantee, msgtype, expireIn) + // GENERIC AUTHZ + // msgtype := "/injective.exchange.v1beta1.MsgCreateSpotLimitOrder" + // msg := chainClient.BuildGenericAuthz(granter, grantee, msgtype, expireIn) // TYPED AUTHZ msg := chainClient.BuildExchangeAuthz( @@ -74,7 +74,7 @@ func main() { expireIn, ) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/authz/2_MsgExec/example.go b/examples/chain/authz/2_MsgExec/example.go index 4fd3f7aa..840b4bc9 100644 --- a/examples/chain/authz/2_MsgExec/example.go +++ b/examples/chain/authz/2_MsgExec/example.go @@ -126,7 +126,7 @@ func main() { Msgs: []*codectypes.Any{msg0Any}, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/authz/3_MsgRevoke/example.go b/examples/chain/authz/3_MsgRevoke/example.go index 46bb2f3a..dfdfa8b5 100644 --- a/examples/chain/authz/3_MsgRevoke/example.go +++ b/examples/chain/authz/3_MsgRevoke/example.go @@ -65,7 +65,7 @@ func main() { MsgTypeUrl: msgType, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/bank/1_MsgSend/example.go b/examples/chain/bank/1_MsgSend/example.go index d49591a3..309ede31 100644 --- a/examples/chain/bank/1_MsgSend/example.go +++ b/examples/chain/bank/1_MsgSend/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -62,11 +64,11 @@ func main() { FromAddress: senderAddress.String(), ToAddress: "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", Amount: []sdktypes.Coin{{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000)}, // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000)}, // 1 INJ }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/bank/2_MsgMultiSend/example.go b/examples/chain/bank/2_MsgMultiSend/example.go index 5bf49241..62b69343 100644 --- a/examples/chain/bank/2_MsgMultiSend/example.go +++ b/examples/chain/bank/2_MsgMultiSend/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -66,13 +68,13 @@ func main() { { Address: senderAddress.String(), Coins: []sdktypes.Coin{{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000)}, // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000)}, // 1 INJ }, }, { Address: senderAddress.String(), Coins: []sdktypes.Coin{{ - Denom: "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", Amount: sdktypes.NewInt(1000000)}, // 1 USDT + Denom: "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", Amount: math.NewInt(1000000)}, // 1 USDT }, }, }, @@ -80,19 +82,19 @@ func main() { { Address: "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", Coins: []sdktypes.Coin{{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000)}, // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000)}, // 1 INJ }, }, { Address: "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r", Coins: []sdktypes.Coin{{ - Denom: "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", Amount: sdktypes.NewInt(1000000)}, // 1 USDT + Denom: "peggy0x87aB3B4C8661e07D6372361211B96ed4Dc36B1B5", Amount: math.NewInt(1000000)}, // 1 USDT }, }, }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/distribution/1_SetWithdrawAddress/example.go b/examples/chain/distribution/1_SetWithdrawAddress/example.go index 7e0d371c..71ef6fe0 100644 --- a/examples/chain/distribution/1_SetWithdrawAddress/example.go +++ b/examples/chain/distribution/1_SetWithdrawAddress/example.go @@ -63,7 +63,7 @@ func main() { WithdrawAddress: withdrawAddress, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go b/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go index 46eed8cb..e2c7a359 100644 --- a/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go +++ b/examples/chain/distribution/2_MsgWithdrawDelegatorReward/example.go @@ -60,7 +60,7 @@ func main() { msg.DelegatorAddress = senderAddress.String() msg.ValidatorAddress = "injvaloper14gy4acwjm96wd20awm9ar6j54lev5p7espy9ug" - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/distribution/3_WithdrawValidatorCommission/example.go b/examples/chain/distribution/3_WithdrawValidatorCommission/example.go index 85efe852..2e90b143 100644 --- a/examples/chain/distribution/3_WithdrawValidatorCommission/example.go +++ b/examples/chain/distribution/3_WithdrawValidatorCommission/example.go @@ -62,7 +62,7 @@ func main() { ValidatorAddress: validatorAddress, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/distribution/4_FundCommunityPool/example.go b/examples/chain/distribution/4_FundCommunityPool/example.go index 9c2c9aeb..01ff6b2e 100644 --- a/examples/chain/distribution/4_FundCommunityPool/example.go +++ b/examples/chain/distribution/4_FundCommunityPool/example.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/types" distriutiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" @@ -57,14 +59,14 @@ func main() { panic(err) } - amount := types.NewCoin("inj", types.NewInt(1)) + amount := types.NewCoin("inj", math.NewInt(1)) msg := &distriutiontypes.MsgFundCommunityPool{ Amount: []types.Coin{amount}, Depositor: senderAddress.String(), } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go b/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go index 13d00928..d8881b1c 100644 --- a/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go +++ b/examples/chain/exchange/10_MsgCreateDerivativeLimitOrder/example.go @@ -113,7 +113,7 @@ func main() { fmt.Println("simulated order hash", msgCreateDerivativeLimitOrderResponse.OrderHash) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go b/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go index 26806c33..9e1a8d78 100644 --- a/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go +++ b/examples/chain/exchange/11_MsgCreateDerivativeMarketOrder/example.go @@ -114,7 +114,7 @@ func main() { fmt.Println("simulated order hash", msgCreateDerivativeMarketOrderResponse.OrderHash) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go b/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go index dd5972d2..2fb04e91 100644 --- a/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go +++ b/examples/chain/exchange/12_MsgCancelDerivativeOrder/example.go @@ -64,7 +64,7 @@ func main() { OrderHash: "0x8cf97e586c0d84cd7864ccc8916b886557120d84fc97a21ae193b67882835ec5", } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go index be7b7ddc..f9534a72 100644 --- a/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go +++ b/examples/chain/exchange/13_MsgInstantBinaryOptionsMarketLaunch/example.go @@ -6,12 +6,12 @@ import ( "fmt" "os" + "cosmossdk.io/math" + exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" - "github.com/cosmos/cosmos-sdk/types" - "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -72,10 +72,10 @@ func main() { } quoteToken := marketsAssistant.AllTokens()["USDC"] - minPriceTickSize := types.MustNewDecFromStr("0.01") - minQuantityTickSize := types.MustNewDecFromStr("0.001") + minPriceTickSize := math.LegacyMustNewDecFromStr("0.01") + minQuantityTickSize := math.LegacyMustNewDecFromStr("0.001") - chainMinPriceTickSize := minPriceTickSize.Mul(types.NewDecFromIntWithPrec(types.NewInt(1), int64(quoteToken.Decimals))) + chainMinPriceTickSize := minPriceTickSize.Mul(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(quoteToken.Decimals))) chainMinQuantityTickSize := minQuantityTickSize msg := &exchangetypes.MsgInstantBinaryOptionsMarketLaunch{ @@ -85,8 +85,8 @@ func main() { OracleProvider: "UFC", OracleType: oracletypes.OracleType_Provider, OracleScaleFactor: 6, - MakerFeeRate: types.MustNewDecFromStr("0.0005"), - TakerFeeRate: types.MustNewDecFromStr("0.0010"), + MakerFeeRate: math.LegacyMustNewDecFromStr("0.0005"), + TakerFeeRate: math.LegacyMustNewDecFromStr("0.0010"), ExpirationTimestamp: 1680730982, SettlementTimestamp: 1690730982, Admin: senderAddress.String(), @@ -95,7 +95,7 @@ func main() { MinQuantityTickSize: chainMinQuantityTickSize, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/14_MsgSubaccountTransfer/example.go b/examples/chain/exchange/14_MsgSubaccountTransfer/example.go index d7580995..797bf8e0 100644 --- a/examples/chain/exchange/14_MsgSubaccountTransfer/example.go +++ b/examples/chain/exchange/14_MsgSubaccountTransfer/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -62,11 +64,11 @@ func main() { SourceSubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", DestinationSubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000001", Amount: sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/15_MsgExternalTransfer/example.go b/examples/chain/exchange/15_MsgExternalTransfer/example.go index 4a25192f..c67b2ca9 100644 --- a/examples/chain/exchange/15_MsgExternalTransfer/example.go +++ b/examples/chain/exchange/15_MsgExternalTransfer/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -62,11 +64,11 @@ func main() { SourceSubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", DestinationSubaccountId: "0xbdaedec95d563fb05240d6e01821008454c24c36000000000000000000000000", Amount: sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/16_MsgLiquidatePosition/example.go b/examples/chain/exchange/16_MsgLiquidatePosition/example.go index 8a328d94..4a00f6a8 100644 --- a/examples/chain/exchange/16_MsgLiquidatePosition/example.go +++ b/examples/chain/exchange/16_MsgLiquidatePosition/example.go @@ -100,7 +100,7 @@ func main() { Order: order, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go b/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go index 578d9243..c239cbc0 100644 --- a/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go +++ b/examples/chain/exchange/17_MsgIncreasePositionMargin/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -12,7 +14,6 @@ import ( exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" rpchttp "github.com/cometbft/cometbft/rpc/client/http" - cosmtypes "github.com/cosmos/cosmos-sdk/types" ) func main() { @@ -63,10 +64,10 @@ func main() { MarketId: "0x4ca0f92fc28be0c9761326016b5a1a2177dd6375558365116b5bdda9abc229ce", SourceSubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", DestinationSubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", - Amount: cosmtypes.MustNewDecFromStr("100000000"), //100 USDT + Amount: math.LegacyMustNewDecFromStr("100000000"), //100 USDT } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/1_MsgDeposit/example.go b/examples/chain/exchange/1_MsgDeposit/example.go index abf339a4..f1f507b3 100644 --- a/examples/chain/exchange/1_MsgDeposit/example.go +++ b/examples/chain/exchange/1_MsgDeposit/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -61,11 +63,11 @@ func main() { Sender: senderAddress.String(), SubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", Amount: sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/21_MsgRewardsOptOut/example.go b/examples/chain/exchange/21_MsgRewardsOptOut/example.go index ca877e9e..a21f352b 100644 --- a/examples/chain/exchange/21_MsgRewardsOptOut/example.go +++ b/examples/chain/exchange/21_MsgRewardsOptOut/example.go @@ -60,7 +60,7 @@ func main() { Sender: senderAddress.String(), } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/2_MsgWithdraw/example.go b/examples/chain/exchange/2_MsgWithdraw/example.go index 8c49c6e5..ab1f76db 100644 --- a/examples/chain/exchange/2_MsgWithdraw/example.go +++ b/examples/chain/exchange/2_MsgWithdraw/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -61,11 +63,11 @@ func main() { Sender: senderAddress.String(), SubaccountId: "0xaf79152ac5df276d9a8e1e2e22822f9713474902000000000000000000000000", Amount: sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ }, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go index 2bd6e62a..63f091a0 100644 --- a/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go +++ b/examples/chain/exchange/3_MsgInstantSpotMarketLaunch/example.go @@ -6,11 +6,11 @@ import ( "fmt" "os" + "cosmossdk.io/math" + exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" - "github.com/cosmos/cosmos-sdk/types" - "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -72,13 +72,13 @@ func main() { baseToken := marketsAssistant.AllTokens()["INJ"] quoteToken := marketsAssistant.AllTokens()["USDC"] - minPriceTickSize := types.MustNewDecFromStr("0.01") - minQuantityTickSize := types.MustNewDecFromStr("0.001") + minPriceTickSize := math.LegacyMustNewDecFromStr("0.01") + minQuantityTickSize := math.LegacyMustNewDecFromStr("0.001") - chainMinPriceTickSize := minPriceTickSize.Mul(types.NewDecFromIntWithPrec(types.NewInt(1), int64(quoteToken.Decimals))) - chainMinPriceTickSize = chainMinPriceTickSize.Quo(types.NewDecFromIntWithPrec(types.NewInt(1), int64(baseToken.Decimals))) + chainMinPriceTickSize := minPriceTickSize.Mul(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(quoteToken.Decimals))) + chainMinPriceTickSize = chainMinPriceTickSize.Quo(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(baseToken.Decimals))) - chainMinQuantityTickSize := minQuantityTickSize.Mul(types.NewDecFromIntWithPrec(types.NewInt(1), int64(baseToken.Decimals))) + chainMinQuantityTickSize := minQuantityTickSize.Mul(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(baseToken.Decimals))) msg := &exchangetypes.MsgInstantSpotMarketLaunch{ Sender: senderAddress.String(), @@ -89,7 +89,7 @@ func main() { MinQuantityTickSize: chainMinQuantityTickSize, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go index 0792a6d2..2de5f4fb 100644 --- a/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go +++ b/examples/chain/exchange/4_MsgInstantPerpetualMarketLaunch/example.go @@ -6,12 +6,12 @@ import ( "fmt" "os" + "cosmossdk.io/math" + exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" - "github.com/cosmos/cosmos-sdk/types" - "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -72,10 +72,10 @@ func main() { } quoteToken := marketsAssistant.AllTokens()["USDC"] - minPriceTickSize := types.MustNewDecFromStr("0.01") - minQuantityTickSize := types.MustNewDecFromStr("0.001") + minPriceTickSize := math.LegacyMustNewDecFromStr("0.01") + minQuantityTickSize := math.LegacyMustNewDecFromStr("0.001") - chainMinPriceTickSize := minPriceTickSize.Mul(types.NewDecFromIntWithPrec(types.NewInt(1), int64(quoteToken.Decimals))) + chainMinPriceTickSize := minPriceTickSize.Mul(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(quoteToken.Decimals))) chainMinQuantityTickSize := minQuantityTickSize msg := &exchangetypes.MsgInstantPerpetualMarketLaunch{ @@ -86,15 +86,15 @@ func main() { OracleQuote: "USDC", OracleScaleFactor: 6, OracleType: oracletypes.OracleType_Band, - MakerFeeRate: types.MustNewDecFromStr("-0.0001"), - TakerFeeRate: types.MustNewDecFromStr("0.001"), - InitialMarginRatio: types.MustNewDecFromStr("0.33"), - MaintenanceMarginRatio: types.MustNewDecFromStr("0.095"), + MakerFeeRate: math.LegacyMustNewDecFromStr("-0.0001"), + TakerFeeRate: math.LegacyMustNewDecFromStr("0.001"), + InitialMarginRatio: math.LegacyMustNewDecFromStr("0.33"), + MaintenanceMarginRatio: math.LegacyMustNewDecFromStr("0.095"), MinPriceTickSize: chainMinPriceTickSize, MinQuantityTickSize: chainMinQuantityTickSize, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go index dac6f76f..e02b7835 100644 --- a/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go +++ b/examples/chain/exchange/5_MsgInstantExpiryFuturesMarketLaunch/example.go @@ -6,12 +6,12 @@ import ( "fmt" "os" + "cosmossdk.io/math" + exchangetypes "github.com/InjectiveLabs/sdk-go/chain/exchange/types" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" exchangeclient "github.com/InjectiveLabs/sdk-go/client/exchange" - "github.com/cosmos/cosmos-sdk/types" - "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -72,10 +72,10 @@ func main() { } quoteToken := marketsAssistant.AllTokens()["USDC"] - minPriceTickSize := types.MustNewDecFromStr("0.01") - minQuantityTickSize := types.MustNewDecFromStr("0.001") + minPriceTickSize := math.LegacyMustNewDecFromStr("0.01") + minQuantityTickSize := math.LegacyMustNewDecFromStr("0.001") - chainMinPriceTickSize := minPriceTickSize.Mul(types.NewDecFromIntWithPrec(types.NewInt(1), int64(quoteToken.Decimals))) + chainMinPriceTickSize := minPriceTickSize.Mul(math.LegacyNewDecFromIntWithPrec(math.NewInt(1), int64(quoteToken.Decimals))) chainMinQuantityTickSize := minQuantityTickSize msg := &exchangetypes.MsgInstantExpiryFuturesMarketLaunch{ @@ -87,15 +87,15 @@ func main() { OracleScaleFactor: 6, OracleType: oracletypes.OracleType_Band, Expiry: 2000000000, - MakerFeeRate: types.MustNewDecFromStr("-0.0001"), - TakerFeeRate: types.MustNewDecFromStr("0.001"), - InitialMarginRatio: types.MustNewDecFromStr("0.33"), - MaintenanceMarginRatio: types.MustNewDecFromStr("0.095"), + MakerFeeRate: math.LegacyMustNewDecFromStr("-0.0001"), + TakerFeeRate: math.LegacyMustNewDecFromStr("0.001"), + InitialMarginRatio: math.LegacyMustNewDecFromStr("0.33"), + MaintenanceMarginRatio: math.LegacyMustNewDecFromStr("0.095"), MinPriceTickSize: chainMinPriceTickSize, MinQuantityTickSize: chainMinQuantityTickSize, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go b/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go index 976f8881..3707d502 100644 --- a/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go +++ b/examples/chain/exchange/6_MsgCreateSpotLimitOrder/example.go @@ -112,7 +112,7 @@ func main() { fmt.Println("simulated order hash: ", msgCreateSpotLimitOrderResponse.OrderHash) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go b/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go index 6fd3595f..392fbd08 100644 --- a/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go +++ b/examples/chain/exchange/7_MsgCreateSpotMarketOrder/example.go @@ -111,7 +111,7 @@ func main() { fmt.Println("simulated order hash", msgCreateSpotMarketOrderResponse.OrderHash) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/8_MsgCancelSpotOrder/example.go b/examples/chain/exchange/8_MsgCancelSpotOrder/example.go index f42ec5cc..adc9d9a8 100644 --- a/examples/chain/exchange/8_MsgCancelSpotOrder/example.go +++ b/examples/chain/exchange/8_MsgCancelSpotOrder/example.go @@ -64,7 +64,7 @@ func main() { OrderHash: "0xc1dd07efb7cf3a90c3d09da958fa22d96a5787eba3dbec56b63902c482accbd4", } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go index a1aff89d..a292074d 100644 --- a/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go +++ b/examples/chain/exchange/9_MsgBatchUpdateOrders/example.go @@ -137,7 +137,7 @@ func main() { fmt.Println("simulated derivative order hashes", MsgBatchUpdateOrdersResponse.DerivativeOrderHashes) - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/exchange/query/14_SpotOrderbook/example.go b/examples/chain/exchange/query/14_SpotOrderbook/example.go index 8c127a4b..65c07040 100644 --- a/examples/chain/exchange/query/14_SpotOrderbook/example.go +++ b/examples/chain/exchange/query/14_SpotOrderbook/example.go @@ -5,11 +5,12 @@ import ( "encoding/json" "fmt" - "github.com/InjectiveLabs/sdk-go/chain/exchange/types" - cosmostypes "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "os" + "github.com/InjectiveLabs/sdk-go/chain/exchange/types" + "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" "github.com/InjectiveLabs/sdk-go/client/common" @@ -64,8 +65,8 @@ func main() { marketId := "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" limit := uint64(2) orderSide := types.OrderSide_Buy - limitCumulativeNotional := cosmostypes.Dec{} - limitCumulativeQuantity := cosmostypes.Dec{} + limitCumulativeNotional := math.LegacyDec{} + limitCumulativeQuantity := math.LegacyDec{} res, err := chainClient.FetchChainSpotOrderbook(ctx, marketId, limit, orderSide, limitCumulativeNotional, limitCumulativeQuantity) if err != nil { diff --git a/examples/chain/exchange/query/22_DerivativeOrderbook/example.go b/examples/chain/exchange/query/22_DerivativeOrderbook/example.go index 9ab20712..5af14c85 100644 --- a/examples/chain/exchange/query/22_DerivativeOrderbook/example.go +++ b/examples/chain/exchange/query/22_DerivativeOrderbook/example.go @@ -5,7 +5,7 @@ import ( "encoding/json" "fmt" - cosmostypes "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/math" "os" @@ -62,7 +62,7 @@ func main() { marketId := "0x0611780ba69656949525013d947713300f56c37b6175e02f26bffa495c3208fe" limit := uint64(2) - limitCumulativeNotional := cosmostypes.Dec{} + limitCumulativeNotional := math.LegacyDec{} res, err := chainClient.FetchChainDerivativeOrderbook(ctx, marketId, limit, limitCumulativeNotional) if err != nil { diff --git a/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go b/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go new file mode 100644 index 00000000..57a3d8c6 --- /dev/null +++ b/examples/chain/ibc/channel/query/10_PacketAcknowledgements/example.go @@ -0,0 +1,76 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequences := []uint64{1, 2} + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCPacketAcknowledgements(ctx, portId, channelId, sequences, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go b/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go new file mode 100644 index 00000000..59d77766 --- /dev/null +++ b/examples/chain/ibc/channel/query/11_UnreceivedPackets/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequences := []uint64{1, 2} + ctx := context.Background() + + res, err := chainClient.FetchIBCUnreceivedPackets(ctx, portId, channelId, sequences) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go b/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go new file mode 100644 index 00000000..ad1025ca --- /dev/null +++ b/examples/chain/ibc/channel/query/12_UnreceivedAcks/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequences := []uint64{1, 2} + ctx := context.Background() + + res, err := chainClient.FetchIBCUnreceivedAcks(ctx, portId, channelId, sequences) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go b/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go new file mode 100644 index 00000000..86171598 --- /dev/null +++ b/examples/chain/ibc/channel/query/13_NextSequenceReceive/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + ctx := context.Background() + + res, err := chainClient.FetchIBCNextSequenceReceive(ctx, portId, channelId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/1_Channel/example.go b/examples/chain/ibc/channel/query/1_Channel/example.go new file mode 100644 index 00000000..73bab3cc --- /dev/null +++ b/examples/chain/ibc/channel/query/1_Channel/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + ctx := context.Background() + + res, err := chainClient.FetchIBCChannel(ctx, portId, channelId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/2_Channels/example.go b/examples/chain/ibc/channel/query/2_Channels/example.go new file mode 100644 index 00000000..688bd8c7 --- /dev/null +++ b/examples/chain/ibc/channel/query/2_Channels/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCChannels(ctx, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go b/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go new file mode 100644 index 00000000..525aaa85 --- /dev/null +++ b/examples/chain/ibc/channel/query/3_ConnectionChannels/example.go @@ -0,0 +1,74 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + connection := "connection-182" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConnectionChannels(ctx, connection, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/4_ChannelClientState/example.go b/examples/chain/ibc/channel/query/4_ChannelClientState/example.go new file mode 100644 index 00000000..34579a77 --- /dev/null +++ b/examples/chain/ibc/channel/query/4_ChannelClientState/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + ctx := context.Background() + + res, err := chainClient.FetchIBCChannelClientState(ctx, portId, channelId) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go b/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go new file mode 100644 index 00000000..1346834c --- /dev/null +++ b/examples/chain/ibc/channel/query/5_ChannelConsensusState/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + revisionNumber := uint64(1) + revisionHeight := uint64(7990906) + ctx := context.Background() + + res, err := chainClient.FetchIBCChannelConsensusState(ctx, portId, channelId, revisionNumber, revisionHeight) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/channel/query/6_PacketCommitment/example.go b/examples/chain/ibc/channel/query/6_PacketCommitment/example.go new file mode 100644 index 00000000..2a5fec05 --- /dev/null +++ b/examples/chain/ibc/channel/query/6_PacketCommitment/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequence := uint64(1) + ctx := context.Background() + + res, err := chainClient.FetchIBCPacketCommitment(ctx, portId, channelId, sequence) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/7_PacketCommitments/example.go b/examples/chain/ibc/channel/query/7_PacketCommitments/example.go new file mode 100644 index 00000000..e5af45c2 --- /dev/null +++ b/examples/chain/ibc/channel/query/7_PacketCommitments/example.go @@ -0,0 +1,75 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCPacketCommitments(ctx, portId, channelId, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/8_PacketReceipt/example.go b/examples/chain/ibc/channel/query/8_PacketReceipt/example.go new file mode 100644 index 00000000..5b429ef3 --- /dev/null +++ b/examples/chain/ibc/channel/query/8_PacketReceipt/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequence := uint64(1) + ctx := context.Background() + + res, err := chainClient.FetchIBCPacketReceipt(ctx, portId, channelId, sequence) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go b/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go new file mode 100644 index 00000000..0737e5da --- /dev/null +++ b/examples/chain/ibc/channel/query/9_PacketAcknowledgement/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + sequence := uint64(1) + ctx := context.Background() + + res, err := chainClient.FetchIBCPacketAcknowledgement(ctx, portId, channelId, sequence) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/client/query/1_ClientState/example.go b/examples/chain/ibc/client/query/1_ClientState/example.go new file mode 100644 index 00000000..ccc893dc --- /dev/null +++ b/examples/chain/ibc/client/query/1_ClientState/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCClientState(ctx, clientId) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/client/query/2_ClientStates/example.go b/examples/chain/ibc/client/query/2_ClientStates/example.go new file mode 100644 index 00000000..25d20383 --- /dev/null +++ b/examples/chain/ibc/client/query/2_ClientStates/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCClientStates(ctx, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/client/query/3_ConsensusState/example.go b/examples/chain/ibc/client/query/3_ConsensusState/example.go new file mode 100644 index 00000000..4ec33765 --- /dev/null +++ b/examples/chain/ibc/client/query/3_ConsensusState/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + revisionNumber := uint64(0) + revisionHeight := uint64(7379538) + latestHeight := false + + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusState(ctx, clientId, revisionNumber, revisionHeight, latestHeight) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/client/query/4_ConsensusStates/example.go b/examples/chain/ibc/client/query/4_ConsensusStates/example.go new file mode 100644 index 00000000..81062887 --- /dev/null +++ b/examples/chain/ibc/client/query/4_ConsensusStates/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusStates(ctx, clientId, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go b/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go new file mode 100644 index 00000000..450bdafb --- /dev/null +++ b/examples/chain/ibc/client/query/5_ConsensusStateHeight/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusStateHeights(ctx, clientId, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/client/query/6_ClientStatus/example.go b/examples/chain/ibc/client/query/6_ClientStatus/example.go new file mode 100644 index 00000000..19d17442 --- /dev/null +++ b/examples/chain/ibc/client/query/6_ClientStatus/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCClientStatus(ctx, clientId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/client/query/7_ClientParams/example.go b/examples/chain/ibc/client/query/7_ClientParams/example.go new file mode 100644 index 00000000..f0d4af1c --- /dev/null +++ b/examples/chain/ibc/client/query/7_ClientParams/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCClientParams(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/client/query/8_UpgradedClientState/example.go b/examples/chain/ibc/client/query/8_UpgradedClientState/example.go new file mode 100644 index 00000000..9e792113 --- /dev/null +++ b/examples/chain/ibc/client/query/8_UpgradedClientState/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCUpgradedClientState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go b/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go new file mode 100644 index 00000000..1a69a9a8 --- /dev/null +++ b/examples/chain/ibc/client/query/9_UpgradedConsensusState/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCUpgradedConsensusState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/connection/query/1_Connection/example.go b/examples/chain/ibc/connection/query/1_Connection/example.go new file mode 100644 index 00000000..f0e88c63 --- /dev/null +++ b/examples/chain/ibc/connection/query/1_Connection/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + connectionId := "connection-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCConnection(ctx, connectionId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/connection/query/2_Connections/example.go b/examples/chain/ibc/connection/query/2_Connections/example.go new file mode 100644 index 00000000..42c23719 --- /dev/null +++ b/examples/chain/ibc/connection/query/2_Connections/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConnections(ctx, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/connection/query/3_ClientConnections/example.go b/examples/chain/ibc/connection/query/3_ClientConnections/example.go new file mode 100644 index 00000000..a1fd5599 --- /dev/null +++ b/examples/chain/ibc/connection/query/3_ClientConnections/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCClientConnections(ctx, clientId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go b/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go new file mode 100644 index 00000000..30488c64 --- /dev/null +++ b/examples/chain/ibc/connection/query/4_ConnectionClientState/example.go @@ -0,0 +1,69 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + connectionId := "connection-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCConnectionClientState(ctx, connectionId) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go b/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go new file mode 100644 index 00000000..c2cf7d8a --- /dev/null +++ b/examples/chain/ibc/connection/query/5_ConnectionConsensusState/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + connectionId := "connection-0" + revisionNumber := uint64(0) + revisionHeight := uint64(7379538) + + ctx := context.Background() + + res, err := chainClient.FetchIBCConnectionConsensusState(ctx, connectionId, revisionNumber, revisionHeight) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} diff --git a/examples/chain/ibc/connection/query/6_ConnectionParams/example.go b/examples/chain/ibc/connection/query/6_ConnectionParams/example.go new file mode 100644 index 00000000..dd0cf9ea --- /dev/null +++ b/examples/chain/ibc/connection/query/6_ConnectionParams/example.go @@ -0,0 +1,70 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCConnectionParams(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/transfer/1_MsgTransfer/example.go b/examples/chain/ibc/transfer/1_MsgTransfer/example.go new file mode 100644 index 00000000..52667bfa --- /dev/null +++ b/examples/chain/ibc/transfer/1_MsgTransfer/example.go @@ -0,0 +1,89 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + "cosmossdk.io/math" + + "github.com/InjectiveLabs/sdk-go/client" + "github.com/InjectiveLabs/sdk-go/client/common" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + 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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + // initialize grpc client + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + if err != nil { + panic(err) + } + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + sourcePort := "transfer" + sourceChannel := "channel-126" + coin := sdktypes.Coin{ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ + } + sender := senderAddress.String() + receiver := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + timeoutHeight := ibccoretypes.Height{RevisionNumber: 10, RevisionHeight: 10} + + msg := &ibctransfertypes.MsgTransfer{ + SourcePort: sourcePort, + SourceChannel: sourceChannel, + Token: coin, + Sender: sender, + Receiver: receiver, + TimeoutHeight: timeoutHeight, + } + + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.AsyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/ibc/transfer/query/1_DenomTrace/example.go b/examples/chain/ibc/transfer/query/1_DenomTrace/example.go new file mode 100644 index 00000000..1e13e8c6 --- /dev/null +++ b/examples/chain/ibc/transfer/query/1_DenomTrace/example.go @@ -0,0 +1,76 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denomTrace := types.DenomTrace{ + Path: "transfer/channel-126", + BaseDenom: "uluna", + } + ctx := context.Background() + + res, err := chainClient.FetchDenomTrace(ctx, denomTrace.Hash().String()) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/transfer/query/2_DenomTraces/example.go b/examples/chain/ibc/transfer/query/2_DenomTraces/example.go new file mode 100644 index 00000000..1bf3191c --- /dev/null +++ b/examples/chain/ibc/transfer/query/2_DenomTraces/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + "github.com/cosmos/cosmos-sdk/types/query" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchDenomTraces(ctx, &pagination) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/transfer/query/3_DenomHash/example.go b/examples/chain/ibc/transfer/query/3_DenomHash/example.go new file mode 100644 index 00000000..1eaef69b --- /dev/null +++ b/examples/chain/ibc/transfer/query/3_DenomHash/example.go @@ -0,0 +1,73 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + path := "transfer/channel-126" + baseDenom := "uluna" + fullPath := fmt.Sprintf("%s/%s", path, baseDenom) + ctx := context.Background() + + res, err := chainClient.FetchDenomHash(ctx, fullPath) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go b/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go new file mode 100644 index 00000000..36922820 --- /dev/null +++ b/examples/chain/ibc/transfer/query/4_EscrowAddress/example.go @@ -0,0 +1,72 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + portId := "transfer" + channelId := "channel-126" + ctx := context.Background() + + res, err := chainClient.FetchEscrowAddress(ctx, portId, channelId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go b/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go new file mode 100644 index 00000000..f64c0f1c --- /dev/null +++ b/examples/chain/ibc/transfer/query/5_TotalEscrowForDenom/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + + "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" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + baseDenom := "uluna" + ctx := context.Background() + + res, err := chainClient.FetchTotalEscrowForDenom(ctx, baseDenom) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go b/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go index 9718d252..72ced79e 100644 --- a/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go +++ b/examples/chain/oracle/1_MsgRelayPriceFeedPrice/example.go @@ -3,15 +3,14 @@ package main import ( "fmt" "os" - "time" + "cosmossdk.io/math" "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" oracletypes "github.com/InjectiveLabs/sdk-go/chain/oracle/types" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" rpchttp "github.com/cometbft/cometbft/rpc/client/http" - cosmtypes "github.com/cosmos/cosmos-sdk/types" ) func main() { @@ -57,7 +56,7 @@ func main() { panic(err) } - price := []cosmtypes.Dec{cosmtypes.MustNewDecFromStr("100")} + price := []math.LegacyDec{math.LegacyMustNewDecFromStr("100")} base := []string{"BAYC"} quote := []string{"WETH"} @@ -68,21 +67,12 @@ func main() { Quote: quote, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg - err = chainClient.QueueBroadcastMsg(msg) + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + result, err := chainClient.SyncBroadcastMsg(msg) if err != nil { - fmt.Println(err) - } - - time.Sleep(time.Second * 5) - - gasFee, err := chainClient.GetGasFee() - - if err != nil { - fmt.Println(err) - return + panic(err) } - fmt.Println("gas fee:", gasFee, "INJ") + fmt.Printf("Broadcast result: %s\n", result) } diff --git a/examples/chain/peggy/1_MsgSendToEth/example.go b/examples/chain/peggy/1_MsgSendToEth/example.go index 89623c6b..6bffa175 100644 --- a/examples/chain/peggy/1_MsgSendToEth/example.go +++ b/examples/chain/peggy/1_MsgSendToEth/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -60,10 +62,10 @@ func main() { ethDest := "0xaf79152ac5df276d9a8e1e2e22822f9713474902" amount := sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(5000000000000000000), // 5 INJ + Denom: "inj", Amount: math.NewInt(5000000000000000000), // 5 INJ } bridgeFee := sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(2000000000000000000), // 2 INJ + Denom: "inj", Amount: math.NewInt(2000000000000000000), // 2 INJ } msg := &peggytypes.MsgSendToEth{ @@ -73,7 +75,7 @@ func main() { BridgeFee: bridgeFee, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/permissions/1_CreateNamespace/example.go b/examples/chain/permissions/1_CreateNamespace/example.go new file mode 100644 index 00000000..540d2a9b --- /dev/null +++ b/examples/chain/permissions/1_CreateNamespace/example.go @@ -0,0 +1,93 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + namespace := permissionstypes.Namespace{ + Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", + RolePermissions: []*permissionstypes.Role{ + { + Role: permissionstypes.EVERYONE, + Permissions: uint32(permissionstypes.Action_MINT | permissionstypes.Action_RECEIVE | permissionstypes.Action_BURN), + }, + { + Role: "blacklisted", + Permissions: 0, + }, + }, + AddressRoles: []*permissionstypes.AddressRoles{ + { + Address: blockedAddress, + Roles: []string{"blacklisted"}, + }, + }, + } + + msg := &permissionstypes.MsgCreateNamespace{ + Sender: senderAddress.String(), + Namespace: namespace, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/2_DeleteNamespace/example.go b/examples/chain/permissions/2_DeleteNamespace/example.go new file mode 100644 index 00000000..611f569e --- /dev/null +++ b/examples/chain/permissions/2_DeleteNamespace/example.go @@ -0,0 +1,74 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + msg := &permissionstypes.MsgDeleteNamespace{ + Sender: senderAddress.String(), + NamespaceDenom: namespaceDenom, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/3_UpdateNamespace/example.go b/examples/chain/permissions/3_UpdateNamespace/example.go new file mode 100644 index 00000000..2fd48eaf --- /dev/null +++ b/examples/chain/permissions/3_UpdateNamespace/example.go @@ -0,0 +1,78 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + msg := &permissionstypes.MsgUpdateNamespace{ + Sender: senderAddress.String(), + NamespaceDenom: namespaceDenom, + WasmHook: &permissionstypes.MsgUpdateNamespace_MsgSetWasmHook{NewValue: "inj19ld6swyldyujcn72j7ugnu9twafhs9wxlyye5m"}, + SendsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetSendsPaused{NewValue: true}, + MintsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetMintsPaused{NewValue: true}, + BurnsPaused: &permissionstypes.MsgUpdateNamespace_MsgSetBurnsPaused{NewValue: true}, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/4_UpdateNamespaceRoles/example.go b/examples/chain/permissions/4_UpdateNamespaceRoles/example.go new file mode 100644 index 00000000..62941e9d --- /dev/null +++ b/examples/chain/permissions/4_UpdateNamespaceRoles/example.go @@ -0,0 +1,91 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + msg := &permissionstypes.MsgUpdateNamespaceRoles{ + Sender: senderAddress.String(), + NamespaceDenom: namespaceDenom, + RolePermissions: []*permissionstypes.Role{ + { + Role: permissionstypes.EVERYONE, + Permissions: uint32(permissionstypes.Action_RECEIVE), + }, + { + Role: "blacklisted", + Permissions: 0, + }, + }, + AddressRoles: []*permissionstypes.AddressRoles{ + { + Address: blockedAddress, + Roles: []string{"blacklisted"}, + }, + }, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/5_RevokeNamespaceRoles/example.go b/examples/chain/permissions/5_RevokeNamespaceRoles/example.go new file mode 100644 index 00000000..3bc62f57 --- /dev/null +++ b/examples/chain/permissions/5_RevokeNamespaceRoles/example.go @@ -0,0 +1,81 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + blockedAddress := "inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r" + + msg := &permissionstypes.MsgRevokeNamespaceRoles{ + Sender: senderAddress.String(), + NamespaceDenom: namespaceDenom, + AddressRolesToRevoke: []*permissionstypes.AddressRoles{ + { + Address: blockedAddress, + Roles: []string{"blacklisted"}, + }, + }, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/6_ClaimVoucher/example.go b/examples/chain/permissions/6_ClaimVoucher/example.go new file mode 100644 index 00000000..3af4da11 --- /dev/null +++ b/examples/chain/permissions/6_ClaimVoucher/example.go @@ -0,0 +1,74 @@ +package main + +import ( + "encoding/json" + "fmt" + "os" + + permissionstypes "github.com/InjectiveLabs/sdk-go/chain/permissions/types" + "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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + denom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + msg := &permissionstypes.MsgClaimVoucher{ + Sender: senderAddress.String(), + Denom: denom, + } + + //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + response, err := chainClient.SyncBroadcastMsg(msg) + + if err != nil { + panic(err) + } + + str, _ := json.MarshalIndent(response, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/1_AllNamespaces/example.go b/examples/chain/permissions/query/1_AllNamespaces/example.go new file mode 100644 index 00000000..650477d2 --- /dev/null +++ b/examples/chain/permissions/query/1_AllNamespaces/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchAllNamespaces(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/permissions/query/2_NamespaceByDenom/example.go b/examples/chain/permissions/query/2_NamespaceByDenom/example.go new file mode 100644 index 00000000..69efeb11 --- /dev/null +++ b/examples/chain/permissions/query/2_NamespaceByDenom/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + + ctx := context.Background() + + res, err := chainClient.FetchNamespaceByDenom(ctx, namespaceDenom, true) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/3_AddressRoles/example.go b/examples/chain/permissions/query/3_AddressRoles/example.go new file mode 100644 index 00000000..17fe06a0 --- /dev/null +++ b/examples/chain/permissions/query/3_AddressRoles/example.go @@ -0,0 +1,70 @@ +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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + address := senderAddress.String() + + ctx := context.Background() + + res, err := chainClient.FetchAddressRoles(ctx, namespaceDenom, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/4_AddressesByRole/example.go b/examples/chain/permissions/query/4_AddressesByRole/example.go new file mode 100644 index 00000000..ca2b3f7f --- /dev/null +++ b/examples/chain/permissions/query/4_AddressesByRole/example.go @@ -0,0 +1,70 @@ +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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + namespaceDenom := "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test" + role := "blacklisted" + + ctx := context.Background() + + res, err := chainClient.FetchAddressesByRole(ctx, namespaceDenom, role) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/permissions/query/5_VouchersForAddress/example.go b/examples/chain/permissions/query/5_VouchersForAddress/example.go new file mode 100644 index 00000000..fe7b9d96 --- /dev/null +++ b/examples/chain/permissions/query/5_VouchersForAddress/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("devnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "f9db9bf330e23cb7839039e944adef6e9df447b90b503d5b4464c90bea9022f3", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + address := senderAddress.String() + + ctx := context.Background() + + res, err := chainClient.FetchVouchersForAddress(ctx, address) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) +} diff --git a/examples/chain/staking/1_MsgDelegate/example.go b/examples/chain/staking/1_MsgDelegate/example.go index 756a26dd..59e753e8 100644 --- a/examples/chain/staking/1_MsgDelegate/example.go +++ b/examples/chain/staking/1_MsgDelegate/example.go @@ -5,6 +5,8 @@ import ( "os" "time" + "cosmossdk.io/math" + "github.com/InjectiveLabs/sdk-go/client" "github.com/InjectiveLabs/sdk-go/client/common" @@ -61,10 +63,10 @@ func main() { msg.DelegatorAddress = senderAddress.String() msg.ValidatorAddress = "injvaloper14gy4acwjm96wd20awm9ar6j54lev5p7espy9ug" msg.Amount = sdktypes.Coin{ - Denom: "inj", Amount: sdktypes.NewInt(1000000000000000000), // 1 INJ + Denom: "inj", Amount: math.NewInt(1000000000000000000), // 1 INJ } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg err = chainClient.QueueBroadcastMsg(msg) if err != nil { diff --git a/examples/chain/tendermint/query/1_GetNodeInfo/example.go b/examples/chain/tendermint/query/1_GetNodeInfo/example.go new file mode 100644 index 00000000..b5392b32 --- /dev/null +++ b/examples/chain/tendermint/query/1_GetNodeInfo/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchNodeInfo(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/tendermint/query/2_GetSyncing/example.go b/examples/chain/tendermint/query/2_GetSyncing/example.go new file mode 100644 index 00000000..0d136f24 --- /dev/null +++ b/examples/chain/tendermint/query/2_GetSyncing/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchSyncing(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/tendermint/query/3_GetLatestBlock/example.go b/examples/chain/tendermint/query/3_GetLatestBlock/example.go new file mode 100644 index 00000000..21434356 --- /dev/null +++ b/examples/chain/tendermint/query/3_GetLatestBlock/example.go @@ -0,0 +1,69 @@ +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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchLatestBlock(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/tendermint/query/4_GetBlockByHeight/example.go b/examples/chain/tendermint/query/4_GetBlockByHeight/example.go new file mode 100644 index 00000000..efcca72f --- /dev/null +++ b/examples/chain/tendermint/query/4_GetBlockByHeight/example.go @@ -0,0 +1,70 @@ +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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + height := int64(23040174) + res, err := chainClient.FetchBlockByHeight(ctx, height) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} diff --git a/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go b/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go new file mode 100644 index 00000000..66142f4a --- /dev/null +++ b/examples/chain/tendermint/query/5_GetLatestValidatorSet/example.go @@ -0,0 +1,67 @@ +package main + +import ( + "context" + "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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchLatestValidatorSet(ctx) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res.String()) + +} diff --git a/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go b/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go new file mode 100644 index 00000000..419abf97 --- /dev/null +++ b/examples/chain/tendermint/query/6_GetValidatorSetByHeight/example.go @@ -0,0 +1,71 @@ +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "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" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // 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.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + height := int64(23040174) + pagination := query.PageRequest{Offset: 2, Limit: 10} + res, err := chainClient.FetchValidatorSetByHeight(ctx, height, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res.String()) + +} diff --git a/examples/chain/tokenfactory/1_CreateDenom/example.go b/examples/chain/tokenfactory/1_CreateDenom/example.go index 0ced42bf..83fe830c 100644 --- a/examples/chain/tokenfactory/1_CreateDenom/example.go +++ b/examples/chain/tokenfactory/1_CreateDenom/example.go @@ -59,8 +59,9 @@ func main() { message.Subdenom = "inj_test" message.Name = "Injective Test Token" message.Symbol = "INJTEST" + message.Decimals = 18 - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(message) if err != nil { diff --git a/examples/chain/tokenfactory/2_MsgMint/example.go b/examples/chain/tokenfactory/2_MsgMint/example.go index 26a43830..f04b6899 100644 --- a/examples/chain/tokenfactory/2_MsgMint/example.go +++ b/examples/chain/tokenfactory/2_MsgMint/example.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "cosmossdk.io/math" + tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -59,10 +61,10 @@ func main() { message.Sender = senderAddress.String() message.Amount = sdktypes.Coin{ Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", - Amount: sdktypes.NewInt(1000000000), + Amount: math.NewInt(1000000000), } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(message) if err != nil { diff --git a/examples/chain/tokenfactory/3_MsgBurn/example.go b/examples/chain/tokenfactory/3_MsgBurn/example.go index 35c6cc64..53a6aae1 100644 --- a/examples/chain/tokenfactory/3_MsgBurn/example.go +++ b/examples/chain/tokenfactory/3_MsgBurn/example.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "cosmossdk.io/math" + tokenfactorytypes "github.com/InjectiveLabs/sdk-go/chain/tokenfactory/types" "github.com/InjectiveLabs/sdk-go/client" chainclient "github.com/InjectiveLabs/sdk-go/client/chain" @@ -59,10 +61,10 @@ func main() { message.Sender = senderAddress.String() message.Amount = sdktypes.Coin{ Denom: "factory/inj1hkhdaj2a2clmq5jq6mspsggqs32vynpk228q3r/inj_test", - Amount: sdktypes.NewInt(100), + Amount: math.NewInt(100), } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(message) if err != nil { diff --git a/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go b/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go index d5787500..bb516b1a 100644 --- a/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go +++ b/examples/chain/tokenfactory/4_MsgSetDenomMetadata/example.go @@ -79,13 +79,14 @@ func main() { Symbol: "INJTEST", URI: "http://injective-test.com/icon.jpg", URIHash: "", + Decimals: tokenDecimals, } message := new(tokenfactorytypes.MsgSetDenomMetadata) message.Sender = senderAddress.String() message.Metadata = metadata - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(message) if err != nil { diff --git a/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go b/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go index a9371ebb..09f4c57b 100644 --- a/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go +++ b/examples/chain/tokenfactory/5_MsgChangeAdmin/example.go @@ -60,7 +60,7 @@ func main() { // This is the zero address to remove admin permissions message.NewAdmin = "inj1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqe2hm49" - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(message) if err != nil { diff --git a/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go b/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go index dc405028..bea54441 100644 --- a/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go +++ b/examples/chain/wasmx/1_MsgExecuteContractCompat/example.go @@ -77,7 +77,7 @@ func main() { Funds: funds, } - //AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg + // AsyncBroadcastMsg, SyncBroadcastMsg, QueueBroadcastMsg response, err := chainClient.AsyncBroadcastMsg(&message) if err != nil { diff --git a/examples/exchange/accounts/1_StreamSubaccountBalance/example.go b/examples/exchange/accounts/1_StreamSubaccountBalance/example.go index 49f3222d..c14b5022 100644 --- a/examples/exchange/accounts/1_StreamSubaccountBalance/example.go +++ b/examples/exchange/accounts/1_StreamSubaccountBalance/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/13_StreamTrades/example.go b/examples/exchange/derivatives/13_StreamTrades/example.go index 02239ad5..139a6872 100644 --- a/examples/exchange/derivatives/13_StreamTrades/example.go +++ b/examples/exchange/derivatives/13_StreamTrades/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/14_SubaccountOrdersList/example.go b/examples/exchange/derivatives/14_SubaccountOrdersList/example.go index 0177193e..f7fefbda 100644 --- a/examples/exchange/derivatives/14_SubaccountOrdersList/example.go +++ b/examples/exchange/derivatives/14_SubaccountOrdersList/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/15_SubaccountTradesList/example.go b/examples/exchange/derivatives/15_SubaccountTradesList/example.go index 2bf30a1e..4117ce62 100644 --- a/examples/exchange/derivatives/15_SubaccountTradesList/example.go +++ b/examples/exchange/derivatives/15_SubaccountTradesList/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/16_FundingPayments/example.go b/examples/exchange/derivatives/16_FundingPayments/example.go index 8aa286c9..87dcaf2c 100644 --- a/examples/exchange/derivatives/16_FundingPayments/example.go +++ b/examples/exchange/derivatives/16_FundingPayments/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/17_FundingRates/example.go b/examples/exchange/derivatives/17_FundingRates/example.go index 0512f91a..5271b7bf 100644 --- a/examples/exchange/derivatives/17_FundingRates/example.go +++ b/examples/exchange/derivatives/17_FundingRates/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/1_Market/example.go b/examples/exchange/derivatives/1_Market/example.go index 8576e113..61a1c7f6 100644 --- a/examples/exchange/derivatives/1_Market/example.go +++ b/examples/exchange/derivatives/1_Market/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/2_Markets/example.go b/examples/exchange/derivatives/2_Markets/example.go index 97618d7a..cf18c133 100644 --- a/examples/exchange/derivatives/2_Markets/example.go +++ b/examples/exchange/derivatives/2_Markets/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("mainnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/3_StreamMarket/example.go b/examples/exchange/derivatives/3_StreamMarket/example.go index 2de5f205..ac5bd943 100644 --- a/examples/exchange/derivatives/3_StreamMarket/example.go +++ b/examples/exchange/derivatives/3_StreamMarket/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/4_Orderbook/example.go b/examples/exchange/derivatives/4_Orderbook/example.go index 87ffff36..d14c0501 100644 --- a/examples/exchange/derivatives/4_Orderbook/example.go +++ b/examples/exchange/derivatives/4_Orderbook/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/5_Orderbooks/example.go b/examples/exchange/derivatives/5_Orderbooks/example.go index 29681c50..fdca6060 100644 --- a/examples/exchange/derivatives/5_Orderbooks/example.go +++ b/examples/exchange/derivatives/5_Orderbooks/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/8_Positions/example.go b/examples/exchange/derivatives/8_Positions/example.go index 3b11e289..d081759e 100644 --- a/examples/exchange/derivatives/8_Positions/example.go +++ b/examples/exchange/derivatives/8_Positions/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/derivatives/9_Orders/example.go b/examples/exchange/derivatives/9_Orders/example.go index 824ebd28..5aa8b22c 100644 --- a/examples/exchange/derivatives/9_Orders/example.go +++ b/examples/exchange/derivatives/9_Orders/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/insurance/1_InsuranceFunds/example.go b/examples/exchange/insurance/1_InsuranceFunds/example.go index 63abd806..8cb4adaf 100644 --- a/examples/exchange/insurance/1_InsuranceFunds/example.go +++ b/examples/exchange/insurance/1_InsuranceFunds/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/insurance/2_Redemptions/example.go b/examples/exchange/insurance/2_Redemptions/example.go index e109cc7d..17166b4b 100644 --- a/examples/exchange/insurance/2_Redemptions/example.go +++ b/examples/exchange/insurance/2_Redemptions/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/meta/1_Ping/example.go b/examples/exchange/meta/1_Ping/example.go index 15172af0..f814e871 100644 --- a/examples/exchange/meta/1_Ping/example.go +++ b/examples/exchange/meta/1_Ping/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/meta/2_Version/example.go b/examples/exchange/meta/2_Version/example.go index f9f9ef15..3428627d 100644 --- a/examples/exchange/meta/2_Version/example.go +++ b/examples/exchange/meta/2_Version/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/meta/3_Info/example.go b/examples/exchange/meta/3_Info/example.go index 571c3b6c..6d1bceae 100644 --- a/examples/exchange/meta/3_Info/example.go +++ b/examples/exchange/meta/3_Info/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/meta/4_StreamKeepAlive/example.go b/examples/exchange/meta/4_StreamKeepAlive/example.go index c76a8605..fb483320 100644 --- a/examples/exchange/meta/4_StreamKeepAlive/example.go +++ b/examples/exchange/meta/4_StreamKeepAlive/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { @@ -29,7 +29,7 @@ func main() { case <-ctx.Done(): return default: - res, err := (*stream).Recv() + res, err := stream.Recv() if err != nil { fmt.Println(err) return diff --git a/examples/exchange/spot/10_StreamTrades/example.go b/examples/exchange/spot/10_StreamTrades/example.go index 48d160c1..6406cc99 100644 --- a/examples/exchange/spot/10_StreamTrades/example.go +++ b/examples/exchange/spot/10_StreamTrades/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/11_SubaccountOrdersList/example.go b/examples/exchange/spot/11_SubaccountOrdersList/example.go index 6bb6d48b..e2321f8d 100644 --- a/examples/exchange/spot/11_SubaccountOrdersList/example.go +++ b/examples/exchange/spot/11_SubaccountOrdersList/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/12_SubaccountTradesList/example.go b/examples/exchange/spot/12_SubaccountTradesList/example.go index 401e981d..1830dc20 100644 --- a/examples/exchange/spot/12_SubaccountTradesList/example.go +++ b/examples/exchange/spot/12_SubaccountTradesList/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/13_Orderbooks/example.go b/examples/exchange/spot/13_Orderbooks/example.go index ebab285a..f6a865ed 100644 --- a/examples/exchange/spot/13_Orderbooks/example.go +++ b/examples/exchange/spot/13_Orderbooks/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/1_Market/example.go b/examples/exchange/spot/1_Market/example.go index 813c75c8..4c980328 100644 --- a/examples/exchange/spot/1_Market/example.go +++ b/examples/exchange/spot/1_Market/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/2_Markets/example.go b/examples/exchange/spot/2_Markets/example.go index e11b3b6d..4c5488c1 100644 --- a/examples/exchange/spot/2_Markets/example.go +++ b/examples/exchange/spot/2_Markets/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/3_StreamMarket/example.go b/examples/exchange/spot/3_StreamMarket/example.go index e7af4810..d1beea22 100644 --- a/examples/exchange/spot/3_StreamMarket/example.go +++ b/examples/exchange/spot/3_StreamMarket/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/4_Orderbook/example.go b/examples/exchange/spot/4_Orderbook/example.go index 2c158cbc..9e964ca4 100644 --- a/examples/exchange/spot/4_Orderbook/example.go +++ b/examples/exchange/spot/4_Orderbook/example.go @@ -10,7 +10,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/5_Orders/example.go b/examples/exchange/spot/5_Orders/example.go index 4fe513c8..850525ed 100644 --- a/examples/exchange/spot/5_Orders/example.go +++ b/examples/exchange/spot/5_Orders/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("mainnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { diff --git a/examples/exchange/spot/8_StreamOrderbookUpdate/example.go b/examples/exchange/spot/8_StreamOrderbookUpdate/example.go index 9e0ba2d3..2d293f72 100644 --- a/examples/exchange/spot/8_StreamOrderbookUpdate/example.go +++ b/examples/exchange/spot/8_StreamOrderbookUpdate/example.go @@ -20,7 +20,7 @@ type MapOrderbook struct { func main() { network := common.LoadNetwork("devnet-1", "") - exchangeClient, err := exchangeclient.NewExchangeClient(network.ExchangeGrpcEndpoint) + exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { fmt.Println(err) panic(err) diff --git a/examples/exchange/spot/9_StreamOrders/example.go b/examples/exchange/spot/9_StreamOrders/example.go index cb4cfffb..98c22487 100644 --- a/examples/exchange/spot/9_StreamOrders/example.go +++ b/examples/exchange/spot/9_StreamOrders/example.go @@ -11,7 +11,7 @@ import ( ) func main() { - //network := common.LoadNetwork("mainnet", "k8s") + // network := common.LoadNetwork("mainnet", "k8s") network := common.LoadNetwork("testnet", "lb") exchangeClient, err := exchangeclient.NewExchangeClient(network) if err != nil { 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 new file mode 100644 index 00000000..b118a8a5 --- /dev/null +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -0,0 +1,5333 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectiveAccountsRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.19.4 +// source: goadesign_goagen_injective_accounts_rpc.proto + +package injective_accounts_rpcpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PortfolioRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *PortfolioRequest) Reset() { + *x = PortfolioRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PortfolioRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortfolioRequest) ProtoMessage() {} + +func (x *PortfolioRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] + 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 PortfolioRequest.ProtoReflect.Descriptor instead. +func (*PortfolioRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{0} +} + +func (x *PortfolioRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type PortfolioResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The portfolio of this account + Portfolio *AccountPortfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` +} + +func (x *PortfolioResponse) Reset() { + *x = PortfolioResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PortfolioResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortfolioResponse) ProtoMessage() {} + +func (x *PortfolioResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] + 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 PortfolioResponse.ProtoReflect.Descriptor instead. +func (*PortfolioResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *PortfolioResponse) GetPortfolio() *AccountPortfolio { + if x != nil { + return x.Portfolio + } + return nil +} + +type AccountPortfolio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account's portfolio value in USD. + PortfolioValue string `protobuf:"bytes,1,opt,name=portfolio_value,json=portfolioValue,proto3" json:"portfolio_value,omitempty"` + // The account's available balance value in USD. + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` + // The account's locked balance value in USD. + LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` + // The account's total unrealized PnL value in USD. + UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` + // List of all subaccounts' portfolio + Subaccounts []*SubaccountPortfolio `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` +} + +func (x *AccountPortfolio) Reset() { + *x = AccountPortfolio{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolio) ProtoMessage() {} + +func (x *AccountPortfolio) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] + 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 AccountPortfolio.ProtoReflect.Descriptor instead. +func (*AccountPortfolio) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *AccountPortfolio) GetPortfolioValue() string { + if x != nil { + return x.PortfolioValue + } + return "" +} + +func (x *AccountPortfolio) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +func (x *AccountPortfolio) GetLockedBalance() string { + if x != nil { + return x.LockedBalance + } + return "" +} + +func (x *AccountPortfolio) GetUnrealizedPnl() string { + if x != nil { + return x.UnrealizedPnl + } + return "" +} + +func (x *AccountPortfolio) GetSubaccounts() []*SubaccountPortfolio { + if x != nil { + return x.Subaccounts + } + return nil +} + +type SubaccountPortfolio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ID of this subaccount + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The subaccount's available balance value in USD. + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` + // The subaccount's locked balance value in USD. + LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` + // The subaccount's total unrealized PnL value in USD. + UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` +} + +func (x *SubaccountPortfolio) Reset() { + *x = SubaccountPortfolio{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountPortfolio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountPortfolio) ProtoMessage() {} + +func (x *SubaccountPortfolio) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] + 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 SubaccountPortfolio.ProtoReflect.Descriptor instead. +func (*SubaccountPortfolio) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *SubaccountPortfolio) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountPortfolio) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +func (x *SubaccountPortfolio) GetLockedBalance() string { + if x != nil { + return x.LockedBalance + } + return "" +} + +func (x *SubaccountPortfolio) GetUnrealizedPnl() string { + if x != nil { + return x.UnrealizedPnl + } + return "" +} + +type OrderStatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SpotOrderHashes []string `protobuf:"bytes,1,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` + DerivativeOrderHashes []string `protobuf:"bytes,2,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` +} + +func (x *OrderStatesRequest) Reset() { + *x = OrderStatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStatesRequest) ProtoMessage() {} + +func (x *OrderStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] + 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 OrderStatesRequest.ProtoReflect.Descriptor instead. +func (*OrderStatesRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *OrderStatesRequest) GetSpotOrderHashes() []string { + if x != nil { + return x.SpotOrderHashes + } + return nil +} + +func (x *OrderStatesRequest) GetDerivativeOrderHashes() []string { + if x != nil { + return x.DerivativeOrderHashes + } + return nil +} + +type OrderStatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of the spot order state records + SpotOrderStates []*OrderStateRecord `protobuf:"bytes,1,rep,name=spot_order_states,json=spotOrderStates,proto3" json:"spot_order_states,omitempty"` + // List of the derivative order state records + DerivativeOrderStates []*OrderStateRecord `protobuf:"bytes,2,rep,name=derivative_order_states,json=derivativeOrderStates,proto3" json:"derivative_order_states,omitempty"` +} + +func (x *OrderStatesResponse) Reset() { + *x = OrderStatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStatesResponse) ProtoMessage() {} + +func (x *OrderStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] + 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 OrderStatesResponse.ProtoReflect.Descriptor instead. +func (*OrderStatesResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{5} +} + +func (x *OrderStatesResponse) GetSpotOrderStates() []*OrderStateRecord { + if x != nil { + return x.SpotOrderStates + } + return nil +} + +func (x *OrderStatesResponse) GetDerivativeOrderStates() []*OrderStateRecord { + if x != nil { + return x.DerivativeOrderStates + } + return nil +} + +type OrderStateRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The Market ID of the order + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The type of the order + OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,5,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // The state (status) of the order + State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` + // The filled quantity of the order + QuantityFilled string `protobuf:"bytes,7,opt,name=quantity_filled,json=quantityFilled,proto3" json:"quantity_filled,omitempty"` + // The filled quantity of the order + QuantityRemaining string `protobuf:"bytes,8,opt,name=quantity_remaining,json=quantityRemaining,proto3" json:"quantity_remaining,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order prices + Price string `protobuf:"bytes,11,opt,name=price,proto3" json:"price,omitempty"` + // Margin for derivative order + Margin string `protobuf:"bytes,12,opt,name=margin,proto3" json:"margin,omitempty"` +} + +func (x *OrderStateRecord) Reset() { + *x = OrderStateRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStateRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStateRecord) ProtoMessage() {} + +func (x *OrderStateRecord) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] + 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 OrderStateRecord.ProtoReflect.Descriptor instead. +func (*OrderStateRecord) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *OrderStateRecord) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *OrderStateRecord) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *OrderStateRecord) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *OrderStateRecord) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *OrderStateRecord) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *OrderStateRecord) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *OrderStateRecord) GetQuantityFilled() string { + if x != nil { + return x.QuantityFilled + } + return "" +} + +func (x *OrderStateRecord) GetQuantityRemaining() string { + if x != nil { + return x.QuantityRemaining + } + return "" +} + +func (x *OrderStateRecord) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *OrderStateRecord) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *OrderStateRecord) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *OrderStateRecord) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +type SubaccountsListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address, the subaccounts owner + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *SubaccountsListRequest) Reset() { + *x = SubaccountsListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountsListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountsListRequest) ProtoMessage() {} + +func (x *SubaccountsListRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] + 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 SubaccountsListRequest.ProtoReflect.Descriptor instead. +func (*SubaccountsListRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *SubaccountsListRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type SubaccountsListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Subaccounts []string `protobuf:"bytes,1,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` +} + +func (x *SubaccountsListResponse) Reset() { + *x = SubaccountsListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountsListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountsListResponse) ProtoMessage() {} + +func (x *SubaccountsListResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] + 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 SubaccountsListResponse.ProtoReflect.Descriptor instead. +func (*SubaccountsListResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *SubaccountsListResponse) GetSubaccounts() []string { + if x != nil { + return x.Subaccounts + } + return nil +} + +type SubaccountBalancesListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter balances by denoms. If not set, the balances of all the denoms for + // the subaccount are provided. + Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` +} + +func (x *SubaccountBalancesListRequest) Reset() { + *x = SubaccountBalancesListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalancesListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalancesListRequest) ProtoMessage() {} + +func (x *SubaccountBalancesListRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] + 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 SubaccountBalancesListRequest.ProtoReflect.Descriptor instead. +func (*SubaccountBalancesListRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{9} +} + +func (x *SubaccountBalancesListRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalancesListRequest) GetDenoms() []string { + if x != nil { + return x.Denoms + } + return nil +} + +type SubaccountBalancesListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of subaccount balances + Balances []*SubaccountBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` +} + +func (x *SubaccountBalancesListResponse) Reset() { + *x = SubaccountBalancesListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalancesListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalancesListResponse) ProtoMessage() {} + +func (x *SubaccountBalancesListResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] + 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 SubaccountBalancesListResponse.ProtoReflect.Descriptor instead. +func (*SubaccountBalancesListResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *SubaccountBalancesListResponse) GetBalances() []*SubaccountBalance { + if x != nil { + return x.Balances + } + return nil +} + +type SubaccountBalance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Related subaccount ID + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Account address, owner of this subaccount + AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Coin denom on the chain. + Denom string `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` + Deposit *SubaccountDeposit `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty"` +} + +func (x *SubaccountBalance) Reset() { + *x = SubaccountBalance{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalance) ProtoMessage() {} + +func (x *SubaccountBalance) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_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 SubaccountBalance.ProtoReflect.Descriptor instead. +func (*SubaccountBalance) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *SubaccountBalance) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalance) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *SubaccountBalance) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *SubaccountBalance) GetDeposit() *SubaccountDeposit { + if x != nil { + return x.Deposit + } + return nil +} + +type SubaccountDeposit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` +} + +func (x *SubaccountDeposit) Reset() { + *x = SubaccountDeposit{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountDeposit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountDeposit) ProtoMessage() {} + +func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_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 SubaccountDeposit.ProtoReflect.Descriptor instead. +func (*SubaccountDeposit) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{12} +} + +func (x *SubaccountDeposit) GetTotalBalance() string { + if x != nil { + return x.TotalBalance + } + return "" +} + +func (x *SubaccountDeposit) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +type SubaccountBalanceEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Specify denom to get balance + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *SubaccountBalanceEndpointRequest) Reset() { + *x = SubaccountBalanceEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceEndpointRequest) ProtoMessage() {} + +func (x *SubaccountBalanceEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] + 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 SubaccountBalanceEndpointRequest.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceEndpointRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{13} +} + +func (x *SubaccountBalanceEndpointRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalanceEndpointRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +type SubaccountBalanceEndpointResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *SubaccountBalanceEndpointResponse) Reset() { + *x = SubaccountBalanceEndpointResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceEndpointResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceEndpointResponse) ProtoMessage() {} + +func (x *SubaccountBalanceEndpointResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] + 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 SubaccountBalanceEndpointResponse.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceEndpointResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{14} +} + +func (x *SubaccountBalanceEndpointResponse) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +type StreamSubaccountBalanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter balances by denoms. If not set, the balances of all the denoms for + // the subaccount are provided. + Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` +} + +func (x *StreamSubaccountBalanceRequest) Reset() { + *x = StreamSubaccountBalanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamSubaccountBalanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamSubaccountBalanceRequest) ProtoMessage() {} + +func (x *StreamSubaccountBalanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] + 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 StreamSubaccountBalanceRequest.ProtoReflect.Descriptor instead. +func (*StreamSubaccountBalanceRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{15} +} + +func (x *StreamSubaccountBalanceRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *StreamSubaccountBalanceRequest) GetDenoms() []string { + if x != nil { + return x.Denoms + } + return nil +} + +type StreamSubaccountBalanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *StreamSubaccountBalanceResponse) Reset() { + *x = StreamSubaccountBalanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamSubaccountBalanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamSubaccountBalanceResponse) ProtoMessage() {} + +func (x *StreamSubaccountBalanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] + 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 StreamSubaccountBalanceResponse.ProtoReflect.Descriptor instead. +func (*StreamSubaccountBalanceResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{16} +} + +func (x *StreamSubaccountBalanceResponse) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *StreamSubaccountBalanceResponse) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type SubaccountHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the history from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter history by denom + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // Filter history by transfer type + TransferTypes []string `protobuf:"bytes,3,rep,name=transfer_types,json=transferTypes,proto3" json:"transfer_types,omitempty"` + // Skip will skip the first n item from the result + Skip uint64 `protobuf:"varint,4,opt,name=skip,proto3" json:"skip,omitempty"` + // Limit is used to specify the maximum number of items to be returned + Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` + // Upper bound of account transfer history's executedAt + EndTime int64 `protobuf:"zigzag64,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` +} + +func (x *SubaccountHistoryRequest) Reset() { + *x = SubaccountHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountHistoryRequest) ProtoMessage() {} + +func (x *SubaccountHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] + 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 SubaccountHistoryRequest.ProtoReflect.Descriptor instead. +func (*SubaccountHistoryRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{17} +} + +func (x *SubaccountHistoryRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountHistoryRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *SubaccountHistoryRequest) GetTransferTypes() []string { + if x != nil { + return x.TransferTypes + } + return nil +} + +func (x *SubaccountHistoryRequest) GetSkip() uint64 { + if x != nil { + return x.Skip + } + return 0 +} + +func (x *SubaccountHistoryRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *SubaccountHistoryRequest) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + +type SubaccountHistoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of subaccount transfers + Transfers []*SubaccountBalanceTransfer `protobuf:"bytes,1,rep,name=transfers,proto3" json:"transfers,omitempty"` + Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` +} + +func (x *SubaccountHistoryResponse) Reset() { + *x = SubaccountHistoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountHistoryResponse) ProtoMessage() {} + +func (x *SubaccountHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] + 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 SubaccountHistoryResponse.ProtoReflect.Descriptor instead. +func (*SubaccountHistoryResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{18} +} + +func (x *SubaccountHistoryResponse) GetTransfers() []*SubaccountBalanceTransfer { + if x != nil { + return x.Transfers + } + return nil +} + +func (x *SubaccountHistoryResponse) GetPaging() *Paging { + if x != nil { + return x.Paging + } + return nil +} + +type SubaccountBalanceTransfer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Type of the subaccount balance transfer + TransferType string `protobuf:"bytes,1,opt,name=transfer_type,json=transferType,proto3" json:"transfer_type,omitempty"` + // Subaccount ID of the sending side + SrcSubaccountId string `protobuf:"bytes,2,opt,name=src_subaccount_id,json=srcSubaccountId,proto3" json:"src_subaccount_id,omitempty"` + // Account address of the sending side + SrcAccountAddress string `protobuf:"bytes,3,opt,name=src_account_address,json=srcAccountAddress,proto3" json:"src_account_address,omitempty"` + // Subaccount ID of the receiving side + DstSubaccountId string `protobuf:"bytes,4,opt,name=dst_subaccount_id,json=dstSubaccountId,proto3" json:"dst_subaccount_id,omitempty"` + // Account address of the receiving side + DstAccountAddress string `protobuf:"bytes,5,opt,name=dst_account_address,json=dstAccountAddress,proto3" json:"dst_account_address,omitempty"` + // Coin amount of the transfer + Amount *CosmosCoin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` + // Timestamp of the transfer in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,7,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` +} + +func (x *SubaccountBalanceTransfer) Reset() { + *x = SubaccountBalanceTransfer{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceTransfer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceTransfer) ProtoMessage() {} + +func (x *SubaccountBalanceTransfer) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] + 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 SubaccountBalanceTransfer.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceTransfer) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{19} +} + +func (x *SubaccountBalanceTransfer) GetTransferType() string { + if x != nil { + return x.TransferType + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetSrcSubaccountId() string { + if x != nil { + return x.SrcSubaccountId + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetSrcAccountAddress() string { + if x != nil { + return x.SrcAccountAddress + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetDstSubaccountId() string { + if x != nil { + return x.DstSubaccountId + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetDstAccountAddress() string { + if x != nil { + return x.DstAccountAddress + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetAmount() *CosmosCoin { + if x != nil { + return x.Amount + } + return nil +} + +func (x *SubaccountBalanceTransfer) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +type CosmosCoin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Coin denominator + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // Coin amount (big int) + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *CosmosCoin) Reset() { + *x = CosmosCoin{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CosmosCoin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CosmosCoin) ProtoMessage() {} + +func (x *CosmosCoin) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] + 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 CosmosCoin.ProtoReflect.Descriptor instead. +func (*CosmosCoin) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{20} +} + +func (x *CosmosCoin) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *CosmosCoin) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +// Paging defines the structure for required params for handling pagination +type Paging struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // total number of txs saved in database + Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` + // can be either block height or index num + From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` + // can be either block height or index num + To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` + // count entries by subaccount, serving some places on helix + CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` + // array of tokens to navigate to the next pages + Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` +} + +func (x *Paging) Reset() { + *x = Paging{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Paging) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Paging) ProtoMessage() {} + +func (x *Paging) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] + 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 Paging.ProtoReflect.Descriptor instead. +func (*Paging) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{21} +} + +func (x *Paging) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *Paging) GetFrom() int32 { + if x != nil { + return x.From + } + return 0 +} + +func (x *Paging) GetTo() int32 { + if x != nil { + return x.To + } + return 0 +} + +func (x *Paging) GetCountBySubaccount() int64 { + if x != nil { + return x.CountBySubaccount + } + return 0 +} + +func (x *Paging) GetNext() []string { + if x != nil { + return x.Next + } + return nil +} + +type SubaccountOrderSummaryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the summary from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // MarketId is limiting order summary to specific market only + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Filter by direction of the orders + OrderDirection string `protobuf:"bytes,3,opt,name=order_direction,json=orderDirection,proto3" json:"order_direction,omitempty"` +} + +func (x *SubaccountOrderSummaryRequest) Reset() { + *x = SubaccountOrderSummaryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountOrderSummaryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountOrderSummaryRequest) ProtoMessage() {} + +func (x *SubaccountOrderSummaryRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] + 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 SubaccountOrderSummaryRequest.ProtoReflect.Descriptor instead. +func (*SubaccountOrderSummaryRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{22} +} + +func (x *SubaccountOrderSummaryRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountOrderSummaryRequest) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SubaccountOrderSummaryRequest) GetOrderDirection() string { + if x != nil { + return x.OrderDirection + } + return "" +} + +type SubaccountOrderSummaryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total count of subaccount's spot orders in given market and direction + SpotOrdersTotal int64 `protobuf:"zigzag64,1,opt,name=spot_orders_total,json=spotOrdersTotal,proto3" json:"spot_orders_total,omitempty"` + // Total count of subaccount's derivative orders in given market and direction + DerivativeOrdersTotal int64 `protobuf:"zigzag64,2,opt,name=derivative_orders_total,json=derivativeOrdersTotal,proto3" json:"derivative_orders_total,omitempty"` +} + +func (x *SubaccountOrderSummaryResponse) Reset() { + *x = SubaccountOrderSummaryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountOrderSummaryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountOrderSummaryResponse) ProtoMessage() {} + +func (x *SubaccountOrderSummaryResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] + 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 SubaccountOrderSummaryResponse.ProtoReflect.Descriptor instead. +func (*SubaccountOrderSummaryResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{23} +} + +func (x *SubaccountOrderSummaryResponse) GetSpotOrdersTotal() int64 { + if x != nil { + return x.SpotOrdersTotal + } + return 0 +} + +func (x *SubaccountOrderSummaryResponse) GetDerivativeOrdersTotal() int64 { + if x != nil { + return x.DerivativeOrdersTotal + } + return 0 +} + +type RewardsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The distribution epoch sequence number. -1 for latest. + Epoch int64 `protobuf:"zigzag64,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Account address for the rewards distribution + AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *RewardsRequest) Reset() { + *x = RewardsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RewardsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RewardsRequest) ProtoMessage() {} + +func (x *RewardsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] + 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 RewardsRequest.ProtoReflect.Descriptor instead. +func (*RewardsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{24} +} + +func (x *RewardsRequest) GetEpoch() int64 { + if x != nil { + return x.Epoch + } + return 0 +} + +func (x *RewardsRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type RewardsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The trading rewards distributed + Rewards []*Reward `protobuf:"bytes,1,rep,name=rewards,proto3" json:"rewards,omitempty"` +} + +func (x *RewardsResponse) Reset() { + *x = RewardsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RewardsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RewardsResponse) ProtoMessage() {} + +func (x *RewardsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] + 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 RewardsResponse.ProtoReflect.Descriptor instead. +func (*RewardsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{25} +} + +func (x *RewardsResponse) GetRewards() []*Reward { + if x != nil { + return x.Rewards + } + return nil +} + +type Reward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Reward coins distributed + Rewards []*Coin `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` + // Rewards distribution timestamp in UNIX millis. + DistributedAt int64 `protobuf:"zigzag64,3,opt,name=distributed_at,json=distributedAt,proto3" json:"distributed_at,omitempty"` +} + +func (x *Reward) Reset() { + *x = Reward{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Reward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reward) ProtoMessage() {} + +func (x *Reward) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] + 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 Reward.ProtoReflect.Descriptor instead. +func (*Reward) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{26} +} + +func (x *Reward) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *Reward) GetRewards() []*Coin { + if x != nil { + return x.Rewards + } + return nil +} + +func (x *Reward) GetDistributedAt() int64 { + if x != nil { + return x.DistributedAt + } + return 0 +} + +type Coin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Denom of the coin + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *Coin) Reset() { + *x = Coin{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Coin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Coin) ProtoMessage() {} + +func (x *Coin) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] + 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 Coin.ProtoReflect.Descriptor instead. +func (*Coin) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{27} +} + +func (x *Coin) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *Coin) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +type StreamAccountDataRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *StreamAccountDataRequest) Reset() { + *x = StreamAccountDataRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountDataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountDataRequest) ProtoMessage() {} + +func (x *StreamAccountDataRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] + 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 StreamAccountDataRequest.ProtoReflect.Descriptor instead. +func (*StreamAccountDataRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{28} +} + +func (x *StreamAccountDataRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type StreamAccountDataResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubaccountBalance *SubaccountBalanceResult `protobuf:"bytes,1,opt,name=subaccount_balance,json=subaccountBalance,proto3" json:"subaccount_balance,omitempty"` + Position *PositionsResult `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` + Trade *TradeResult `protobuf:"bytes,3,opt,name=trade,proto3" json:"trade,omitempty"` + Order *OrderResult `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` + OrderHistory *OrderHistoryResult `protobuf:"bytes,5,opt,name=order_history,json=orderHistory,proto3" json:"order_history,omitempty"` + FundingPayment *FundingPaymentResult `protobuf:"bytes,6,opt,name=funding_payment,json=fundingPayment,proto3" json:"funding_payment,omitempty"` +} + +func (x *StreamAccountDataResponse) Reset() { + *x = StreamAccountDataResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountDataResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountDataResponse) ProtoMessage() {} + +func (x *StreamAccountDataResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] + 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 StreamAccountDataResponse.ProtoReflect.Descriptor instead. +func (*StreamAccountDataResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{29} +} + +func (x *StreamAccountDataResponse) GetSubaccountBalance() *SubaccountBalanceResult { + if x != nil { + return x.SubaccountBalance + } + return nil +} + +func (x *StreamAccountDataResponse) GetPosition() *PositionsResult { + if x != nil { + return x.Position + } + return nil +} + +func (x *StreamAccountDataResponse) GetTrade() *TradeResult { + if x != nil { + return x.Trade + } + return nil +} + +func (x *StreamAccountDataResponse) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +func (x *StreamAccountDataResponse) GetOrderHistory() *OrderHistoryResult { + if x != nil { + return x.OrderHistory + } + return nil +} + +func (x *StreamAccountDataResponse) GetFundingPayment() *FundingPaymentResult { + if x != nil { + return x.FundingPayment + } + return nil +} + +type SubaccountBalanceResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *SubaccountBalanceResult) Reset() { + *x = SubaccountBalanceResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceResult) ProtoMessage() {} + +func (x *SubaccountBalanceResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] + 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 SubaccountBalanceResult.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{30} +} + +func (x *SubaccountBalanceResult) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *SubaccountBalanceResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type PositionsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Updated derivative Position + Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *PositionsResult) Reset() { + *x = PositionsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionsResult) ProtoMessage() {} + +func (x *PositionsResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] + 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 PositionsResult.ProtoReflect.Descriptor instead. +func (*PositionsResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{31} +} + +func (x *PositionsResult) GetPosition() *Position { + if x != nil { + return x.Position + } + return nil +} + +func (x *PositionsResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type Position struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ticker of the derivative market + Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that the position belongs to + SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Direction of the position + Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` + // Quantity of the position + Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Price of the position + EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` + // Margin of the position + Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` + // LiquidationPrice of the position + LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` + // MarkPrice of the position + MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` + // Position updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Position created timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` +} + +func (x *Position) Reset() { + *x = Position{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Position) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Position) ProtoMessage() {} + +func (x *Position) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] + 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 Position.ProtoReflect.Descriptor instead. +func (*Position) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{32} +} + +func (x *Position) GetTicker() string { + if x != nil { + return x.Ticker + } + return "" +} + +func (x *Position) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *Position) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *Position) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *Position) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *Position) GetEntryPrice() string { + if x != nil { + return x.EntryPrice + } + return "" +} + +func (x *Position) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *Position) GetLiquidationPrice() string { + if x != nil { + return x.LiquidationPrice + } + return "" +} + +func (x *Position) GetMarkPrice() string { + if x != nil { + return x.MarkPrice + } + return "" +} + +func (x *Position) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *Position) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type TradeResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Trade: + // + // *TradeResult_SpotTrade + // *TradeResult_DerivativeTrade + Trade isTradeResult_Trade `protobuf_oneof:"trade"` + // Executed trades update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *TradeResult) Reset() { + *x = TradeResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TradeResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TradeResult) ProtoMessage() {} + +func (x *TradeResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] + 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 TradeResult.ProtoReflect.Descriptor instead. +func (*TradeResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{33} +} + +func (m *TradeResult) GetTrade() isTradeResult_Trade { + if m != nil { + return m.Trade + } + return nil +} + +func (x *TradeResult) GetSpotTrade() *SpotTrade { + if x, ok := x.GetTrade().(*TradeResult_SpotTrade); ok { + return x.SpotTrade + } + return nil +} + +func (x *TradeResult) GetDerivativeTrade() *DerivativeTrade { + if x, ok := x.GetTrade().(*TradeResult_DerivativeTrade); ok { + return x.DerivativeTrade + } + return nil +} + +func (x *TradeResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *TradeResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isTradeResult_Trade interface { + isTradeResult_Trade() +} + +type TradeResult_SpotTrade struct { + // New spot market trade + SpotTrade *SpotTrade `protobuf:"bytes,1,opt,name=spot_trade,json=spotTrade,proto3,oneof"` +} + +type TradeResult_DerivativeTrade struct { + // New derivative market trade + DerivativeTrade *DerivativeTrade `protobuf:"bytes,2,opt,name=derivative_trade,json=derivativeTrade,proto3,oneof"` +} + +func (*TradeResult_SpotTrade) isTradeResult_Trade() {} + +func (*TradeResult_DerivativeTrade) isTradeResult_Trade() {} + +type SpotTrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Maker order hash. + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that executed the trade + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The ID of the market that this trade is in + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The execution type of the trade + TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` + // The direction the trade + TradeDirection string `protobuf:"bytes,5,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` + // Price level at which trade has been executed + Price *PriceLevel `protobuf:"bytes,6,opt,name=price,proto3" json:"price,omitempty"` + // The fee associated with the trade (quote asset denom) + Fee string `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` + // Timestamp of trade execution in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,8,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` + // Fee recipient address + 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 + 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"` +} + +func (x *SpotTrade) Reset() { + *x = SpotTrade{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotTrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotTrade) ProtoMessage() {} + +func (x *SpotTrade) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] + 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 SpotTrade.ProtoReflect.Descriptor instead. +func (*SpotTrade) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{34} +} + +func (x *SpotTrade) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotTrade) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotTrade) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotTrade) GetTradeExecutionType() string { + if x != nil { + return x.TradeExecutionType + } + return "" +} + +func (x *SpotTrade) GetTradeDirection() string { + if x != nil { + return x.TradeDirection + } + return "" +} + +func (x *SpotTrade) GetPrice() *PriceLevel { + if x != nil { + return x.Price + } + return nil +} + +func (x *SpotTrade) GetFee() string { + if x != nil { + return x.Fee + } + return "" +} + +func (x *SpotTrade) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +func (x *SpotTrade) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *SpotTrade) GetTradeId() string { + if x != nil { + return x.TradeId + } + return "" +} + +func (x *SpotTrade) GetExecutionSide() string { + if x != nil { + return x.ExecutionSide + } + return "" +} + +func (x *SpotTrade) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type PriceLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Price number of the price level. + Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the price level. + Quantity string `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Price level last updated timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *PriceLevel) Reset() { + *x = PriceLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PriceLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PriceLevel) ProtoMessage() {} + +func (x *PriceLevel) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] + 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 PriceLevel.ProtoReflect.Descriptor instead. +func (*PriceLevel) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{35} +} + +func (x *PriceLevel) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *PriceLevel) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *PriceLevel) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type DerivativeTrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Order hash. + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that executed the trade + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The ID of the market that this trade is in + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The execution type of the trade + TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` + // True if the trade is a liquidation + IsLiquidation bool `protobuf:"varint,5,opt,name=is_liquidation,json=isLiquidation,proto3" json:"is_liquidation,omitempty"` + // Position Delta from the trade + PositionDelta *PositionDelta `protobuf:"bytes,6,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` + // The payout associated with the trade + Payout string `protobuf:"bytes,7,opt,name=payout,proto3" json:"payout,omitempty"` + // The fee associated with the trade + Fee string `protobuf:"bytes,8,opt,name=fee,proto3" json:"fee,omitempty"` + // Timestamp of trade execution in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,9,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` + // Fee recipient address + 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 + 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"` +} + +func (x *DerivativeTrade) Reset() { + *x = DerivativeTrade{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeTrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeTrade) ProtoMessage() {} + +func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] + 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 DerivativeTrade.ProtoReflect.Descriptor instead. +func (*DerivativeTrade) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{36} +} + +func (x *DerivativeTrade) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeTrade) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeTrade) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeTrade) GetTradeExecutionType() string { + if x != nil { + return x.TradeExecutionType + } + return "" +} + +func (x *DerivativeTrade) GetIsLiquidation() bool { + if x != nil { + return x.IsLiquidation + } + return false +} + +func (x *DerivativeTrade) GetPositionDelta() *PositionDelta { + if x != nil { + return x.PositionDelta + } + return nil +} + +func (x *DerivativeTrade) GetPayout() string { + if x != nil { + return x.Payout + } + return "" +} + +func (x *DerivativeTrade) GetFee() string { + if x != nil { + return x.Fee + } + return "" +} + +func (x *DerivativeTrade) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +func (x *DerivativeTrade) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *DerivativeTrade) GetTradeId() string { + if x != nil { + return x.TradeId + } + return "" +} + +func (x *DerivativeTrade) GetExecutionSide() string { + if x != nil { + return x.ExecutionSide + } + return "" +} + +func (x *DerivativeTrade) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type PositionDelta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The direction the trade + TradeDirection string `protobuf:"bytes,1,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` + // Execution Price of the trade. + ExecutionPrice string `protobuf:"bytes,2,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` + // Execution Quantity of the trade. + ExecutionQuantity string `protobuf:"bytes,3,opt,name=execution_quantity,json=executionQuantity,proto3" json:"execution_quantity,omitempty"` + // Execution Margin of the trade. + ExecutionMargin string `protobuf:"bytes,4,opt,name=execution_margin,json=executionMargin,proto3" json:"execution_margin,omitempty"` +} + +func (x *PositionDelta) Reset() { + *x = PositionDelta{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionDelta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionDelta) ProtoMessage() {} + +func (x *PositionDelta) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] + 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 PositionDelta.ProtoReflect.Descriptor instead. +func (*PositionDelta) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{37} +} + +func (x *PositionDelta) GetTradeDirection() string { + if x != nil { + return x.TradeDirection + } + return "" +} + +func (x *PositionDelta) GetExecutionPrice() string { + if x != nil { + return x.ExecutionPrice + } + return "" +} + +func (x *PositionDelta) GetExecutionQuantity() string { + if x != nil { + return x.ExecutionQuantity + } + return "" +} + +func (x *PositionDelta) GetExecutionMargin() string { + if x != nil { + return x.ExecutionMargin + } + return "" +} + +type OrderResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Order: + // + // *OrderResult_SpotOrder + // *OrderResult_DerivativeOrder + Order isOrderResult_Order `protobuf_oneof:"order"` + // Executed orders update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *OrderResult) Reset() { + *x = OrderResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderResult) ProtoMessage() {} + +func (x *OrderResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] + 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 OrderResult.ProtoReflect.Descriptor instead. +func (*OrderResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{38} +} + +func (m *OrderResult) GetOrder() isOrderResult_Order { + if m != nil { + return m.Order + } + return nil +} + +func (x *OrderResult) GetSpotOrder() *SpotLimitOrder { + if x, ok := x.GetOrder().(*OrderResult_SpotOrder); ok { + return x.SpotOrder + } + return nil +} + +func (x *OrderResult) GetDerivativeOrder() *DerivativeLimitOrder { + if x, ok := x.GetOrder().(*OrderResult_DerivativeOrder); ok { + return x.DerivativeOrder + } + return nil +} + +func (x *OrderResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *OrderResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isOrderResult_Order interface { + isOrderResult_Order() +} + +type OrderResult_SpotOrder struct { + // Updated spot market order + SpotOrder *SpotLimitOrder `protobuf:"bytes,1,opt,name=spot_order,json=spotOrder,proto3,oneof"` +} + +type OrderResult_DerivativeOrder struct { + // Updated derivative market order + DerivativeOrder *DerivativeLimitOrder `protobuf:"bytes,2,opt,name=derivative_order,json=derivativeOrder,proto3,oneof"` +} + +func (*OrderResult_SpotOrder) isOrderResult_Order() {} + +func (*OrderResult_DerivativeOrder) isOrderResult_Order() {} + +type SpotLimitOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Price of the order + Price string `protobuf:"bytes,5,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"` + // The amount of the quantity remaining unfilled + UnfilledQuantity string `protobuf:"bytes,7,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` + // Trigger price is the trigger price used by stop/take orders. 0 if the + // trigger price is not set. + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` + // Order state + State string `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,13,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *SpotLimitOrder) Reset() { + *x = SpotLimitOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotLimitOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotLimitOrder) ProtoMessage() {} + +func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] + 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 SpotLimitOrder.ProtoReflect.Descriptor instead. +func (*SpotLimitOrder) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{39} +} + +func (x *SpotLimitOrder) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotLimitOrder) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *SpotLimitOrder) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotLimitOrder) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotLimitOrder) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *SpotLimitOrder) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *SpotLimitOrder) GetUnfilledQuantity() string { + if x != nil { + return x.UnfilledQuantity + } + return "" +} + +func (x *SpotLimitOrder) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *SpotLimitOrder) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *SpotLimitOrder) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *SpotLimitOrder) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SpotLimitOrder) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *SpotLimitOrder) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *SpotLimitOrder) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type DerivativeLimitOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // True if the order is a reduce-only order + IsReduceOnly bool `protobuf:"varint,5,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` + // Margin of the order + Margin string `protobuf:"bytes,6,opt,name=margin,proto3" json:"margin,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,8,opt,name=quantity,proto3" json:"quantity,omitempty"` + // The amount of the quantity remaining unfilled + UnfilledQuantity string `protobuf:"bytes,9,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` + // Trigger price is the trigger price used by stop/take orders + TriggerPrice string `protobuf:"bytes,10,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,11,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` + // Order state + State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order number of subaccount + OrderNumber int64 `protobuf:"zigzag64,15,opt,name=order_number,json=orderNumber,proto3" json:"order_number,omitempty"` + // Order type + OrderType string `protobuf:"bytes,16,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Order type + IsConditional bool `protobuf:"varint,17,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` + // Trigger timestamp, only exists for conditional orders + TriggerAt uint64 `protobuf:"varint,18,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` + // OrderHash of order that is triggered by this conditional order + PlacedOrderHash string `protobuf:"bytes,19,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` + // Execution type of conditional order + ExecutionType string `protobuf:"bytes,20,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,21,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,22,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *DerivativeLimitOrder) Reset() { + *x = DerivativeLimitOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeLimitOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeLimitOrder) ProtoMessage() {} + +func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] + 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 DerivativeLimitOrder.ProtoReflect.Descriptor instead. +func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{40} +} + +func (x *DerivativeLimitOrder) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *DerivativeLimitOrder) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeLimitOrder) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeLimitOrder) GetIsReduceOnly() bool { + if x != nil { + return x.IsReduceOnly + } + return false +} + +func (x *DerivativeLimitOrder) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *DerivativeLimitOrder) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *DerivativeLimitOrder) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *DerivativeLimitOrder) GetUnfilledQuantity() string { + if x != nil { + return x.UnfilledQuantity + } + return "" +} + +func (x *DerivativeLimitOrder) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *DerivativeLimitOrder) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *DerivativeLimitOrder) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *DerivativeLimitOrder) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetOrderNumber() int64 { + if x != nil { + return x.OrderNumber + } + return 0 +} + +func (x *DerivativeLimitOrder) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *DerivativeLimitOrder) GetIsConditional() bool { + if x != nil { + return x.IsConditional + } + return false +} + +func (x *DerivativeLimitOrder) GetTriggerAt() uint64 { + if x != nil { + return x.TriggerAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetPlacedOrderHash() string { + if x != nil { + return x.PlacedOrderHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *DerivativeLimitOrder) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type OrderHistoryResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to OrderHistory: + // + // *OrderHistoryResult_SpotOrderHistory + // *OrderHistoryResult_DerivativeOrderHistory + OrderHistory isOrderHistoryResult_OrderHistory `protobuf_oneof:"order_history"` + // Order update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *OrderHistoryResult) Reset() { + *x = OrderHistoryResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderHistoryResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderHistoryResult) ProtoMessage() {} + +func (x *OrderHistoryResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] + 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 OrderHistoryResult.ProtoReflect.Descriptor instead. +func (*OrderHistoryResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{41} +} + +func (m *OrderHistoryResult) GetOrderHistory() isOrderHistoryResult_OrderHistory { + if m != nil { + return m.OrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetSpotOrderHistory() *SpotOrderHistory { + if x, ok := x.GetOrderHistory().(*OrderHistoryResult_SpotOrderHistory); ok { + return x.SpotOrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetDerivativeOrderHistory() *DerivativeOrderHistory { + if x, ok := x.GetOrderHistory().(*OrderHistoryResult_DerivativeOrderHistory); ok { + return x.DerivativeOrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *OrderHistoryResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isOrderHistoryResult_OrderHistory interface { + isOrderHistoryResult_OrderHistory() +} + +type OrderHistoryResult_SpotOrderHistory struct { + // Spot order history + SpotOrderHistory *SpotOrderHistory `protobuf:"bytes,1,opt,name=spot_order_history,json=spotOrderHistory,proto3,oneof"` +} + +type OrderHistoryResult_DerivativeOrderHistory struct { + // Derivative order history + DerivativeOrderHistory *DerivativeOrderHistory `protobuf:"bytes,2,opt,name=derivative_order_history,json=derivativeOrderHistory,proto3,oneof"` +} + +func (*OrderHistoryResult_SpotOrderHistory) isOrderHistoryResult_OrderHistory() {} + +func (*OrderHistoryResult_DerivativeOrderHistory) isOrderHistoryResult_OrderHistory() {} + +type SpotOrderHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // active state of the order + IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The execution type + ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // The side of the order + OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Trigger price + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Filled amount + FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` + // Order state + State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order direction (order side) + Direction string `protobuf:"bytes,14,opt,name=direction,proto3" json:"direction,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,15,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,16,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *SpotOrderHistory) Reset() { + *x = SpotOrderHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotOrderHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotOrderHistory) ProtoMessage() {} + +func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] + 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 SpotOrderHistory.ProtoReflect.Descriptor instead. +func (*SpotOrderHistory) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{42} +} + +func (x *SpotOrderHistory) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotOrderHistory) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotOrderHistory) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *SpotOrderHistory) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotOrderHistory) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *SpotOrderHistory) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *SpotOrderHistory) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *SpotOrderHistory) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *SpotOrderHistory) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *SpotOrderHistory) GetFilledQuantity() string { + if x != nil { + return x.FilledQuantity + } + return "" +} + +func (x *SpotOrderHistory) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *SpotOrderHistory) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SpotOrderHistory) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *SpotOrderHistory) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *SpotOrderHistory) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *SpotOrderHistory) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type DerivativeOrderHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // active state of the order + IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The execution type + ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // The side of the order + OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Trigger price + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Filled amount + FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` + // Order state + State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // True if an order is reduce only + IsReduceOnly bool `protobuf:"varint,14,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` + // Order direction (order side) + Direction string `protobuf:"bytes,15,opt,name=direction,proto3" json:"direction,omitempty"` + // True if this is conditional order, otherwise false + IsConditional bool `protobuf:"varint,16,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` + // Trigger timestamp in unix milli + TriggerAt uint64 `protobuf:"varint,17,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` + // Order hash placed when this triggers + PlacedOrderHash string `protobuf:"bytes,18,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` + // Order's margin + Margin string `protobuf:"bytes,19,opt,name=margin,proto3" json:"margin,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,20,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,21,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *DerivativeOrderHistory) Reset() { + *x = DerivativeOrderHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeOrderHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeOrderHistory) ProtoMessage() {} + +func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] + 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 DerivativeOrderHistory.ProtoReflect.Descriptor instead. +func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{43} +} + +func (x *DerivativeOrderHistory) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeOrderHistory) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *DerivativeOrderHistory) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeOrderHistory) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *DerivativeOrderHistory) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *DerivativeOrderHistory) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *DerivativeOrderHistory) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *DerivativeOrderHistory) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *DerivativeOrderHistory) GetFilledQuantity() string { + if x != nil { + return x.FilledQuantity + } + return "" +} + +func (x *DerivativeOrderHistory) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *DerivativeOrderHistory) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetIsReduceOnly() bool { + if x != nil { + return x.IsReduceOnly + } + return false +} + +func (x *DerivativeOrderHistory) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *DerivativeOrderHistory) GetIsConditional() bool { + if x != nil { + return x.IsConditional + } + return false +} + +func (x *DerivativeOrderHistory) GetTriggerAt() uint64 { + if x != nil { + return x.TriggerAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetPlacedOrderHash() string { + if x != nil { + return x.PlacedOrderHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *DerivativeOrderHistory) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type FundingPaymentResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Funding payments of the account + FundingPayments *FundingPayment `protobuf:"bytes,1,opt,name=funding_payments,json=fundingPayments,proto3" json:"funding_payments,omitempty"` + // Funding payments type + OperationType string `protobuf:"bytes,2,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *FundingPaymentResult) Reset() { + *x = FundingPaymentResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundingPaymentResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundingPaymentResult) ProtoMessage() {} + +func (x *FundingPaymentResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] + 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 FundingPaymentResult.ProtoReflect.Descriptor instead. +func (*FundingPaymentResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{44} +} + +func (x *FundingPaymentResult) GetFundingPayments() *FundingPayment { + if x != nil { + return x.FundingPayments + } + return nil +} + +func (x *FundingPaymentResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *FundingPaymentResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type FundingPayment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Derivative Market ID + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that the position belongs to + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Amount of the funding payment + Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // Timestamp of funding payment in UNIX millis + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *FundingPayment) Reset() { + *x = FundingPayment{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundingPayment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundingPayment) ProtoMessage() {} + +func (x *FundingPayment) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] + 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 FundingPayment.ProtoReflect.Descriptor instead. +func (*FundingPayment) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{45} +} + +func (x *FundingPayment) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *FundingPayment) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *FundingPayment) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *FundingPayment) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +var File_goadesign_goagen_injective_accounts_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x3b, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, + 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x13, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 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, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, + 0x6c, 0x22, 0x78, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x13, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x10, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 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, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2d, + 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 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, 0x0a, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x17, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 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, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x27, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x07, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, + 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 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, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x68, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x5d, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x84, + 0x01, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 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, 0xc1, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 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, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x73, 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, 0x19, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x19, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x23, + 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x73, 0x72, 0x63, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, + 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x2a, 0x0a, 0x11, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, + 0x73, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 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, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, + 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, + 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 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, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, + 0x90, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0x34, 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, 0x22, 0x43, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xde, 0x03, + 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x7c, + 0x0a, 0x17, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 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, 0x6d, 0x0a, 0x0f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x3c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 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, 0xe1, 0x02, 0x0a, 0x08, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0xf5, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x42, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, + 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, + 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, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, + 0x65, 0x65, 0x18, 0x07, 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, 0x08, 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, + 0x09, 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, + 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0xdd, 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, 0x4c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 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, 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, 0xff, 0x01, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x10, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 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, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, 0x0a, 0x05, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xb8, 0x03, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x23, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, + 0x22, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, + 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 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, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 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, 0x12, 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, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x58, 0x0a, 0x12, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x70, 0x6f, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x6a, 0x0a, 0x18, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 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, 0x48, 0x00, 0x52, + 0x16, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0f, 0x0a, 0x0d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xf3, 0x03, + 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 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, 0x1c, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 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, + 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 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, + 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 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, 0x32, 0xdc, 0x09, 0x0a, 0x14, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, + 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, + 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8c, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, + 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, + 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc +) + +func file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData) + }) + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData +} + +var file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = []interface{}{ + (*PortfolioRequest)(nil), // 0: injective_accounts_rpc.PortfolioRequest + (*PortfolioResponse)(nil), // 1: injective_accounts_rpc.PortfolioResponse + (*AccountPortfolio)(nil), // 2: injective_accounts_rpc.AccountPortfolio + (*SubaccountPortfolio)(nil), // 3: injective_accounts_rpc.SubaccountPortfolio + (*OrderStatesRequest)(nil), // 4: injective_accounts_rpc.OrderStatesRequest + (*OrderStatesResponse)(nil), // 5: injective_accounts_rpc.OrderStatesResponse + (*OrderStateRecord)(nil), // 6: injective_accounts_rpc.OrderStateRecord + (*SubaccountsListRequest)(nil), // 7: injective_accounts_rpc.SubaccountsListRequest + (*SubaccountsListResponse)(nil), // 8: injective_accounts_rpc.SubaccountsListResponse + (*SubaccountBalancesListRequest)(nil), // 9: injective_accounts_rpc.SubaccountBalancesListRequest + (*SubaccountBalancesListResponse)(nil), // 10: injective_accounts_rpc.SubaccountBalancesListResponse + (*SubaccountBalance)(nil), // 11: injective_accounts_rpc.SubaccountBalance + (*SubaccountDeposit)(nil), // 12: injective_accounts_rpc.SubaccountDeposit + (*SubaccountBalanceEndpointRequest)(nil), // 13: injective_accounts_rpc.SubaccountBalanceEndpointRequest + (*SubaccountBalanceEndpointResponse)(nil), // 14: injective_accounts_rpc.SubaccountBalanceEndpointResponse + (*StreamSubaccountBalanceRequest)(nil), // 15: injective_accounts_rpc.StreamSubaccountBalanceRequest + (*StreamSubaccountBalanceResponse)(nil), // 16: injective_accounts_rpc.StreamSubaccountBalanceResponse + (*SubaccountHistoryRequest)(nil), // 17: injective_accounts_rpc.SubaccountHistoryRequest + (*SubaccountHistoryResponse)(nil), // 18: injective_accounts_rpc.SubaccountHistoryResponse + (*SubaccountBalanceTransfer)(nil), // 19: injective_accounts_rpc.SubaccountBalanceTransfer + (*CosmosCoin)(nil), // 20: injective_accounts_rpc.CosmosCoin + (*Paging)(nil), // 21: injective_accounts_rpc.Paging + (*SubaccountOrderSummaryRequest)(nil), // 22: injective_accounts_rpc.SubaccountOrderSummaryRequest + (*SubaccountOrderSummaryResponse)(nil), // 23: injective_accounts_rpc.SubaccountOrderSummaryResponse + (*RewardsRequest)(nil), // 24: injective_accounts_rpc.RewardsRequest + (*RewardsResponse)(nil), // 25: injective_accounts_rpc.RewardsResponse + (*Reward)(nil), // 26: injective_accounts_rpc.Reward + (*Coin)(nil), // 27: injective_accounts_rpc.Coin + (*StreamAccountDataRequest)(nil), // 28: injective_accounts_rpc.StreamAccountDataRequest + (*StreamAccountDataResponse)(nil), // 29: injective_accounts_rpc.StreamAccountDataResponse + (*SubaccountBalanceResult)(nil), // 30: injective_accounts_rpc.SubaccountBalanceResult + (*PositionsResult)(nil), // 31: injective_accounts_rpc.PositionsResult + (*Position)(nil), // 32: injective_accounts_rpc.Position + (*TradeResult)(nil), // 33: injective_accounts_rpc.TradeResult + (*SpotTrade)(nil), // 34: injective_accounts_rpc.SpotTrade + (*PriceLevel)(nil), // 35: injective_accounts_rpc.PriceLevel + (*DerivativeTrade)(nil), // 36: injective_accounts_rpc.DerivativeTrade + (*PositionDelta)(nil), // 37: injective_accounts_rpc.PositionDelta + (*OrderResult)(nil), // 38: injective_accounts_rpc.OrderResult + (*SpotLimitOrder)(nil), // 39: injective_accounts_rpc.SpotLimitOrder + (*DerivativeLimitOrder)(nil), // 40: injective_accounts_rpc.DerivativeLimitOrder + (*OrderHistoryResult)(nil), // 41: injective_accounts_rpc.OrderHistoryResult + (*SpotOrderHistory)(nil), // 42: injective_accounts_rpc.SpotOrderHistory + (*DerivativeOrderHistory)(nil), // 43: injective_accounts_rpc.DerivativeOrderHistory + (*FundingPaymentResult)(nil), // 44: injective_accounts_rpc.FundingPaymentResult + (*FundingPayment)(nil), // 45: injective_accounts_rpc.FundingPayment +} +var file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = []int32{ + 2, // 0: injective_accounts_rpc.PortfolioResponse.portfolio:type_name -> injective_accounts_rpc.AccountPortfolio + 3, // 1: injective_accounts_rpc.AccountPortfolio.subaccounts:type_name -> injective_accounts_rpc.SubaccountPortfolio + 6, // 2: injective_accounts_rpc.OrderStatesResponse.spot_order_states:type_name -> injective_accounts_rpc.OrderStateRecord + 6, // 3: injective_accounts_rpc.OrderStatesResponse.derivative_order_states:type_name -> injective_accounts_rpc.OrderStateRecord + 11, // 4: injective_accounts_rpc.SubaccountBalancesListResponse.balances:type_name -> injective_accounts_rpc.SubaccountBalance + 12, // 5: injective_accounts_rpc.SubaccountBalance.deposit:type_name -> injective_accounts_rpc.SubaccountDeposit + 11, // 6: injective_accounts_rpc.SubaccountBalanceEndpointResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 11, // 7: injective_accounts_rpc.StreamSubaccountBalanceResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 19, // 8: injective_accounts_rpc.SubaccountHistoryResponse.transfers:type_name -> injective_accounts_rpc.SubaccountBalanceTransfer + 21, // 9: injective_accounts_rpc.SubaccountHistoryResponse.paging:type_name -> injective_accounts_rpc.Paging + 20, // 10: injective_accounts_rpc.SubaccountBalanceTransfer.amount:type_name -> injective_accounts_rpc.CosmosCoin + 26, // 11: injective_accounts_rpc.RewardsResponse.rewards:type_name -> injective_accounts_rpc.Reward + 27, // 12: injective_accounts_rpc.Reward.rewards:type_name -> injective_accounts_rpc.Coin + 30, // 13: injective_accounts_rpc.StreamAccountDataResponse.subaccount_balance:type_name -> injective_accounts_rpc.SubaccountBalanceResult + 31, // 14: injective_accounts_rpc.StreamAccountDataResponse.position:type_name -> injective_accounts_rpc.PositionsResult + 33, // 15: injective_accounts_rpc.StreamAccountDataResponse.trade:type_name -> injective_accounts_rpc.TradeResult + 38, // 16: injective_accounts_rpc.StreamAccountDataResponse.order:type_name -> injective_accounts_rpc.OrderResult + 41, // 17: injective_accounts_rpc.StreamAccountDataResponse.order_history:type_name -> injective_accounts_rpc.OrderHistoryResult + 44, // 18: injective_accounts_rpc.StreamAccountDataResponse.funding_payment:type_name -> injective_accounts_rpc.FundingPaymentResult + 11, // 19: injective_accounts_rpc.SubaccountBalanceResult.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 32, // 20: injective_accounts_rpc.PositionsResult.position:type_name -> injective_accounts_rpc.Position + 34, // 21: injective_accounts_rpc.TradeResult.spot_trade:type_name -> injective_accounts_rpc.SpotTrade + 36, // 22: injective_accounts_rpc.TradeResult.derivative_trade:type_name -> injective_accounts_rpc.DerivativeTrade + 35, // 23: injective_accounts_rpc.SpotTrade.price:type_name -> injective_accounts_rpc.PriceLevel + 37, // 24: injective_accounts_rpc.DerivativeTrade.position_delta:type_name -> injective_accounts_rpc.PositionDelta + 39, // 25: injective_accounts_rpc.OrderResult.spot_order:type_name -> injective_accounts_rpc.SpotLimitOrder + 40, // 26: injective_accounts_rpc.OrderResult.derivative_order:type_name -> injective_accounts_rpc.DerivativeLimitOrder + 42, // 27: injective_accounts_rpc.OrderHistoryResult.spot_order_history:type_name -> injective_accounts_rpc.SpotOrderHistory + 43, // 28: injective_accounts_rpc.OrderHistoryResult.derivative_order_history:type_name -> injective_accounts_rpc.DerivativeOrderHistory + 45, // 29: injective_accounts_rpc.FundingPaymentResult.funding_payments:type_name -> injective_accounts_rpc.FundingPayment + 0, // 30: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:input_type -> injective_accounts_rpc.PortfolioRequest + 4, // 31: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:input_type -> injective_accounts_rpc.OrderStatesRequest + 7, // 32: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:input_type -> injective_accounts_rpc.SubaccountsListRequest + 9, // 33: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:input_type -> injective_accounts_rpc.SubaccountBalancesListRequest + 13, // 34: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:input_type -> injective_accounts_rpc.SubaccountBalanceEndpointRequest + 15, // 35: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:input_type -> injective_accounts_rpc.StreamSubaccountBalanceRequest + 17, // 36: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:input_type -> injective_accounts_rpc.SubaccountHistoryRequest + 22, // 37: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:input_type -> injective_accounts_rpc.SubaccountOrderSummaryRequest + 24, // 38: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:input_type -> injective_accounts_rpc.RewardsRequest + 28, // 39: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:input_type -> injective_accounts_rpc.StreamAccountDataRequest + 1, // 40: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:output_type -> injective_accounts_rpc.PortfolioResponse + 5, // 41: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:output_type -> injective_accounts_rpc.OrderStatesResponse + 8, // 42: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:output_type -> injective_accounts_rpc.SubaccountsListResponse + 10, // 43: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:output_type -> injective_accounts_rpc.SubaccountBalancesListResponse + 14, // 44: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:output_type -> injective_accounts_rpc.SubaccountBalanceEndpointResponse + 16, // 45: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:output_type -> injective_accounts_rpc.StreamSubaccountBalanceResponse + 18, // 46: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:output_type -> injective_accounts_rpc.SubaccountHistoryResponse + 23, // 47: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:output_type -> injective_accounts_rpc.SubaccountOrderSummaryResponse + 25, // 48: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:output_type -> injective_accounts_rpc.RewardsResponse + 29, // 49: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:output_type -> injective_accounts_rpc.StreamAccountDataResponse + 40, // [40:50] is the sub-list for method output_type + 30, // [30:40] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_accounts_rpc_proto_init() } +func file_goadesign_goagen_injective_accounts_rpc_proto_init() { + if File_goadesign_goagen_injective_accounts_rpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortfolioRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortfolioResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountPortfolio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStatesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStateRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountsListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountsListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalancesListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalancesListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountDeposit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceEndpointResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamSubaccountBalanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamSubaccountBalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountHistoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceTransfer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CosmosCoin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Paging); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountOrderSummaryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountOrderSummaryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RewardsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RewardsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Reward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Coin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountDataRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountDataResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionsResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Position); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TradeResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotTrade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriceLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeTrade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionDelta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotLimitOrder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeLimitOrder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderHistoryResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotOrderHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeOrderHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundingPaymentResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundingPayment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].OneofWrappers = []interface{}{ + (*TradeResult_SpotTrade)(nil), + (*TradeResult_DerivativeTrade)(nil), + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].OneofWrappers = []interface{}{ + (*OrderResult_SpotOrder)(nil), + (*OrderResult_DerivativeOrder)(nil), + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].OneofWrappers = []interface{}{ + (*OrderHistoryResult_SpotOrderHistory)(nil), + (*OrderHistoryResult_DerivativeOrderHistory)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc, + NumEnums: 0, + NumMessages: 46, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_injective_accounts_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes, + }.Build() + File_goadesign_goagen_injective_accounts_rpc_proto = out.File + file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = nil +} diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go similarity index 88% rename from exchange/accounts_rpc/pb/injective_accounts_rpc_grpc.pb.go rename to exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go index 14ccbcfc..ceb634f9 100644 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc_grpc.pb.go +++ b/exchange/accounts_rpc/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_accounts_rpc.proto package injective_accounts_rpcpb @@ -38,6 +42,8 @@ type InjectiveAccountsRPCClient interface { SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) // Provide historical trading rewards Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) + // Stream live data for an account and respective data + StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) } type injectiveAccountsRPCClient struct { @@ -152,6 +158,38 @@ func (c *injectiveAccountsRPCClient) Rewards(ctx context.Context, in *RewardsReq return out, nil } +func (c *injectiveAccountsRPCClient) StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) { + stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[1], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", opts...) + if err != nil { + return nil, err + } + x := &injectiveAccountsRPCStreamAccountDataClient{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 InjectiveAccountsRPC_StreamAccountDataClient interface { + Recv() (*StreamAccountDataResponse, error) + grpc.ClientStream +} + +type injectiveAccountsRPCStreamAccountDataClient struct { + grpc.ClientStream +} + +func (x *injectiveAccountsRPCStreamAccountDataClient) Recv() (*StreamAccountDataResponse, error) { + m := new(StreamAccountDataResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // InjectiveAccountsRPCServer is the server API for InjectiveAccountsRPC service. // All implementations must embed UnimplementedInjectiveAccountsRPCServer // for forward compatibility @@ -176,6 +214,8 @@ type InjectiveAccountsRPCServer interface { SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) // Provide historical trading rewards Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) + // Stream live data for an account and respective data + StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error mustEmbedUnimplementedInjectiveAccountsRPCServer() } @@ -210,6 +250,9 @@ func (UnimplementedInjectiveAccountsRPCServer) SubaccountOrderSummary(context.Co func (UnimplementedInjectiveAccountsRPCServer) Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Rewards not implemented") } +func (UnimplementedInjectiveAccountsRPCServer) StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error { + return status.Errorf(codes.Unimplemented, "method StreamAccountData not implemented") +} func (UnimplementedInjectiveAccountsRPCServer) mustEmbedUnimplementedInjectiveAccountsRPCServer() {} // UnsafeInjectiveAccountsRPCServer may be embedded to opt out of forward compatibility for this service. @@ -388,6 +431,27 @@ func _InjectiveAccountsRPC_Rewards_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _InjectiveAccountsRPC_StreamAccountData_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamAccountDataRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(InjectiveAccountsRPCServer).StreamAccountData(m, &injectiveAccountsRPCStreamAccountDataServer{stream}) +} + +type InjectiveAccountsRPC_StreamAccountDataServer interface { + Send(*StreamAccountDataResponse) error + grpc.ServerStream +} + +type injectiveAccountsRPCStreamAccountDataServer struct { + grpc.ServerStream +} + +func (x *injectiveAccountsRPCStreamAccountDataServer) Send(m *StreamAccountDataResponse) error { + return x.ServerStream.SendMsg(m) +} + // InjectiveAccountsRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveAccountsRPC service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -434,6 +498,11 @@ var InjectiveAccountsRPC_ServiceDesc = grpc.ServiceDesc{ Handler: _InjectiveAccountsRPC_StreamSubaccountBalance_Handler, ServerStreams: true, }, + { + StreamName: "StreamAccountData", + Handler: _InjectiveAccountsRPC_StreamAccountData_Handler, + ServerStreams: true, + }, }, - Metadata: "injective_accounts_rpc.proto", + Metadata: "goadesign_goagen_injective_accounts_rpc.proto", } diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.go deleted file mode 100644 index a7cca461..00000000 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.go +++ /dev/null @@ -1,2606 +0,0 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. -// -// InjectiveAccountsRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: injective_accounts_rpc.proto - -package injective_accounts_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type PortfolioRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *PortfolioRequest) Reset() { - *x = PortfolioRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioRequest) ProtoMessage() {} - -func (x *PortfolioRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[0] - 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 PortfolioRequest.ProtoReflect.Descriptor instead. -func (*PortfolioRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{0} -} - -func (x *PortfolioRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type PortfolioResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The portfolio of this account - Portfolio *AccountPortfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` -} - -func (x *PortfolioResponse) Reset() { - *x = PortfolioResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioResponse) ProtoMessage() {} - -func (x *PortfolioResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[1] - 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 PortfolioResponse.ProtoReflect.Descriptor instead. -func (*PortfolioResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *PortfolioResponse) GetPortfolio() *AccountPortfolio { - if x != nil { - return x.Portfolio - } - return nil -} - -type AccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio value in USD. - PortfolioValue string `protobuf:"bytes,1,opt,name=portfolio_value,json=portfolioValue,proto3" json:"portfolio_value,omitempty"` - // The account's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The account's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The account's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` - // List of all subaccounts' portfolio - Subaccounts []*SubaccountPortfolio `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *AccountPortfolio) Reset() { - *x = AccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolio) ProtoMessage() {} - -func (x *AccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[2] - 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 AccountPortfolio.ProtoReflect.Descriptor instead. -func (*AccountPortfolio) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *AccountPortfolio) GetPortfolioValue() string { - if x != nil { - return x.PortfolioValue - } - return "" -} - -func (x *AccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *AccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *AccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -func (x *AccountPortfolio) GetSubaccounts() []*SubaccountPortfolio { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountPortfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The ID of this subaccount - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The subaccount's available balance value in USD. - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` - // The subaccount's locked balance value in USD. - LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` - // The subaccount's total unrealized PnL value in USD. - UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` -} - -func (x *SubaccountPortfolio) Reset() { - *x = SubaccountPortfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountPortfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountPortfolio) ProtoMessage() {} - -func (x *SubaccountPortfolio) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[3] - 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 SubaccountPortfolio.ProtoReflect.Descriptor instead. -func (*SubaccountPortfolio) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *SubaccountPortfolio) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountPortfolio) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetLockedBalance() string { - if x != nil { - return x.LockedBalance - } - return "" -} - -func (x *SubaccountPortfolio) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -type OrderStatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SpotOrderHashes []string `protobuf:"bytes,1,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` - DerivativeOrderHashes []string `protobuf:"bytes,2,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` -} - -func (x *OrderStatesRequest) Reset() { - *x = OrderStatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesRequest) ProtoMessage() {} - -func (x *OrderStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[4] - 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 OrderStatesRequest.ProtoReflect.Descriptor instead. -func (*OrderStatesRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{4} -} - -func (x *OrderStatesRequest) GetSpotOrderHashes() []string { - if x != nil { - return x.SpotOrderHashes - } - return nil -} - -func (x *OrderStatesRequest) GetDerivativeOrderHashes() []string { - if x != nil { - return x.DerivativeOrderHashes - } - return nil -} - -type OrderStatesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of the spot order state records - SpotOrderStates []*OrderStateRecord `protobuf:"bytes,1,rep,name=spot_order_states,json=spotOrderStates,proto3" json:"spot_order_states,omitempty"` - // List of the derivative order state records - DerivativeOrderStates []*OrderStateRecord `protobuf:"bytes,2,rep,name=derivative_order_states,json=derivativeOrderStates,proto3" json:"derivative_order_states,omitempty"` -} - -func (x *OrderStatesResponse) Reset() { - *x = OrderStatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStatesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStatesResponse) ProtoMessage() {} - -func (x *OrderStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[5] - 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 OrderStatesResponse.ProtoReflect.Descriptor instead. -func (*OrderStatesResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{5} -} - -func (x *OrderStatesResponse) GetSpotOrderStates() []*OrderStateRecord { - if x != nil { - return x.SpotOrderStates - } - return nil -} - -func (x *OrderStatesResponse) GetDerivativeOrderStates() []*OrderStateRecord { - if x != nil { - return x.DerivativeOrderStates - } - return nil -} - -type OrderStateRecord struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Hash of the order - OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` - // The subaccountId that this order belongs to - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // The Market ID of the order - MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The type of the order - OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` - // The side of the order - OrderSide string `protobuf:"bytes,5,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` - // The state (status) of the order - State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` - // The filled quantity of the order - QuantityFilled string `protobuf:"bytes,7,opt,name=quantity_filled,json=quantityFilled,proto3" json:"quantity_filled,omitempty"` - // The filled quantity of the order - QuantityRemaining string `protobuf:"bytes,8,opt,name=quantity_remaining,json=quantityRemaining,proto3" json:"quantity_remaining,omitempty"` - // Order committed timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // Order updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Order prices - Price string `protobuf:"bytes,11,opt,name=price,proto3" json:"price,omitempty"` - // Margin for derivative order - Margin string `protobuf:"bytes,12,opt,name=margin,proto3" json:"margin,omitempty"` -} - -func (x *OrderStateRecord) Reset() { - *x = OrderStateRecord{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OrderStateRecord) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrderStateRecord) ProtoMessage() {} - -func (x *OrderStateRecord) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[6] - 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 OrderStateRecord.ProtoReflect.Descriptor instead. -func (*OrderStateRecord) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{6} -} - -func (x *OrderStateRecord) GetOrderHash() string { - if x != nil { - return x.OrderHash - } - return "" -} - -func (x *OrderStateRecord) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *OrderStateRecord) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *OrderStateRecord) GetOrderType() string { - if x != nil { - return x.OrderType - } - return "" -} - -func (x *OrderStateRecord) GetOrderSide() string { - if x != nil { - return x.OrderSide - } - return "" -} - -func (x *OrderStateRecord) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *OrderStateRecord) GetQuantityFilled() string { - if x != nil { - return x.QuantityFilled - } - return "" -} - -func (x *OrderStateRecord) GetQuantityRemaining() string { - if x != nil { - return x.QuantityRemaining - } - return "" -} - -func (x *OrderStateRecord) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *OrderStateRecord) GetPrice() string { - if x != nil { - return x.Price - } - return "" -} - -func (x *OrderStateRecord) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -type SubaccountsListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address, the subaccounts owner - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *SubaccountsListRequest) Reset() { - *x = SubaccountsListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListRequest) ProtoMessage() {} - -func (x *SubaccountsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[7] - 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 SubaccountsListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountsListRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{7} -} - -func (x *SubaccountsListRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type SubaccountsListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Subaccounts []string `protobuf:"bytes,1,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *SubaccountsListResponse) Reset() { - *x = SubaccountsListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountsListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountsListResponse) ProtoMessage() {} - -func (x *SubaccountsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[8] - 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 SubaccountsListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountsListResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{8} -} - -func (x *SubaccountsListResponse) GetSubaccounts() []string { - if x != nil { - return x.Subaccounts - } - return nil -} - -type SubaccountBalancesListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *SubaccountBalancesListRequest) Reset() { - *x = SubaccountBalancesListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListRequest) ProtoMessage() {} - -func (x *SubaccountBalancesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[9] - 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 SubaccountBalancesListRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{9} -} - -func (x *SubaccountBalancesListRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalancesListRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type SubaccountBalancesListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount balances - Balances []*SubaccountBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` -} - -func (x *SubaccountBalancesListResponse) Reset() { - *x = SubaccountBalancesListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalancesListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalancesListResponse) ProtoMessage() {} - -func (x *SubaccountBalancesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[10] - 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 SubaccountBalancesListResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalancesListResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{10} -} - -func (x *SubaccountBalancesListResponse) GetBalances() []*SubaccountBalance { - if x != nil { - return x.Balances - } - return nil -} - -type SubaccountBalance struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Related subaccount ID - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Account address, owner of this subaccount - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Coin denom on the chain. - Denom string `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` - Deposit *SubaccountDeposit `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty"` -} - -func (x *SubaccountBalance) Reset() { - *x = SubaccountBalance{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalance) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalance) ProtoMessage() {} - -func (x *SubaccountBalance) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_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 SubaccountBalance.ProtoReflect.Descriptor instead. -func (*SubaccountBalance) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{11} -} - -func (x *SubaccountBalance) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalance) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *SubaccountBalance) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountBalance) GetDeposit() *SubaccountDeposit { - if x != nil { - return x.Deposit - } - return nil -} - -type SubaccountDeposit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` -} - -func (x *SubaccountDeposit) Reset() { - *x = SubaccountDeposit{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountDeposit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountDeposit) ProtoMessage() {} - -func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_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 SubaccountDeposit.ProtoReflect.Descriptor instead. -func (*SubaccountDeposit) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{12} -} - -func (x *SubaccountDeposit) GetTotalBalance() string { - if x != nil { - return x.TotalBalance - } - return "" -} - -func (x *SubaccountDeposit) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -type SubaccountBalanceEndpointRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Specify denom to get balance - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` -} - -func (x *SubaccountBalanceEndpointRequest) Reset() { - *x = SubaccountBalanceEndpointRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointRequest) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[13] - 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 SubaccountBalanceEndpointRequest.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{13} -} - -func (x *SubaccountBalanceEndpointRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalanceEndpointRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -type SubaccountBalanceEndpointResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` -} - -func (x *SubaccountBalanceEndpointResponse) Reset() { - *x = SubaccountBalanceEndpointResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceEndpointResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceEndpointResponse) ProtoMessage() {} - -func (x *SubaccountBalanceEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[14] - 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 SubaccountBalanceEndpointResponse.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceEndpointResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{14} -} - -func (x *SubaccountBalanceEndpointResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -type StreamSubaccountBalanceRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the trades from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter balances by denoms. If not set, the balances of all the denoms for - // the subaccount are provided. - Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` -} - -func (x *StreamSubaccountBalanceRequest) Reset() { - *x = StreamSubaccountBalanceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceRequest) ProtoMessage() {} - -func (x *StreamSubaccountBalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[15] - 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 StreamSubaccountBalanceRequest.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{15} -} - -func (x *StreamSubaccountBalanceRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *StreamSubaccountBalanceRequest) GetDenoms() []string { - if x != nil { - return x.Denoms - } - return nil -} - -type StreamSubaccountBalanceResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Subaccount balance - Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *StreamSubaccountBalanceResponse) Reset() { - *x = StreamSubaccountBalanceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamSubaccountBalanceResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamSubaccountBalanceResponse) ProtoMessage() {} - -func (x *StreamSubaccountBalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[16] - 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 StreamSubaccountBalanceResponse.ProtoReflect.Descriptor instead. -func (*StreamSubaccountBalanceResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{16} -} - -func (x *StreamSubaccountBalanceResponse) GetBalance() *SubaccountBalance { - if x != nil { - return x.Balance - } - return nil -} - -func (x *StreamSubaccountBalanceResponse) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -type SubaccountHistoryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the history from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Filter history by denom - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - // Filter history by transfer type - TransferTypes []string `protobuf:"bytes,3,rep,name=transfer_types,json=transferTypes,proto3" json:"transfer_types,omitempty"` - // Skip will skip the first n item from the result - Skip uint64 `protobuf:"varint,4,opt,name=skip,proto3" json:"skip,omitempty"` - // Limit is used to specify the maximum number of items to be returned - Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` - // Upper bound of account transfer history's executedAt - EndTime int64 `protobuf:"zigzag64,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` -} - -func (x *SubaccountHistoryRequest) Reset() { - *x = SubaccountHistoryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryRequest) ProtoMessage() {} - -func (x *SubaccountHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[17] - 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 SubaccountHistoryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{17} -} - -func (x *SubaccountHistoryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountHistoryRequest) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountHistoryRequest) GetTransferTypes() []string { - if x != nil { - return x.TransferTypes - } - return nil -} - -func (x *SubaccountHistoryRequest) GetSkip() uint64 { - if x != nil { - return x.Skip - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetLimit() int32 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *SubaccountHistoryRequest) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -type SubaccountHistoryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // List of subaccount transfers - Transfers []*SubaccountBalanceTransfer `protobuf:"bytes,1,rep,name=transfers,proto3" json:"transfers,omitempty"` - Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` -} - -func (x *SubaccountHistoryResponse) Reset() { - *x = SubaccountHistoryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountHistoryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountHistoryResponse) ProtoMessage() {} - -func (x *SubaccountHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[18] - 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 SubaccountHistoryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{18} -} - -func (x *SubaccountHistoryResponse) GetTransfers() []*SubaccountBalanceTransfer { - if x != nil { - return x.Transfers - } - return nil -} - -func (x *SubaccountHistoryResponse) GetPaging() *Paging { - if x != nil { - return x.Paging - } - return nil -} - -type SubaccountBalanceTransfer struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Type of the subaccount balance transfer - TransferType string `protobuf:"bytes,1,opt,name=transfer_type,json=transferType,proto3" json:"transfer_type,omitempty"` - // Subaccount ID of the sending side - SrcSubaccountId string `protobuf:"bytes,2,opt,name=src_subaccount_id,json=srcSubaccountId,proto3" json:"src_subaccount_id,omitempty"` - // Account address of the sending side - SrcAccountAddress string `protobuf:"bytes,3,opt,name=src_account_address,json=srcAccountAddress,proto3" json:"src_account_address,omitempty"` - // Subaccount ID of the receiving side - DstSubaccountId string `protobuf:"bytes,4,opt,name=dst_subaccount_id,json=dstSubaccountId,proto3" json:"dst_subaccount_id,omitempty"` - // Account address of the receiving side - DstAccountAddress string `protobuf:"bytes,5,opt,name=dst_account_address,json=dstAccountAddress,proto3" json:"dst_account_address,omitempty"` - // Coin amount of the transfer - Amount *CosmosCoin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` - // Timestamp of the transfer in UNIX millis - ExecutedAt int64 `protobuf:"zigzag64,7,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` -} - -func (x *SubaccountBalanceTransfer) Reset() { - *x = SubaccountBalanceTransfer{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceTransfer) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceTransfer) ProtoMessage() {} - -func (x *SubaccountBalanceTransfer) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[19] - 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 SubaccountBalanceTransfer.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceTransfer) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{19} -} - -func (x *SubaccountBalanceTransfer) GetTransferType() string { - if x != nil { - return x.TransferType - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcSubaccountId() string { - if x != nil { - return x.SrcSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetSrcAccountAddress() string { - if x != nil { - return x.SrcAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstSubaccountId() string { - if x != nil { - return x.DstSubaccountId - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetDstAccountAddress() string { - if x != nil { - return x.DstAccountAddress - } - return "" -} - -func (x *SubaccountBalanceTransfer) GetAmount() *CosmosCoin { - if x != nil { - return x.Amount - } - return nil -} - -func (x *SubaccountBalanceTransfer) GetExecutedAt() int64 { - if x != nil { - return x.ExecutedAt - } - return 0 -} - -type CosmosCoin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Coin denominator - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - // Coin amount (big int) - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *CosmosCoin) Reset() { - *x = CosmosCoin{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CosmosCoin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CosmosCoin) ProtoMessage() {} - -func (x *CosmosCoin) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[20] - 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 CosmosCoin.ProtoReflect.Descriptor instead. -func (*CosmosCoin) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{20} -} - -func (x *CosmosCoin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *CosmosCoin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -// Paging defines the structure for required params for handling pagination -type Paging struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // total number of txs saved in database - Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` - // can be either block height or index num - From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` - // can be either block height or index num - To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` - // count entries by subaccount, serving some places on helix - CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` - // array of tokens to navigate to the next pages - Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` -} - -func (x *Paging) Reset() { - *x = Paging{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Paging) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Paging) ProtoMessage() {} - -func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[21] - 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 Paging.ProtoReflect.Descriptor instead. -func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{21} -} - -func (x *Paging) GetTotal() int64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Paging) GetFrom() int32 { - if x != nil { - return x.From - } - return 0 -} - -func (x *Paging) GetTo() int32 { - if x != nil { - return x.To - } - return 0 -} - -func (x *Paging) GetCountBySubaccount() int64 { - if x != nil { - return x.CountBySubaccount - } - return 0 -} - -func (x *Paging) GetNext() []string { - if x != nil { - return x.Next - } - return nil -} - -type SubaccountOrderSummaryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SubaccountId of the trader we want to get the summary from - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // MarketId is limiting order summary to specific market only - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // Filter by direction of the orders - OrderDirection string `protobuf:"bytes,3,opt,name=order_direction,json=orderDirection,proto3" json:"order_direction,omitempty"` -} - -func (x *SubaccountOrderSummaryRequest) Reset() { - *x = SubaccountOrderSummaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryRequest) ProtoMessage() {} - -func (x *SubaccountOrderSummaryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[22] - 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 SubaccountOrderSummaryRequest.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{22} -} - -func (x *SubaccountOrderSummaryRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *SubaccountOrderSummaryRequest) GetOrderDirection() string { - if x != nil { - return x.OrderDirection - } - return "" -} - -type SubaccountOrderSummaryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total count of subaccount's spot orders in given market and direction - SpotOrdersTotal int64 `protobuf:"zigzag64,1,opt,name=spot_orders_total,json=spotOrdersTotal,proto3" json:"spot_orders_total,omitempty"` - // Total count of subaccount's derivative orders in given market and direction - DerivativeOrdersTotal int64 `protobuf:"zigzag64,2,opt,name=derivative_orders_total,json=derivativeOrdersTotal,proto3" json:"derivative_orders_total,omitempty"` -} - -func (x *SubaccountOrderSummaryResponse) Reset() { - *x = SubaccountOrderSummaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountOrderSummaryResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountOrderSummaryResponse) ProtoMessage() {} - -func (x *SubaccountOrderSummaryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[23] - 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 SubaccountOrderSummaryResponse.ProtoReflect.Descriptor instead. -func (*SubaccountOrderSummaryResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{23} -} - -func (x *SubaccountOrderSummaryResponse) GetSpotOrdersTotal() int64 { - if x != nil { - return x.SpotOrdersTotal - } - return 0 -} - -func (x *SubaccountOrderSummaryResponse) GetDerivativeOrdersTotal() int64 { - if x != nil { - return x.DerivativeOrdersTotal - } - return 0 -} - -type RewardsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The distribution epoch sequence number. -1 for latest. - Epoch int64 `protobuf:"zigzag64,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - // Account address for the rewards distribution - AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *RewardsRequest) Reset() { - *x = RewardsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsRequest) ProtoMessage() {} - -func (x *RewardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[24] - 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 RewardsRequest.ProtoReflect.Descriptor instead. -func (*RewardsRequest) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{24} -} - -func (x *RewardsRequest) GetEpoch() int64 { - if x != nil { - return x.Epoch - } - return 0 -} - -func (x *RewardsRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type RewardsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading rewards distributed - Rewards []*Reward `protobuf:"bytes,1,rep,name=rewards,proto3" json:"rewards,omitempty"` -} - -func (x *RewardsResponse) Reset() { - *x = RewardsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RewardsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RewardsResponse) ProtoMessage() {} - -func (x *RewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[25] - 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 RewardsResponse.ProtoReflect.Descriptor instead. -func (*RewardsResponse) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{25} -} - -func (x *RewardsResponse) GetRewards() []*Reward { - if x != nil { - return x.Rewards - } - return nil -} - -type Reward struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Reward coins distributed - Rewards []*Coin `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` - // Rewards distribution timestamp in UNIX millis. - DistributedAt int64 `protobuf:"zigzag64,3,opt,name=distributed_at,json=distributedAt,proto3" json:"distributed_at,omitempty"` -} - -func (x *Reward) Reset() { - *x = Reward{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Reward) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Reward) ProtoMessage() {} - -func (x *Reward) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[26] - 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 Reward.ProtoReflect.Descriptor instead. -func (*Reward) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{26} -} - -func (x *Reward) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *Reward) GetRewards() []*Coin { - if x != nil { - return x.Rewards - } - return nil -} - -func (x *Reward) GetDistributedAt() int64 { - if x != nil { - return x.DistributedAt - } - return 0 -} - -type Coin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Denom of the coin - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *Coin) Reset() { - *x = Coin{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_accounts_rpc_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Coin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Coin) ProtoMessage() {} - -func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_accounts_rpc_proto_msgTypes[27] - 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 Coin.ProtoReflect.Descriptor instead. -func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_accounts_rpc_proto_rawDescGZIP(), []int{27} -} - -func (x *Coin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *Coin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -var File_injective_accounts_rpc_proto protoreflect.FileDescriptor - -var file_injective_accounts_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x3b, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, - 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x22, 0x85, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, - 0x69, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, - 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, - 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x0b, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 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, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, - 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, - 0x22, 0x78, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x13, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x10, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 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, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2d, 0x0a, - 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 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, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x17, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 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, 0x16, - 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, - 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x27, 0x0a, 0x0f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x07, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, 0x65, - 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 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, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x68, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, - 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x84, 0x01, - 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 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, 0xc1, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 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, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, 0x0e, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x73, 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, 0x19, 0x0a, - 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x19, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x09, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, - 0xd5, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x23, 0x0a, - 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, - 0x72, 0x63, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, - 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, 0x63, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, - 0x0a, 0x11, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x73, - 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, 0x74, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 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, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, 0x0a, - 0x1d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 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, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x22, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x90, - 0x01, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x34, 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, 0x32, 0xe0, 0x08, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x50, 0x43, - 0x12, 0x60, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x28, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, - 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, 0x0a, 0x11, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, - 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, - 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, - 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_injective_accounts_rpc_proto_rawDescOnce sync.Once - file_injective_accounts_rpc_proto_rawDescData = file_injective_accounts_rpc_proto_rawDesc -) - -func file_injective_accounts_rpc_proto_rawDescGZIP() []byte { - file_injective_accounts_rpc_proto_rawDescOnce.Do(func() { - file_injective_accounts_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_accounts_rpc_proto_rawDescData) - }) - return file_injective_accounts_rpc_proto_rawDescData -} - -var file_injective_accounts_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -var file_injective_accounts_rpc_proto_goTypes = []interface{}{ - (*PortfolioRequest)(nil), // 0: injective_accounts_rpc.PortfolioRequest - (*PortfolioResponse)(nil), // 1: injective_accounts_rpc.PortfolioResponse - (*AccountPortfolio)(nil), // 2: injective_accounts_rpc.AccountPortfolio - (*SubaccountPortfolio)(nil), // 3: injective_accounts_rpc.SubaccountPortfolio - (*OrderStatesRequest)(nil), // 4: injective_accounts_rpc.OrderStatesRequest - (*OrderStatesResponse)(nil), // 5: injective_accounts_rpc.OrderStatesResponse - (*OrderStateRecord)(nil), // 6: injective_accounts_rpc.OrderStateRecord - (*SubaccountsListRequest)(nil), // 7: injective_accounts_rpc.SubaccountsListRequest - (*SubaccountsListResponse)(nil), // 8: injective_accounts_rpc.SubaccountsListResponse - (*SubaccountBalancesListRequest)(nil), // 9: injective_accounts_rpc.SubaccountBalancesListRequest - (*SubaccountBalancesListResponse)(nil), // 10: injective_accounts_rpc.SubaccountBalancesListResponse - (*SubaccountBalance)(nil), // 11: injective_accounts_rpc.SubaccountBalance - (*SubaccountDeposit)(nil), // 12: injective_accounts_rpc.SubaccountDeposit - (*SubaccountBalanceEndpointRequest)(nil), // 13: injective_accounts_rpc.SubaccountBalanceEndpointRequest - (*SubaccountBalanceEndpointResponse)(nil), // 14: injective_accounts_rpc.SubaccountBalanceEndpointResponse - (*StreamSubaccountBalanceRequest)(nil), // 15: injective_accounts_rpc.StreamSubaccountBalanceRequest - (*StreamSubaccountBalanceResponse)(nil), // 16: injective_accounts_rpc.StreamSubaccountBalanceResponse - (*SubaccountHistoryRequest)(nil), // 17: injective_accounts_rpc.SubaccountHistoryRequest - (*SubaccountHistoryResponse)(nil), // 18: injective_accounts_rpc.SubaccountHistoryResponse - (*SubaccountBalanceTransfer)(nil), // 19: injective_accounts_rpc.SubaccountBalanceTransfer - (*CosmosCoin)(nil), // 20: injective_accounts_rpc.CosmosCoin - (*Paging)(nil), // 21: injective_accounts_rpc.Paging - (*SubaccountOrderSummaryRequest)(nil), // 22: injective_accounts_rpc.SubaccountOrderSummaryRequest - (*SubaccountOrderSummaryResponse)(nil), // 23: injective_accounts_rpc.SubaccountOrderSummaryResponse - (*RewardsRequest)(nil), // 24: injective_accounts_rpc.RewardsRequest - (*RewardsResponse)(nil), // 25: injective_accounts_rpc.RewardsResponse - (*Reward)(nil), // 26: injective_accounts_rpc.Reward - (*Coin)(nil), // 27: injective_accounts_rpc.Coin -} -var file_injective_accounts_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_accounts_rpc.PortfolioResponse.portfolio:type_name -> injective_accounts_rpc.AccountPortfolio - 3, // 1: injective_accounts_rpc.AccountPortfolio.subaccounts:type_name -> injective_accounts_rpc.SubaccountPortfolio - 6, // 2: injective_accounts_rpc.OrderStatesResponse.spot_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 6, // 3: injective_accounts_rpc.OrderStatesResponse.derivative_order_states:type_name -> injective_accounts_rpc.OrderStateRecord - 11, // 4: injective_accounts_rpc.SubaccountBalancesListResponse.balances:type_name -> injective_accounts_rpc.SubaccountBalance - 12, // 5: injective_accounts_rpc.SubaccountBalance.deposit:type_name -> injective_accounts_rpc.SubaccountDeposit - 11, // 6: injective_accounts_rpc.SubaccountBalanceEndpointResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 11, // 7: injective_accounts_rpc.StreamSubaccountBalanceResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance - 19, // 8: injective_accounts_rpc.SubaccountHistoryResponse.transfers:type_name -> injective_accounts_rpc.SubaccountBalanceTransfer - 21, // 9: injective_accounts_rpc.SubaccountHistoryResponse.paging:type_name -> injective_accounts_rpc.Paging - 20, // 10: injective_accounts_rpc.SubaccountBalanceTransfer.amount:type_name -> injective_accounts_rpc.CosmosCoin - 26, // 11: injective_accounts_rpc.RewardsResponse.rewards:type_name -> injective_accounts_rpc.Reward - 27, // 12: injective_accounts_rpc.Reward.rewards:type_name -> injective_accounts_rpc.Coin - 0, // 13: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:input_type -> injective_accounts_rpc.PortfolioRequest - 4, // 14: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:input_type -> injective_accounts_rpc.OrderStatesRequest - 7, // 15: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:input_type -> injective_accounts_rpc.SubaccountsListRequest - 9, // 16: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:input_type -> injective_accounts_rpc.SubaccountBalancesListRequest - 13, // 17: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:input_type -> injective_accounts_rpc.SubaccountBalanceEndpointRequest - 15, // 18: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:input_type -> injective_accounts_rpc.StreamSubaccountBalanceRequest - 17, // 19: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:input_type -> injective_accounts_rpc.SubaccountHistoryRequest - 22, // 20: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:input_type -> injective_accounts_rpc.SubaccountOrderSummaryRequest - 24, // 21: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:input_type -> injective_accounts_rpc.RewardsRequest - 1, // 22: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:output_type -> injective_accounts_rpc.PortfolioResponse - 5, // 23: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:output_type -> injective_accounts_rpc.OrderStatesResponse - 8, // 24: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:output_type -> injective_accounts_rpc.SubaccountsListResponse - 10, // 25: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:output_type -> injective_accounts_rpc.SubaccountBalancesListResponse - 14, // 26: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:output_type -> injective_accounts_rpc.SubaccountBalanceEndpointResponse - 16, // 27: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:output_type -> injective_accounts_rpc.StreamSubaccountBalanceResponse - 18, // 28: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:output_type -> injective_accounts_rpc.SubaccountHistoryResponse - 23, // 29: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:output_type -> injective_accounts_rpc.SubaccountOrderSummaryResponse - 25, // 30: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:output_type -> injective_accounts_rpc.RewardsResponse - 22, // [22:31] is the sub-list for method output_type - 13, // [13:22] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name -} - -func init() { file_injective_accounts_rpc_proto_init() } -func file_injective_accounts_rpc_proto_init() { - if File_injective_accounts_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_injective_accounts_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountPortfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStatesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OrderStateRecord); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountsListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalancesListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalance); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountDeposit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceEndpointResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamSubaccountBalanceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountHistoryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceTransfer); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CosmosCoin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Paging); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountOrderSummaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RewardsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Reward); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_accounts_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Coin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_accounts_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 28, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_injective_accounts_rpc_proto_goTypes, - DependencyIndexes: file_injective_accounts_rpc_proto_depIdxs, - MessageInfos: file_injective_accounts_rpc_proto_msgTypes, - }.Build() - File_injective_accounts_rpc_proto = out.File - file_injective_accounts_rpc_proto_rawDesc = nil - file_injective_accounts_rpc_proto_goTypes = nil - file_injective_accounts_rpc_proto_depIdxs = nil -} diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go b/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go index 9f07d8f7..4ceab949 100644 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go +++ b/exchange/accounts_rpc/pb/injective_accounts_rpc.pb.gw.go @@ -328,6 +328,31 @@ func local_request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler } +func request_InjectiveAccountsRPC_StreamAccountData_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamAccountDataClient, runtime.ServerMetadata, error) { + var protoReq StreamAccountDataRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.StreamAccountData(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + // RegisterInjectiveAccountsRPCHandlerServer registers the http handlers for service InjectiveAccountsRPC to "mux". // UnaryRPC :call InjectiveAccountsRPCServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -340,20 +365,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_Portfolio_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -363,20 +390,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_OrderStates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -386,20 +415,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountsList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -409,20 +440,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -432,20 +465,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -462,20 +497,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -485,20 +522,22 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -508,23 +547,32 @@ func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_Rewards_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + return nil } @@ -570,19 +618,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_Portfolio_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -590,19 +640,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_OrderStates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -610,19 +662,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountsList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -630,19 +684,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -650,19 +706,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -670,19 +728,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -690,19 +750,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -710,19 +772,21 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -730,19 +794,43 @@ func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAccountsRPC_Rewards_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := request_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveAccountsRPC_Rewards_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -767,6 +855,8 @@ var ( pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountOrderSummary"}, "")) pattern_InjectiveAccountsRPC_Rewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Rewards"}, "")) + + pattern_InjectiveAccountsRPC_StreamAccountData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamAccountData"}, "")) ) var ( @@ -787,4 +877,6 @@ var ( forward_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.ForwardResponseMessage forward_InjectiveAccountsRPC_Rewards_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_StreamAccountData_0 = runtime.ForwardResponseStream ) diff --git a/exchange/accounts_rpc/pb/injective_accounts_rpc.proto b/exchange/accounts_rpc/pb/injective_accounts_rpc.proto index b5c3eba7..e28956da 100644 --- a/exchange/accounts_rpc/pb/injective_accounts_rpc.proto +++ b/exchange/accounts_rpc/pb/injective_accounts_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveAccountsRPC protocol buffer definition // @@ -33,6 +33,8 @@ service InjectiveAccountsRPC { rpc SubaccountOrderSummary (SubaccountOrderSummaryRequest) returns (SubaccountOrderSummaryResponse); // Provide historical trading rewards rpc Rewards (RewardsRequest) returns (RewardsResponse); + // Stream live data for an account and respective data + rpc StreamAccountData (StreamAccountDataRequest) returns (stream StreamAccountDataResponse); } message PortfolioRequest { @@ -272,3 +274,350 @@ message Coin { string denom = 1; string amount = 2; } + +message StreamAccountDataRequest { + // account address + string account_address = 1; +} + +message StreamAccountDataResponse { + SubaccountBalanceResult subaccount_balance = 1; + PositionsResult position = 2; + TradeResult trade = 3; + OrderResult order = 4; + OrderHistoryResult order_history = 5; + FundingPaymentResult funding_payment = 6; +} + +message SubaccountBalanceResult { + // Subaccount balance + SubaccountBalance balance = 1; + // Operation timestamp in UNIX millis. + sint64 timestamp = 2; +} + +message PositionsResult { + // Updated derivative Position + Position position = 1; + // Operation timestamp in UNIX millis. + sint64 timestamp = 2; +} + +message Position { + // Ticker of the derivative market + string ticker = 1; + // Derivative Market ID + string market_id = 2; + // The subaccountId that the position belongs to + string subaccount_id = 3; + // Direction of the position + string direction = 4; + // Quantity of the position + string quantity = 5; + // Price of the position + string entry_price = 6; + // Margin of the position + string margin = 7; + // LiquidationPrice of the position + string liquidation_price = 8; + // MarkPrice of the position + string mark_price = 9; + // Position updated timestamp in UNIX millis. + sint64 updated_at = 10; + // Position created timestamp in UNIX millis. + sint64 created_at = 11; +} + +message TradeResult { + oneof trade { + // New spot market trade + SpotTrade spot_trade = 1; + // New derivative market trade + DerivativeTrade derivative_trade = 2; + } + // Executed trades update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotTrade { + // Maker order hash. + string order_hash = 1; + // The subaccountId that executed the trade + string subaccount_id = 2; + // The ID of the market that this trade is in + string market_id = 3; + // The execution type of the trade + string trade_execution_type = 4; + // The direction the trade + string trade_direction = 5; + // Price level at which trade has been executed + PriceLevel price = 6; + // The fee associated with the trade (quote asset denom) + string fee = 7; + // Timestamp of trade execution in UNIX millis + sint64 executed_at = 8; + // Fee recipient address + string fee_recipient = 9; + // A unique string that helps differentiate between trades + string trade_id = 10; + // Trade's execution side, marker/taker + string execution_side = 11; + // Custom client order ID + string cid = 12; +} + +message PriceLevel { + // Price number of the price level. + string price = 1; + // Quantity of the price level. + string quantity = 2; + // Price level last updated timestamp in UNIX millis. + sint64 timestamp = 3; +} + +message DerivativeTrade { + // Order hash. + string order_hash = 1; + // The subaccountId that executed the trade + string subaccount_id = 2; + // The ID of the market that this trade is in + string market_id = 3; + // The execution type of the trade + string trade_execution_type = 4; + // True if the trade is a liquidation + bool is_liquidation = 5; + // Position Delta from the trade + PositionDelta position_delta = 6; + // The payout associated with the trade + string payout = 7; + // The fee associated with the trade + string fee = 8; + // Timestamp of trade execution in UNIX millis + sint64 executed_at = 9; + // Fee recipient address + string fee_recipient = 10; + // A unique string that helps differentiate between trades + string trade_id = 11; + // Trade's execution side, marker/taker + string execution_side = 12; + // Custom client order ID + string cid = 13; +} + +message PositionDelta { + // The direction the trade + string trade_direction = 1; + // Execution Price of the trade. + string execution_price = 2; + // Execution Quantity of the trade. + string execution_quantity = 3; + // Execution Margin of the trade. + string execution_margin = 4; +} + +message OrderResult { + oneof order { + // Updated spot market order + SpotLimitOrder spot_order = 1; + // Updated derivative market order + DerivativeLimitOrder derivative_order = 2; + } + // Executed orders update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotLimitOrder { + // Hash of the order + string order_hash = 1; + // The side of the order + string order_side = 2; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // Price of the order + string price = 5; + // Quantity of the order + string quantity = 6; + // The amount of the quantity remaining unfilled + string unfilled_quantity = 7; + // Trigger price is the trigger price used by stop/take orders. 0 if the +// trigger price is not set. + string trigger_price = 8; + // Fee recipient address + string fee_recipient = 9; + // Order state + string state = 10; + // Order committed timestamp in UNIX millis. + sint64 created_at = 11; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 12; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 13; + // Custom client order ID + string cid = 14; +} + +message DerivativeLimitOrder { + // Hash of the order + string order_hash = 1; + // The side of the order + string order_side = 2; + // Derivative Market ID + string market_id = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // True if the order is a reduce-only order + bool is_reduce_only = 5; + // Margin of the order + string margin = 6; + // Price of the order + string price = 7; + // Quantity of the order + string quantity = 8; + // The amount of the quantity remaining unfilled + string unfilled_quantity = 9; + // Trigger price is the trigger price used by stop/take orders + string trigger_price = 10; + // Fee recipient address + string fee_recipient = 11; + // Order state + string state = 12; + // Order committed timestamp in UNIX millis. + sint64 created_at = 13; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 14; + // Order number of subaccount + sint64 order_number = 15; + // Order type + string order_type = 16; + // Order type + bool is_conditional = 17; + // Trigger timestamp, only exists for conditional orders + uint64 trigger_at = 18; + // OrderHash of order that is triggered by this conditional order + string placed_order_hash = 19; + // Execution type of conditional order + string execution_type = 20; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 21; + // Custom client order ID + string cid = 22; +} + +message OrderHistoryResult { + oneof order_history { + // Spot order history + SpotOrderHistory spot_order_history = 1; + // Derivative order history + DerivativeOrderHistory derivative_order_history = 2; + } + // Order update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotOrderHistory { + // Hash of the order + string order_hash = 1; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 2; + // active state of the order + bool is_active = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // The execution type + string execution_type = 5; + // The side of the order + string order_type = 6; + // Price of the order + string price = 7; + // Trigger price + string trigger_price = 8; + // Quantity of the order + string quantity = 9; + // Filled amount + string filled_quantity = 10; + // Order state + string state = 11; + // Order committed timestamp in UNIX millis. + sint64 created_at = 12; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 13; + // Order direction (order side) + string direction = 14; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 15; + // Custom client order ID + string cid = 16; +} + +message DerivativeOrderHistory { + // Hash of the order + string order_hash = 1; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 2; + // active state of the order + bool is_active = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // The execution type + string execution_type = 5; + // The side of the order + string order_type = 6; + // Price of the order + string price = 7; + // Trigger price + string trigger_price = 8; + // Quantity of the order + string quantity = 9; + // Filled amount + string filled_quantity = 10; + // Order state + string state = 11; + // Order committed timestamp in UNIX millis. + sint64 created_at = 12; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 13; + // True if an order is reduce only + bool is_reduce_only = 14; + // Order direction (order side) + string direction = 15; + // True if this is conditional order, otherwise false + bool is_conditional = 16; + // Trigger timestamp in unix milli + uint64 trigger_at = 17; + // Order hash placed when this triggers + string placed_order_hash = 18; + // Order's margin + string margin = 19; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 20; + // Custom client order ID + string cid = 21; +} + +message FundingPaymentResult { + // Funding payments of the account + FundingPayment funding_payments = 1; + // Funding payments type + string operation_type = 2; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message FundingPayment { + // Derivative Market ID + string market_id = 1; + // The subaccountId that the position belongs to + string subaccount_id = 2; + // Amount of the funding payment + string amount = 3; + // Timestamp of funding payment in UNIX millis + sint64 timestamp = 4; +} diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go new file mode 100644 index 00000000..b118a8a5 --- /dev/null +++ b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc.pb.go @@ -0,0 +1,5333 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectiveAccountsRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.19.4 +// source: goadesign_goagen_injective_accounts_rpc.proto + +package injective_accounts_rpcpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PortfolioRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *PortfolioRequest) Reset() { + *x = PortfolioRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PortfolioRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortfolioRequest) ProtoMessage() {} + +func (x *PortfolioRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0] + 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 PortfolioRequest.ProtoReflect.Descriptor instead. +func (*PortfolioRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{0} +} + +func (x *PortfolioRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type PortfolioResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The portfolio of this account + Portfolio *AccountPortfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` +} + +func (x *PortfolioResponse) Reset() { + *x = PortfolioResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PortfolioResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortfolioResponse) ProtoMessage() {} + +func (x *PortfolioResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1] + 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 PortfolioResponse.ProtoReflect.Descriptor instead. +func (*PortfolioResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *PortfolioResponse) GetPortfolio() *AccountPortfolio { + if x != nil { + return x.Portfolio + } + return nil +} + +type AccountPortfolio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account's portfolio value in USD. + PortfolioValue string `protobuf:"bytes,1,opt,name=portfolio_value,json=portfolioValue,proto3" json:"portfolio_value,omitempty"` + // The account's available balance value in USD. + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` + // The account's locked balance value in USD. + LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` + // The account's total unrealized PnL value in USD. + UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` + // List of all subaccounts' portfolio + Subaccounts []*SubaccountPortfolio `protobuf:"bytes,5,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` +} + +func (x *AccountPortfolio) Reset() { + *x = AccountPortfolio{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolio) ProtoMessage() {} + +func (x *AccountPortfolio) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2] + 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 AccountPortfolio.ProtoReflect.Descriptor instead. +func (*AccountPortfolio) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *AccountPortfolio) GetPortfolioValue() string { + if x != nil { + return x.PortfolioValue + } + return "" +} + +func (x *AccountPortfolio) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +func (x *AccountPortfolio) GetLockedBalance() string { + if x != nil { + return x.LockedBalance + } + return "" +} + +func (x *AccountPortfolio) GetUnrealizedPnl() string { + if x != nil { + return x.UnrealizedPnl + } + return "" +} + +func (x *AccountPortfolio) GetSubaccounts() []*SubaccountPortfolio { + if x != nil { + return x.Subaccounts + } + return nil +} + +type SubaccountPortfolio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ID of this subaccount + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The subaccount's available balance value in USD. + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` + // The subaccount's locked balance value in USD. + LockedBalance string `protobuf:"bytes,3,opt,name=locked_balance,json=lockedBalance,proto3" json:"locked_balance,omitempty"` + // The subaccount's total unrealized PnL value in USD. + UnrealizedPnl string `protobuf:"bytes,4,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` +} + +func (x *SubaccountPortfolio) Reset() { + *x = SubaccountPortfolio{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountPortfolio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountPortfolio) ProtoMessage() {} + +func (x *SubaccountPortfolio) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3] + 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 SubaccountPortfolio.ProtoReflect.Descriptor instead. +func (*SubaccountPortfolio) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *SubaccountPortfolio) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountPortfolio) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +func (x *SubaccountPortfolio) GetLockedBalance() string { + if x != nil { + return x.LockedBalance + } + return "" +} + +func (x *SubaccountPortfolio) GetUnrealizedPnl() string { + if x != nil { + return x.UnrealizedPnl + } + return "" +} + +type OrderStatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SpotOrderHashes []string `protobuf:"bytes,1,rep,name=spot_order_hashes,json=spotOrderHashes,proto3" json:"spot_order_hashes,omitempty"` + DerivativeOrderHashes []string `protobuf:"bytes,2,rep,name=derivative_order_hashes,json=derivativeOrderHashes,proto3" json:"derivative_order_hashes,omitempty"` +} + +func (x *OrderStatesRequest) Reset() { + *x = OrderStatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStatesRequest) ProtoMessage() {} + +func (x *OrderStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4] + 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 OrderStatesRequest.ProtoReflect.Descriptor instead. +func (*OrderStatesRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *OrderStatesRequest) GetSpotOrderHashes() []string { + if x != nil { + return x.SpotOrderHashes + } + return nil +} + +func (x *OrderStatesRequest) GetDerivativeOrderHashes() []string { + if x != nil { + return x.DerivativeOrderHashes + } + return nil +} + +type OrderStatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of the spot order state records + SpotOrderStates []*OrderStateRecord `protobuf:"bytes,1,rep,name=spot_order_states,json=spotOrderStates,proto3" json:"spot_order_states,omitempty"` + // List of the derivative order state records + DerivativeOrderStates []*OrderStateRecord `protobuf:"bytes,2,rep,name=derivative_order_states,json=derivativeOrderStates,proto3" json:"derivative_order_states,omitempty"` +} + +func (x *OrderStatesResponse) Reset() { + *x = OrderStatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStatesResponse) ProtoMessage() {} + +func (x *OrderStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5] + 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 OrderStatesResponse.ProtoReflect.Descriptor instead. +func (*OrderStatesResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{5} +} + +func (x *OrderStatesResponse) GetSpotOrderStates() []*OrderStateRecord { + if x != nil { + return x.SpotOrderStates + } + return nil +} + +func (x *OrderStatesResponse) GetDerivativeOrderStates() []*OrderStateRecord { + if x != nil { + return x.DerivativeOrderStates + } + return nil +} + +type OrderStateRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The Market ID of the order + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The type of the order + OrderType string `protobuf:"bytes,4,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,5,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // The state (status) of the order + State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` + // The filled quantity of the order + QuantityFilled string `protobuf:"bytes,7,opt,name=quantity_filled,json=quantityFilled,proto3" json:"quantity_filled,omitempty"` + // The filled quantity of the order + QuantityRemaining string `protobuf:"bytes,8,opt,name=quantity_remaining,json=quantityRemaining,proto3" json:"quantity_remaining,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order prices + Price string `protobuf:"bytes,11,opt,name=price,proto3" json:"price,omitempty"` + // Margin for derivative order + Margin string `protobuf:"bytes,12,opt,name=margin,proto3" json:"margin,omitempty"` +} + +func (x *OrderStateRecord) Reset() { + *x = OrderStateRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderStateRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderStateRecord) ProtoMessage() {} + +func (x *OrderStateRecord) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6] + 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 OrderStateRecord.ProtoReflect.Descriptor instead. +func (*OrderStateRecord) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *OrderStateRecord) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *OrderStateRecord) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *OrderStateRecord) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *OrderStateRecord) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *OrderStateRecord) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *OrderStateRecord) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *OrderStateRecord) GetQuantityFilled() string { + if x != nil { + return x.QuantityFilled + } + return "" +} + +func (x *OrderStateRecord) GetQuantityRemaining() string { + if x != nil { + return x.QuantityRemaining + } + return "" +} + +func (x *OrderStateRecord) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *OrderStateRecord) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *OrderStateRecord) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *OrderStateRecord) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +type SubaccountsListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address, the subaccounts owner + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *SubaccountsListRequest) Reset() { + *x = SubaccountsListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountsListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountsListRequest) ProtoMessage() {} + +func (x *SubaccountsListRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7] + 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 SubaccountsListRequest.ProtoReflect.Descriptor instead. +func (*SubaccountsListRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *SubaccountsListRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type SubaccountsListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Subaccounts []string `protobuf:"bytes,1,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` +} + +func (x *SubaccountsListResponse) Reset() { + *x = SubaccountsListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountsListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountsListResponse) ProtoMessage() {} + +func (x *SubaccountsListResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8] + 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 SubaccountsListResponse.ProtoReflect.Descriptor instead. +func (*SubaccountsListResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *SubaccountsListResponse) GetSubaccounts() []string { + if x != nil { + return x.Subaccounts + } + return nil +} + +type SubaccountBalancesListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter balances by denoms. If not set, the balances of all the denoms for + // the subaccount are provided. + Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` +} + +func (x *SubaccountBalancesListRequest) Reset() { + *x = SubaccountBalancesListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalancesListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalancesListRequest) ProtoMessage() {} + +func (x *SubaccountBalancesListRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9] + 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 SubaccountBalancesListRequest.ProtoReflect.Descriptor instead. +func (*SubaccountBalancesListRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{9} +} + +func (x *SubaccountBalancesListRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalancesListRequest) GetDenoms() []string { + if x != nil { + return x.Denoms + } + return nil +} + +type SubaccountBalancesListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of subaccount balances + Balances []*SubaccountBalance `protobuf:"bytes,1,rep,name=balances,proto3" json:"balances,omitempty"` +} + +func (x *SubaccountBalancesListResponse) Reset() { + *x = SubaccountBalancesListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalancesListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalancesListResponse) ProtoMessage() {} + +func (x *SubaccountBalancesListResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10] + 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 SubaccountBalancesListResponse.ProtoReflect.Descriptor instead. +func (*SubaccountBalancesListResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *SubaccountBalancesListResponse) GetBalances() []*SubaccountBalance { + if x != nil { + return x.Balances + } + return nil +} + +type SubaccountBalance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Related subaccount ID + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Account address, owner of this subaccount + AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Coin denom on the chain. + Denom string `protobuf:"bytes,3,opt,name=denom,proto3" json:"denom,omitempty"` + Deposit *SubaccountDeposit `protobuf:"bytes,4,opt,name=deposit,proto3" json:"deposit,omitempty"` +} + +func (x *SubaccountBalance) Reset() { + *x = SubaccountBalance{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalance) ProtoMessage() {} + +func (x *SubaccountBalance) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_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 SubaccountBalance.ProtoReflect.Descriptor instead. +func (*SubaccountBalance) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *SubaccountBalance) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalance) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *SubaccountBalance) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *SubaccountBalance) GetDeposit() *SubaccountDeposit { + if x != nil { + return x.Deposit + } + return nil +} + +type SubaccountDeposit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` +} + +func (x *SubaccountDeposit) Reset() { + *x = SubaccountDeposit{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountDeposit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountDeposit) ProtoMessage() {} + +func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_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 SubaccountDeposit.ProtoReflect.Descriptor instead. +func (*SubaccountDeposit) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{12} +} + +func (x *SubaccountDeposit) GetTotalBalance() string { + if x != nil { + return x.TotalBalance + } + return "" +} + +func (x *SubaccountDeposit) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +type SubaccountBalanceEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Specify denom to get balance + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *SubaccountBalanceEndpointRequest) Reset() { + *x = SubaccountBalanceEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceEndpointRequest) ProtoMessage() {} + +func (x *SubaccountBalanceEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13] + 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 SubaccountBalanceEndpointRequest.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceEndpointRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{13} +} + +func (x *SubaccountBalanceEndpointRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalanceEndpointRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +type SubaccountBalanceEndpointResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *SubaccountBalanceEndpointResponse) Reset() { + *x = SubaccountBalanceEndpointResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceEndpointResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceEndpointResponse) ProtoMessage() {} + +func (x *SubaccountBalanceEndpointResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14] + 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 SubaccountBalanceEndpointResponse.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceEndpointResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{14} +} + +func (x *SubaccountBalanceEndpointResponse) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +type StreamSubaccountBalanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the trades from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter balances by denoms. If not set, the balances of all the denoms for + // the subaccount are provided. + Denoms []string `protobuf:"bytes,2,rep,name=denoms,proto3" json:"denoms,omitempty"` +} + +func (x *StreamSubaccountBalanceRequest) Reset() { + *x = StreamSubaccountBalanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamSubaccountBalanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamSubaccountBalanceRequest) ProtoMessage() {} + +func (x *StreamSubaccountBalanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15] + 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 StreamSubaccountBalanceRequest.ProtoReflect.Descriptor instead. +func (*StreamSubaccountBalanceRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{15} +} + +func (x *StreamSubaccountBalanceRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *StreamSubaccountBalanceRequest) GetDenoms() []string { + if x != nil { + return x.Denoms + } + return nil +} + +type StreamSubaccountBalanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *StreamSubaccountBalanceResponse) Reset() { + *x = StreamSubaccountBalanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamSubaccountBalanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamSubaccountBalanceResponse) ProtoMessage() {} + +func (x *StreamSubaccountBalanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16] + 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 StreamSubaccountBalanceResponse.ProtoReflect.Descriptor instead. +func (*StreamSubaccountBalanceResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{16} +} + +func (x *StreamSubaccountBalanceResponse) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *StreamSubaccountBalanceResponse) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type SubaccountHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the history from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Filter history by denom + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // Filter history by transfer type + TransferTypes []string `protobuf:"bytes,3,rep,name=transfer_types,json=transferTypes,proto3" json:"transfer_types,omitempty"` + // Skip will skip the first n item from the result + Skip uint64 `protobuf:"varint,4,opt,name=skip,proto3" json:"skip,omitempty"` + // Limit is used to specify the maximum number of items to be returned + Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` + // Upper bound of account transfer history's executedAt + EndTime int64 `protobuf:"zigzag64,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` +} + +func (x *SubaccountHistoryRequest) Reset() { + *x = SubaccountHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountHistoryRequest) ProtoMessage() {} + +func (x *SubaccountHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17] + 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 SubaccountHistoryRequest.ProtoReflect.Descriptor instead. +func (*SubaccountHistoryRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{17} +} + +func (x *SubaccountHistoryRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountHistoryRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *SubaccountHistoryRequest) GetTransferTypes() []string { + if x != nil { + return x.TransferTypes + } + return nil +} + +func (x *SubaccountHistoryRequest) GetSkip() uint64 { + if x != nil { + return x.Skip + } + return 0 +} + +func (x *SubaccountHistoryRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *SubaccountHistoryRequest) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + +type SubaccountHistoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of subaccount transfers + Transfers []*SubaccountBalanceTransfer `protobuf:"bytes,1,rep,name=transfers,proto3" json:"transfers,omitempty"` + Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` +} + +func (x *SubaccountHistoryResponse) Reset() { + *x = SubaccountHistoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountHistoryResponse) ProtoMessage() {} + +func (x *SubaccountHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18] + 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 SubaccountHistoryResponse.ProtoReflect.Descriptor instead. +func (*SubaccountHistoryResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{18} +} + +func (x *SubaccountHistoryResponse) GetTransfers() []*SubaccountBalanceTransfer { + if x != nil { + return x.Transfers + } + return nil +} + +func (x *SubaccountHistoryResponse) GetPaging() *Paging { + if x != nil { + return x.Paging + } + return nil +} + +type SubaccountBalanceTransfer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Type of the subaccount balance transfer + TransferType string `protobuf:"bytes,1,opt,name=transfer_type,json=transferType,proto3" json:"transfer_type,omitempty"` + // Subaccount ID of the sending side + SrcSubaccountId string `protobuf:"bytes,2,opt,name=src_subaccount_id,json=srcSubaccountId,proto3" json:"src_subaccount_id,omitempty"` + // Account address of the sending side + SrcAccountAddress string `protobuf:"bytes,3,opt,name=src_account_address,json=srcAccountAddress,proto3" json:"src_account_address,omitempty"` + // Subaccount ID of the receiving side + DstSubaccountId string `protobuf:"bytes,4,opt,name=dst_subaccount_id,json=dstSubaccountId,proto3" json:"dst_subaccount_id,omitempty"` + // Account address of the receiving side + DstAccountAddress string `protobuf:"bytes,5,opt,name=dst_account_address,json=dstAccountAddress,proto3" json:"dst_account_address,omitempty"` + // Coin amount of the transfer + Amount *CosmosCoin `protobuf:"bytes,6,opt,name=amount,proto3" json:"amount,omitempty"` + // Timestamp of the transfer in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,7,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` +} + +func (x *SubaccountBalanceTransfer) Reset() { + *x = SubaccountBalanceTransfer{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceTransfer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceTransfer) ProtoMessage() {} + +func (x *SubaccountBalanceTransfer) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19] + 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 SubaccountBalanceTransfer.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceTransfer) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{19} +} + +func (x *SubaccountBalanceTransfer) GetTransferType() string { + if x != nil { + return x.TransferType + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetSrcSubaccountId() string { + if x != nil { + return x.SrcSubaccountId + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetSrcAccountAddress() string { + if x != nil { + return x.SrcAccountAddress + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetDstSubaccountId() string { + if x != nil { + return x.DstSubaccountId + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetDstAccountAddress() string { + if x != nil { + return x.DstAccountAddress + } + return "" +} + +func (x *SubaccountBalanceTransfer) GetAmount() *CosmosCoin { + if x != nil { + return x.Amount + } + return nil +} + +func (x *SubaccountBalanceTransfer) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +type CosmosCoin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Coin denominator + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // Coin amount (big int) + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *CosmosCoin) Reset() { + *x = CosmosCoin{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CosmosCoin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CosmosCoin) ProtoMessage() {} + +func (x *CosmosCoin) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20] + 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 CosmosCoin.ProtoReflect.Descriptor instead. +func (*CosmosCoin) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{20} +} + +func (x *CosmosCoin) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *CosmosCoin) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +// Paging defines the structure for required params for handling pagination +type Paging struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // total number of txs saved in database + Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` + // can be either block height or index num + From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` + // can be either block height or index num + To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` + // count entries by subaccount, serving some places on helix + CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` + // array of tokens to navigate to the next pages + Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` +} + +func (x *Paging) Reset() { + *x = Paging{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Paging) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Paging) ProtoMessage() {} + +func (x *Paging) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21] + 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 Paging.ProtoReflect.Descriptor instead. +func (*Paging) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{21} +} + +func (x *Paging) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *Paging) GetFrom() int32 { + if x != nil { + return x.From + } + return 0 +} + +func (x *Paging) GetTo() int32 { + if x != nil { + return x.To + } + return 0 +} + +func (x *Paging) GetCountBySubaccount() int64 { + if x != nil { + return x.CountBySubaccount + } + return 0 +} + +func (x *Paging) GetNext() []string { + if x != nil { + return x.Next + } + return nil +} + +type SubaccountOrderSummaryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // SubaccountId of the trader we want to get the summary from + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // MarketId is limiting order summary to specific market only + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Filter by direction of the orders + OrderDirection string `protobuf:"bytes,3,opt,name=order_direction,json=orderDirection,proto3" json:"order_direction,omitempty"` +} + +func (x *SubaccountOrderSummaryRequest) Reset() { + *x = SubaccountOrderSummaryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountOrderSummaryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountOrderSummaryRequest) ProtoMessage() {} + +func (x *SubaccountOrderSummaryRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22] + 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 SubaccountOrderSummaryRequest.ProtoReflect.Descriptor instead. +func (*SubaccountOrderSummaryRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{22} +} + +func (x *SubaccountOrderSummaryRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountOrderSummaryRequest) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SubaccountOrderSummaryRequest) GetOrderDirection() string { + if x != nil { + return x.OrderDirection + } + return "" +} + +type SubaccountOrderSummaryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total count of subaccount's spot orders in given market and direction + SpotOrdersTotal int64 `protobuf:"zigzag64,1,opt,name=spot_orders_total,json=spotOrdersTotal,proto3" json:"spot_orders_total,omitempty"` + // Total count of subaccount's derivative orders in given market and direction + DerivativeOrdersTotal int64 `protobuf:"zigzag64,2,opt,name=derivative_orders_total,json=derivativeOrdersTotal,proto3" json:"derivative_orders_total,omitempty"` +} + +func (x *SubaccountOrderSummaryResponse) Reset() { + *x = SubaccountOrderSummaryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountOrderSummaryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountOrderSummaryResponse) ProtoMessage() {} + +func (x *SubaccountOrderSummaryResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23] + 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 SubaccountOrderSummaryResponse.ProtoReflect.Descriptor instead. +func (*SubaccountOrderSummaryResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{23} +} + +func (x *SubaccountOrderSummaryResponse) GetSpotOrdersTotal() int64 { + if x != nil { + return x.SpotOrdersTotal + } + return 0 +} + +func (x *SubaccountOrderSummaryResponse) GetDerivativeOrdersTotal() int64 { + if x != nil { + return x.DerivativeOrdersTotal + } + return 0 +} + +type RewardsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The distribution epoch sequence number. -1 for latest. + Epoch int64 `protobuf:"zigzag64,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // Account address for the rewards distribution + AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *RewardsRequest) Reset() { + *x = RewardsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RewardsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RewardsRequest) ProtoMessage() {} + +func (x *RewardsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24] + 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 RewardsRequest.ProtoReflect.Descriptor instead. +func (*RewardsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{24} +} + +func (x *RewardsRequest) GetEpoch() int64 { + if x != nil { + return x.Epoch + } + return 0 +} + +func (x *RewardsRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type RewardsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The trading rewards distributed + Rewards []*Reward `protobuf:"bytes,1,rep,name=rewards,proto3" json:"rewards,omitempty"` +} + +func (x *RewardsResponse) Reset() { + *x = RewardsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RewardsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RewardsResponse) ProtoMessage() {} + +func (x *RewardsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25] + 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 RewardsResponse.ProtoReflect.Descriptor instead. +func (*RewardsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{25} +} + +func (x *RewardsResponse) GetRewards() []*Reward { + if x != nil { + return x.Rewards + } + return nil +} + +type Reward struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Reward coins distributed + Rewards []*Coin `protobuf:"bytes,2,rep,name=rewards,proto3" json:"rewards,omitempty"` + // Rewards distribution timestamp in UNIX millis. + DistributedAt int64 `protobuf:"zigzag64,3,opt,name=distributed_at,json=distributedAt,proto3" json:"distributed_at,omitempty"` +} + +func (x *Reward) Reset() { + *x = Reward{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Reward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reward) ProtoMessage() {} + +func (x *Reward) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26] + 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 Reward.ProtoReflect.Descriptor instead. +func (*Reward) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{26} +} + +func (x *Reward) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *Reward) GetRewards() []*Coin { + if x != nil { + return x.Rewards + } + return nil +} + +func (x *Reward) GetDistributedAt() int64 { + if x != nil { + return x.DistributedAt + } + return 0 +} + +type Coin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Denom of the coin + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *Coin) Reset() { + *x = Coin{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Coin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Coin) ProtoMessage() {} + +func (x *Coin) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27] + 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 Coin.ProtoReflect.Descriptor instead. +func (*Coin) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{27} +} + +func (x *Coin) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *Coin) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +type StreamAccountDataRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *StreamAccountDataRequest) Reset() { + *x = StreamAccountDataRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountDataRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountDataRequest) ProtoMessage() {} + +func (x *StreamAccountDataRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28] + 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 StreamAccountDataRequest.ProtoReflect.Descriptor instead. +func (*StreamAccountDataRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{28} +} + +func (x *StreamAccountDataRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type StreamAccountDataResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubaccountBalance *SubaccountBalanceResult `protobuf:"bytes,1,opt,name=subaccount_balance,json=subaccountBalance,proto3" json:"subaccount_balance,omitempty"` + Position *PositionsResult `protobuf:"bytes,2,opt,name=position,proto3" json:"position,omitempty"` + Trade *TradeResult `protobuf:"bytes,3,opt,name=trade,proto3" json:"trade,omitempty"` + Order *OrderResult `protobuf:"bytes,4,opt,name=order,proto3" json:"order,omitempty"` + OrderHistory *OrderHistoryResult `protobuf:"bytes,5,opt,name=order_history,json=orderHistory,proto3" json:"order_history,omitempty"` + FundingPayment *FundingPaymentResult `protobuf:"bytes,6,opt,name=funding_payment,json=fundingPayment,proto3" json:"funding_payment,omitempty"` +} + +func (x *StreamAccountDataResponse) Reset() { + *x = StreamAccountDataResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountDataResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountDataResponse) ProtoMessage() {} + +func (x *StreamAccountDataResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29] + 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 StreamAccountDataResponse.ProtoReflect.Descriptor instead. +func (*StreamAccountDataResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{29} +} + +func (x *StreamAccountDataResponse) GetSubaccountBalance() *SubaccountBalanceResult { + if x != nil { + return x.SubaccountBalance + } + return nil +} + +func (x *StreamAccountDataResponse) GetPosition() *PositionsResult { + if x != nil { + return x.Position + } + return nil +} + +func (x *StreamAccountDataResponse) GetTrade() *TradeResult { + if x != nil { + return x.Trade + } + return nil +} + +func (x *StreamAccountDataResponse) GetOrder() *OrderResult { + if x != nil { + return x.Order + } + return nil +} + +func (x *StreamAccountDataResponse) GetOrderHistory() *OrderHistoryResult { + if x != nil { + return x.OrderHistory + } + return nil +} + +func (x *StreamAccountDataResponse) GetFundingPayment() *FundingPaymentResult { + if x != nil { + return x.FundingPayment + } + return nil +} + +type SubaccountBalanceResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Subaccount balance + Balance *SubaccountBalance `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *SubaccountBalanceResult) Reset() { + *x = SubaccountBalanceResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceResult) ProtoMessage() {} + +func (x *SubaccountBalanceResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30] + 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 SubaccountBalanceResult.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{30} +} + +func (x *SubaccountBalanceResult) GetBalance() *SubaccountBalance { + if x != nil { + return x.Balance + } + return nil +} + +func (x *SubaccountBalanceResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type PositionsResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Updated derivative Position + Position *Position `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *PositionsResult) Reset() { + *x = PositionsResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionsResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionsResult) ProtoMessage() {} + +func (x *PositionsResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31] + 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 PositionsResult.ProtoReflect.Descriptor instead. +func (*PositionsResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{31} +} + +func (x *PositionsResult) GetPosition() *Position { + if x != nil { + return x.Position + } + return nil +} + +func (x *PositionsResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type Position struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ticker of the derivative market + Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that the position belongs to + SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Direction of the position + Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` + // Quantity of the position + Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Price of the position + EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` + // Margin of the position + Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` + // LiquidationPrice of the position + LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` + // MarkPrice of the position + MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` + // Position updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Position created timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` +} + +func (x *Position) Reset() { + *x = Position{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Position) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Position) ProtoMessage() {} + +func (x *Position) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32] + 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 Position.ProtoReflect.Descriptor instead. +func (*Position) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{32} +} + +func (x *Position) GetTicker() string { + if x != nil { + return x.Ticker + } + return "" +} + +func (x *Position) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *Position) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *Position) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *Position) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *Position) GetEntryPrice() string { + if x != nil { + return x.EntryPrice + } + return "" +} + +func (x *Position) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *Position) GetLiquidationPrice() string { + if x != nil { + return x.LiquidationPrice + } + return "" +} + +func (x *Position) GetMarkPrice() string { + if x != nil { + return x.MarkPrice + } + return "" +} + +func (x *Position) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *Position) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type TradeResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Trade: + // + // *TradeResult_SpotTrade + // *TradeResult_DerivativeTrade + Trade isTradeResult_Trade `protobuf_oneof:"trade"` + // Executed trades update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *TradeResult) Reset() { + *x = TradeResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TradeResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TradeResult) ProtoMessage() {} + +func (x *TradeResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33] + 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 TradeResult.ProtoReflect.Descriptor instead. +func (*TradeResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{33} +} + +func (m *TradeResult) GetTrade() isTradeResult_Trade { + if m != nil { + return m.Trade + } + return nil +} + +func (x *TradeResult) GetSpotTrade() *SpotTrade { + if x, ok := x.GetTrade().(*TradeResult_SpotTrade); ok { + return x.SpotTrade + } + return nil +} + +func (x *TradeResult) GetDerivativeTrade() *DerivativeTrade { + if x, ok := x.GetTrade().(*TradeResult_DerivativeTrade); ok { + return x.DerivativeTrade + } + return nil +} + +func (x *TradeResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *TradeResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isTradeResult_Trade interface { + isTradeResult_Trade() +} + +type TradeResult_SpotTrade struct { + // New spot market trade + SpotTrade *SpotTrade `protobuf:"bytes,1,opt,name=spot_trade,json=spotTrade,proto3,oneof"` +} + +type TradeResult_DerivativeTrade struct { + // New derivative market trade + DerivativeTrade *DerivativeTrade `protobuf:"bytes,2,opt,name=derivative_trade,json=derivativeTrade,proto3,oneof"` +} + +func (*TradeResult_SpotTrade) isTradeResult_Trade() {} + +func (*TradeResult_DerivativeTrade) isTradeResult_Trade() {} + +type SpotTrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Maker order hash. + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that executed the trade + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The ID of the market that this trade is in + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The execution type of the trade + TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` + // The direction the trade + TradeDirection string `protobuf:"bytes,5,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` + // Price level at which trade has been executed + Price *PriceLevel `protobuf:"bytes,6,opt,name=price,proto3" json:"price,omitempty"` + // The fee associated with the trade (quote asset denom) + Fee string `protobuf:"bytes,7,opt,name=fee,proto3" json:"fee,omitempty"` + // Timestamp of trade execution in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,8,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` + // Fee recipient address + 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 + 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"` +} + +func (x *SpotTrade) Reset() { + *x = SpotTrade{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotTrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotTrade) ProtoMessage() {} + +func (x *SpotTrade) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34] + 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 SpotTrade.ProtoReflect.Descriptor instead. +func (*SpotTrade) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{34} +} + +func (x *SpotTrade) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotTrade) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotTrade) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotTrade) GetTradeExecutionType() string { + if x != nil { + return x.TradeExecutionType + } + return "" +} + +func (x *SpotTrade) GetTradeDirection() string { + if x != nil { + return x.TradeDirection + } + return "" +} + +func (x *SpotTrade) GetPrice() *PriceLevel { + if x != nil { + return x.Price + } + return nil +} + +func (x *SpotTrade) GetFee() string { + if x != nil { + return x.Fee + } + return "" +} + +func (x *SpotTrade) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +func (x *SpotTrade) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *SpotTrade) GetTradeId() string { + if x != nil { + return x.TradeId + } + return "" +} + +func (x *SpotTrade) GetExecutionSide() string { + if x != nil { + return x.ExecutionSide + } + return "" +} + +func (x *SpotTrade) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type PriceLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Price number of the price level. + Price string `protobuf:"bytes,1,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the price level. + Quantity string `protobuf:"bytes,2,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Price level last updated timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *PriceLevel) Reset() { + *x = PriceLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PriceLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PriceLevel) ProtoMessage() {} + +func (x *PriceLevel) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35] + 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 PriceLevel.ProtoReflect.Descriptor instead. +func (*PriceLevel) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{35} +} + +func (x *PriceLevel) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *PriceLevel) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *PriceLevel) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type DerivativeTrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Order hash. + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The subaccountId that executed the trade + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The ID of the market that this trade is in + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The execution type of the trade + TradeExecutionType string `protobuf:"bytes,4,opt,name=trade_execution_type,json=tradeExecutionType,proto3" json:"trade_execution_type,omitempty"` + // True if the trade is a liquidation + IsLiquidation bool `protobuf:"varint,5,opt,name=is_liquidation,json=isLiquidation,proto3" json:"is_liquidation,omitempty"` + // Position Delta from the trade + PositionDelta *PositionDelta `protobuf:"bytes,6,opt,name=position_delta,json=positionDelta,proto3" json:"position_delta,omitempty"` + // The payout associated with the trade + Payout string `protobuf:"bytes,7,opt,name=payout,proto3" json:"payout,omitempty"` + // The fee associated with the trade + Fee string `protobuf:"bytes,8,opt,name=fee,proto3" json:"fee,omitempty"` + // Timestamp of trade execution in UNIX millis + ExecutedAt int64 `protobuf:"zigzag64,9,opt,name=executed_at,json=executedAt,proto3" json:"executed_at,omitempty"` + // Fee recipient address + 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 + 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"` +} + +func (x *DerivativeTrade) Reset() { + *x = DerivativeTrade{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeTrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeTrade) ProtoMessage() {} + +func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36] + 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 DerivativeTrade.ProtoReflect.Descriptor instead. +func (*DerivativeTrade) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{36} +} + +func (x *DerivativeTrade) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeTrade) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeTrade) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeTrade) GetTradeExecutionType() string { + if x != nil { + return x.TradeExecutionType + } + return "" +} + +func (x *DerivativeTrade) GetIsLiquidation() bool { + if x != nil { + return x.IsLiquidation + } + return false +} + +func (x *DerivativeTrade) GetPositionDelta() *PositionDelta { + if x != nil { + return x.PositionDelta + } + return nil +} + +func (x *DerivativeTrade) GetPayout() string { + if x != nil { + return x.Payout + } + return "" +} + +func (x *DerivativeTrade) GetFee() string { + if x != nil { + return x.Fee + } + return "" +} + +func (x *DerivativeTrade) GetExecutedAt() int64 { + if x != nil { + return x.ExecutedAt + } + return 0 +} + +func (x *DerivativeTrade) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *DerivativeTrade) GetTradeId() string { + if x != nil { + return x.TradeId + } + return "" +} + +func (x *DerivativeTrade) GetExecutionSide() string { + if x != nil { + return x.ExecutionSide + } + return "" +} + +func (x *DerivativeTrade) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type PositionDelta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The direction the trade + TradeDirection string `protobuf:"bytes,1,opt,name=trade_direction,json=tradeDirection,proto3" json:"trade_direction,omitempty"` + // Execution Price of the trade. + ExecutionPrice string `protobuf:"bytes,2,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` + // Execution Quantity of the trade. + ExecutionQuantity string `protobuf:"bytes,3,opt,name=execution_quantity,json=executionQuantity,proto3" json:"execution_quantity,omitempty"` + // Execution Margin of the trade. + ExecutionMargin string `protobuf:"bytes,4,opt,name=execution_margin,json=executionMargin,proto3" json:"execution_margin,omitempty"` +} + +func (x *PositionDelta) Reset() { + *x = PositionDelta{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionDelta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionDelta) ProtoMessage() {} + +func (x *PositionDelta) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37] + 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 PositionDelta.ProtoReflect.Descriptor instead. +func (*PositionDelta) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{37} +} + +func (x *PositionDelta) GetTradeDirection() string { + if x != nil { + return x.TradeDirection + } + return "" +} + +func (x *PositionDelta) GetExecutionPrice() string { + if x != nil { + return x.ExecutionPrice + } + return "" +} + +func (x *PositionDelta) GetExecutionQuantity() string { + if x != nil { + return x.ExecutionQuantity + } + return "" +} + +func (x *PositionDelta) GetExecutionMargin() string { + if x != nil { + return x.ExecutionMargin + } + return "" +} + +type OrderResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Order: + // + // *OrderResult_SpotOrder + // *OrderResult_DerivativeOrder + Order isOrderResult_Order `protobuf_oneof:"order"` + // Executed orders update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *OrderResult) Reset() { + *x = OrderResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderResult) ProtoMessage() {} + +func (x *OrderResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38] + 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 OrderResult.ProtoReflect.Descriptor instead. +func (*OrderResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{38} +} + +func (m *OrderResult) GetOrder() isOrderResult_Order { + if m != nil { + return m.Order + } + return nil +} + +func (x *OrderResult) GetSpotOrder() *SpotLimitOrder { + if x, ok := x.GetOrder().(*OrderResult_SpotOrder); ok { + return x.SpotOrder + } + return nil +} + +func (x *OrderResult) GetDerivativeOrder() *DerivativeLimitOrder { + if x, ok := x.GetOrder().(*OrderResult_DerivativeOrder); ok { + return x.DerivativeOrder + } + return nil +} + +func (x *OrderResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *OrderResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isOrderResult_Order interface { + isOrderResult_Order() +} + +type OrderResult_SpotOrder struct { + // Updated spot market order + SpotOrder *SpotLimitOrder `protobuf:"bytes,1,opt,name=spot_order,json=spotOrder,proto3,oneof"` +} + +type OrderResult_DerivativeOrder struct { + // Updated derivative market order + DerivativeOrder *DerivativeLimitOrder `protobuf:"bytes,2,opt,name=derivative_order,json=derivativeOrder,proto3,oneof"` +} + +func (*OrderResult_SpotOrder) isOrderResult_Order() {} + +func (*OrderResult_DerivativeOrder) isOrderResult_Order() {} + +type SpotLimitOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Price of the order + Price string `protobuf:"bytes,5,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,6,opt,name=quantity,proto3" json:"quantity,omitempty"` + // The amount of the quantity remaining unfilled + UnfilledQuantity string `protobuf:"bytes,7,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` + // Trigger price is the trigger price used by stop/take orders. 0 if the + // trigger price is not set. + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,9,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` + // Order state + State string `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,11,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,13,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,14,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *SpotLimitOrder) Reset() { + *x = SpotLimitOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotLimitOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotLimitOrder) ProtoMessage() {} + +func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39] + 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 SpotLimitOrder.ProtoReflect.Descriptor instead. +func (*SpotLimitOrder) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{39} +} + +func (x *SpotLimitOrder) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotLimitOrder) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *SpotLimitOrder) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotLimitOrder) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotLimitOrder) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *SpotLimitOrder) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *SpotLimitOrder) GetUnfilledQuantity() string { + if x != nil { + return x.UnfilledQuantity + } + return "" +} + +func (x *SpotLimitOrder) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *SpotLimitOrder) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *SpotLimitOrder) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *SpotLimitOrder) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SpotLimitOrder) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *SpotLimitOrder) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *SpotLimitOrder) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type DerivativeLimitOrder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // The side of the order + OrderSide string `protobuf:"bytes,2,opt,name=order_side,json=orderSide,proto3" json:"order_side,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,3,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // True if the order is a reduce-only order + IsReduceOnly bool `protobuf:"varint,5,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` + // Margin of the order + Margin string `protobuf:"bytes,6,opt,name=margin,proto3" json:"margin,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,8,opt,name=quantity,proto3" json:"quantity,omitempty"` + // The amount of the quantity remaining unfilled + UnfilledQuantity string `protobuf:"bytes,9,opt,name=unfilled_quantity,json=unfilledQuantity,proto3" json:"unfilled_quantity,omitempty"` + // Trigger price is the trigger price used by stop/take orders + TriggerPrice string `protobuf:"bytes,10,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Fee recipient address + FeeRecipient string `protobuf:"bytes,11,opt,name=fee_recipient,json=feeRecipient,proto3" json:"fee_recipient,omitempty"` + // Order state + State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,14,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order number of subaccount + OrderNumber int64 `protobuf:"zigzag64,15,opt,name=order_number,json=orderNumber,proto3" json:"order_number,omitempty"` + // Order type + OrderType string `protobuf:"bytes,16,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Order type + IsConditional bool `protobuf:"varint,17,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` + // Trigger timestamp, only exists for conditional orders + TriggerAt uint64 `protobuf:"varint,18,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` + // OrderHash of order that is triggered by this conditional order + PlacedOrderHash string `protobuf:"bytes,19,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` + // Execution type of conditional order + ExecutionType string `protobuf:"bytes,20,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,21,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,22,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *DerivativeLimitOrder) Reset() { + *x = DerivativeLimitOrder{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeLimitOrder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeLimitOrder) ProtoMessage() {} + +func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40] + 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 DerivativeLimitOrder.ProtoReflect.Descriptor instead. +func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{40} +} + +func (x *DerivativeLimitOrder) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetOrderSide() string { + if x != nil { + return x.OrderSide + } + return "" +} + +func (x *DerivativeLimitOrder) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeLimitOrder) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeLimitOrder) GetIsReduceOnly() bool { + if x != nil { + return x.IsReduceOnly + } + return false +} + +func (x *DerivativeLimitOrder) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *DerivativeLimitOrder) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *DerivativeLimitOrder) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *DerivativeLimitOrder) GetUnfilledQuantity() string { + if x != nil { + return x.UnfilledQuantity + } + return "" +} + +func (x *DerivativeLimitOrder) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *DerivativeLimitOrder) GetFeeRecipient() string { + if x != nil { + return x.FeeRecipient + } + return "" +} + +func (x *DerivativeLimitOrder) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *DerivativeLimitOrder) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetOrderNumber() int64 { + if x != nil { + return x.OrderNumber + } + return 0 +} + +func (x *DerivativeLimitOrder) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *DerivativeLimitOrder) GetIsConditional() bool { + if x != nil { + return x.IsConditional + } + return false +} + +func (x *DerivativeLimitOrder) GetTriggerAt() uint64 { + if x != nil { + return x.TriggerAt + } + return 0 +} + +func (x *DerivativeLimitOrder) GetPlacedOrderHash() string { + if x != nil { + return x.PlacedOrderHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *DerivativeLimitOrder) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *DerivativeLimitOrder) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type OrderHistoryResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to OrderHistory: + // + // *OrderHistoryResult_SpotOrderHistory + // *OrderHistoryResult_DerivativeOrderHistory + OrderHistory isOrderHistoryResult_OrderHistory `protobuf_oneof:"order_history"` + // Order update type + OperationType string `protobuf:"bytes,3,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *OrderHistoryResult) Reset() { + *x = OrderHistoryResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrderHistoryResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrderHistoryResult) ProtoMessage() {} + +func (x *OrderHistoryResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41] + 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 OrderHistoryResult.ProtoReflect.Descriptor instead. +func (*OrderHistoryResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{41} +} + +func (m *OrderHistoryResult) GetOrderHistory() isOrderHistoryResult_OrderHistory { + if m != nil { + return m.OrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetSpotOrderHistory() *SpotOrderHistory { + if x, ok := x.GetOrderHistory().(*OrderHistoryResult_SpotOrderHistory); ok { + return x.SpotOrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetDerivativeOrderHistory() *DerivativeOrderHistory { + if x, ok := x.GetOrderHistory().(*OrderHistoryResult_DerivativeOrderHistory); ok { + return x.DerivativeOrderHistory + } + return nil +} + +func (x *OrderHistoryResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *OrderHistoryResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type isOrderHistoryResult_OrderHistory interface { + isOrderHistoryResult_OrderHistory() +} + +type OrderHistoryResult_SpotOrderHistory struct { + // Spot order history + SpotOrderHistory *SpotOrderHistory `protobuf:"bytes,1,opt,name=spot_order_history,json=spotOrderHistory,proto3,oneof"` +} + +type OrderHistoryResult_DerivativeOrderHistory struct { + // Derivative order history + DerivativeOrderHistory *DerivativeOrderHistory `protobuf:"bytes,2,opt,name=derivative_order_history,json=derivativeOrderHistory,proto3,oneof"` +} + +func (*OrderHistoryResult_SpotOrderHistory) isOrderHistoryResult_OrderHistory() {} + +func (*OrderHistoryResult_DerivativeOrderHistory) isOrderHistoryResult_OrderHistory() {} + +type SpotOrderHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // active state of the order + IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The execution type + ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // The side of the order + OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Trigger price + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Filled amount + FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` + // Order state + State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Order direction (order side) + Direction string `protobuf:"bytes,14,opt,name=direction,proto3" json:"direction,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,15,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,16,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *SpotOrderHistory) Reset() { + *x = SpotOrderHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpotOrderHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpotOrderHistory) ProtoMessage() {} + +func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42] + 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 SpotOrderHistory.ProtoReflect.Descriptor instead. +func (*SpotOrderHistory) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{42} +} + +func (x *SpotOrderHistory) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *SpotOrderHistory) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *SpotOrderHistory) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *SpotOrderHistory) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SpotOrderHistory) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *SpotOrderHistory) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *SpotOrderHistory) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *SpotOrderHistory) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *SpotOrderHistory) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *SpotOrderHistory) GetFilledQuantity() string { + if x != nil { + return x.FilledQuantity + } + return "" +} + +func (x *SpotOrderHistory) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *SpotOrderHistory) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *SpotOrderHistory) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *SpotOrderHistory) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *SpotOrderHistory) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *SpotOrderHistory) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type DerivativeOrderHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Hash of the order + OrderHash string `protobuf:"bytes,1,opt,name=order_hash,json=orderHash,proto3" json:"order_hash,omitempty"` + // Spot Market ID is keccak265(baseDenom + quoteDenom) + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // active state of the order + IsActive bool `protobuf:"varint,3,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"` + // The subaccountId that this order belongs to + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // The execution type + ExecutionType string `protobuf:"bytes,5,opt,name=execution_type,json=executionType,proto3" json:"execution_type,omitempty"` + // The side of the order + OrderType string `protobuf:"bytes,6,opt,name=order_type,json=orderType,proto3" json:"order_type,omitempty"` + // Price of the order + Price string `protobuf:"bytes,7,opt,name=price,proto3" json:"price,omitempty"` + // Trigger price + TriggerPrice string `protobuf:"bytes,8,opt,name=trigger_price,json=triggerPrice,proto3" json:"trigger_price,omitempty"` + // Quantity of the order + Quantity string `protobuf:"bytes,9,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Filled amount + FilledQuantity string `protobuf:"bytes,10,opt,name=filled_quantity,json=filledQuantity,proto3" json:"filled_quantity,omitempty"` + // Order state + State string `protobuf:"bytes,11,opt,name=state,proto3" json:"state,omitempty"` + // Order committed timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,12,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Order updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,13,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // True if an order is reduce only + IsReduceOnly bool `protobuf:"varint,14,opt,name=is_reduce_only,json=isReduceOnly,proto3" json:"is_reduce_only,omitempty"` + // Order direction (order side) + Direction string `protobuf:"bytes,15,opt,name=direction,proto3" json:"direction,omitempty"` + // True if this is conditional order, otherwise false + IsConditional bool `protobuf:"varint,16,opt,name=is_conditional,json=isConditional,proto3" json:"is_conditional,omitempty"` + // Trigger timestamp in unix milli + TriggerAt uint64 `protobuf:"varint,17,opt,name=trigger_at,json=triggerAt,proto3" json:"trigger_at,omitempty"` + // Order hash placed when this triggers + PlacedOrderHash string `protobuf:"bytes,18,opt,name=placed_order_hash,json=placedOrderHash,proto3" json:"placed_order_hash,omitempty"` + // Order's margin + Margin string `protobuf:"bytes,19,opt,name=margin,proto3" json:"margin,omitempty"` + // Transaction Hash where order is created. Not all orders have this field + TxHash string `protobuf:"bytes,20,opt,name=tx_hash,json=txHash,proto3" json:"tx_hash,omitempty"` + // Custom client order ID + Cid string `protobuf:"bytes,21,opt,name=cid,proto3" json:"cid,omitempty"` +} + +func (x *DerivativeOrderHistory) Reset() { + *x = DerivativeOrderHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativeOrderHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativeOrderHistory) ProtoMessage() {} + +func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43] + 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 DerivativeOrderHistory.ProtoReflect.Descriptor instead. +func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{43} +} + +func (x *DerivativeOrderHistory) GetOrderHash() string { + if x != nil { + return x.OrderHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativeOrderHistory) GetIsActive() bool { + if x != nil { + return x.IsActive + } + return false +} + +func (x *DerivativeOrderHistory) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativeOrderHistory) GetExecutionType() string { + if x != nil { + return x.ExecutionType + } + return "" +} + +func (x *DerivativeOrderHistory) GetOrderType() string { + if x != nil { + return x.OrderType + } + return "" +} + +func (x *DerivativeOrderHistory) GetPrice() string { + if x != nil { + return x.Price + } + return "" +} + +func (x *DerivativeOrderHistory) GetTriggerPrice() string { + if x != nil { + return x.TriggerPrice + } + return "" +} + +func (x *DerivativeOrderHistory) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *DerivativeOrderHistory) GetFilledQuantity() string { + if x != nil { + return x.FilledQuantity + } + return "" +} + +func (x *DerivativeOrderHistory) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *DerivativeOrderHistory) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetIsReduceOnly() bool { + if x != nil { + return x.IsReduceOnly + } + return false +} + +func (x *DerivativeOrderHistory) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *DerivativeOrderHistory) GetIsConditional() bool { + if x != nil { + return x.IsConditional + } + return false +} + +func (x *DerivativeOrderHistory) GetTriggerAt() uint64 { + if x != nil { + return x.TriggerAt + } + return 0 +} + +func (x *DerivativeOrderHistory) GetPlacedOrderHash() string { + if x != nil { + return x.PlacedOrderHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *DerivativeOrderHistory) GetTxHash() string { + if x != nil { + return x.TxHash + } + return "" +} + +func (x *DerivativeOrderHistory) GetCid() string { + if x != nil { + return x.Cid + } + return "" +} + +type FundingPaymentResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Funding payments of the account + FundingPayments *FundingPayment `protobuf:"bytes,1,opt,name=funding_payments,json=fundingPayments,proto3" json:"funding_payments,omitempty"` + // Funding payments type + OperationType string `protobuf:"bytes,2,opt,name=operation_type,json=operationType,proto3" json:"operation_type,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *FundingPaymentResult) Reset() { + *x = FundingPaymentResult{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundingPaymentResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundingPaymentResult) ProtoMessage() {} + +func (x *FundingPaymentResult) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44] + 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 FundingPaymentResult.ProtoReflect.Descriptor instead. +func (*FundingPaymentResult) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{44} +} + +func (x *FundingPaymentResult) GetFundingPayments() *FundingPayment { + if x != nil { + return x.FundingPayments + } + return nil +} + +func (x *FundingPaymentResult) GetOperationType() string { + if x != nil { + return x.OperationType + } + return "" +} + +func (x *FundingPaymentResult) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +type FundingPayment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Derivative Market ID + MarketId string `protobuf:"bytes,1,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that the position belongs to + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Amount of the funding payment + Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // Timestamp of funding payment in UNIX millis + Timestamp int64 `protobuf:"zigzag64,4,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *FundingPayment) Reset() { + *x = FundingPayment{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundingPayment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundingPayment) ProtoMessage() {} + +func (x *FundingPayment) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45] + 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 FundingPayment.ProtoReflect.Descriptor instead. +func (*FundingPayment) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP(), []int{45} +} + +func (x *FundingPayment) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *FundingPayment) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *FundingPayment) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *FundingPayment) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +var File_goadesign_goagen_injective_accounts_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x3b, 0x0a, 0x10, 0x50, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x22, 0x85, 0x02, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, + 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x12, 0x4d, 0x0a, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x13, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 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, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, + 0x6c, 0x22, 0x78, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x13, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x17, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x10, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 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, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x69, 0x64, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2d, + 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 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, 0x0a, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x22, 0x41, 0x0a, 0x16, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x17, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x5c, 0x0a, 0x1d, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 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, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x67, 0x0a, 0x1e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x27, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x07, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, + 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x5d, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 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, + 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x68, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, + 0x5d, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 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, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x84, + 0x01, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 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, 0xc1, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 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, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x25, 0x0a, + 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x73, 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, 0x19, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa4, 0x01, 0x0a, 0x19, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x22, 0xd5, 0x02, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x23, + 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x72, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x73, 0x72, 0x63, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x2e, 0x0a, 0x13, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x72, + 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x2a, 0x0a, 0x11, 0x64, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x73, 0x74, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, + 0x73, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x73, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 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, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, + 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, + 0x0a, 0x1d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 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, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x15, 0x64, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x22, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, + 0x90, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x22, 0x34, 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, 0x22, 0x43, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xde, 0x03, + 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x11, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x39, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x55, 0x0a, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x7c, + 0x0a, 0x17, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 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, 0x6d, 0x0a, 0x0f, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x3c, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 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, 0xe1, 0x02, 0x0a, 0x08, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0xf5, 0x01, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x42, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, + 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, + 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, + 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, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, + 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, + 0x65, 0x65, 0x18, 0x07, 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, 0x08, 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, + 0x09, 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, + 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0xdd, 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, 0x4c, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 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, 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, 0xff, 0x01, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, + 0x00, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x10, + 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 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, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x07, 0x0a, 0x05, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xb8, 0x03, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, + 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x23, 0x0a, 0x0d, + 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, + 0x22, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, + 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, + 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 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, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 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, 0x12, 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, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x58, 0x0a, 0x12, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x48, 0x00, 0x52, 0x10, 0x73, 0x70, 0x6f, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x6a, 0x0a, 0x18, 0x64, + 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 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, 0x48, 0x00, 0x52, + 0x16, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0f, 0x0a, 0x0d, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xf3, 0x03, + 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 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, 0x1c, 0x0a, 0x09, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 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, + 0xae, 0x01, 0x0a, 0x14, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x51, 0x0a, 0x10, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 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, + 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 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, 0x32, 0xdc, 0x09, 0x0a, 0x14, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x52, 0x50, 0x43, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, + 0x6f, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, + 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x35, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x90, 0x01, 0x0a, + 0x19, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8c, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x78, + 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x87, 0x01, 0x0a, 0x16, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, + 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc +) + +func file_goadesign_goagen_injective_accounts_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData) + }) + return file_goadesign_goagen_injective_accounts_rpc_proto_rawDescData +} + +var file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = []interface{}{ + (*PortfolioRequest)(nil), // 0: injective_accounts_rpc.PortfolioRequest + (*PortfolioResponse)(nil), // 1: injective_accounts_rpc.PortfolioResponse + (*AccountPortfolio)(nil), // 2: injective_accounts_rpc.AccountPortfolio + (*SubaccountPortfolio)(nil), // 3: injective_accounts_rpc.SubaccountPortfolio + (*OrderStatesRequest)(nil), // 4: injective_accounts_rpc.OrderStatesRequest + (*OrderStatesResponse)(nil), // 5: injective_accounts_rpc.OrderStatesResponse + (*OrderStateRecord)(nil), // 6: injective_accounts_rpc.OrderStateRecord + (*SubaccountsListRequest)(nil), // 7: injective_accounts_rpc.SubaccountsListRequest + (*SubaccountsListResponse)(nil), // 8: injective_accounts_rpc.SubaccountsListResponse + (*SubaccountBalancesListRequest)(nil), // 9: injective_accounts_rpc.SubaccountBalancesListRequest + (*SubaccountBalancesListResponse)(nil), // 10: injective_accounts_rpc.SubaccountBalancesListResponse + (*SubaccountBalance)(nil), // 11: injective_accounts_rpc.SubaccountBalance + (*SubaccountDeposit)(nil), // 12: injective_accounts_rpc.SubaccountDeposit + (*SubaccountBalanceEndpointRequest)(nil), // 13: injective_accounts_rpc.SubaccountBalanceEndpointRequest + (*SubaccountBalanceEndpointResponse)(nil), // 14: injective_accounts_rpc.SubaccountBalanceEndpointResponse + (*StreamSubaccountBalanceRequest)(nil), // 15: injective_accounts_rpc.StreamSubaccountBalanceRequest + (*StreamSubaccountBalanceResponse)(nil), // 16: injective_accounts_rpc.StreamSubaccountBalanceResponse + (*SubaccountHistoryRequest)(nil), // 17: injective_accounts_rpc.SubaccountHistoryRequest + (*SubaccountHistoryResponse)(nil), // 18: injective_accounts_rpc.SubaccountHistoryResponse + (*SubaccountBalanceTransfer)(nil), // 19: injective_accounts_rpc.SubaccountBalanceTransfer + (*CosmosCoin)(nil), // 20: injective_accounts_rpc.CosmosCoin + (*Paging)(nil), // 21: injective_accounts_rpc.Paging + (*SubaccountOrderSummaryRequest)(nil), // 22: injective_accounts_rpc.SubaccountOrderSummaryRequest + (*SubaccountOrderSummaryResponse)(nil), // 23: injective_accounts_rpc.SubaccountOrderSummaryResponse + (*RewardsRequest)(nil), // 24: injective_accounts_rpc.RewardsRequest + (*RewardsResponse)(nil), // 25: injective_accounts_rpc.RewardsResponse + (*Reward)(nil), // 26: injective_accounts_rpc.Reward + (*Coin)(nil), // 27: injective_accounts_rpc.Coin + (*StreamAccountDataRequest)(nil), // 28: injective_accounts_rpc.StreamAccountDataRequest + (*StreamAccountDataResponse)(nil), // 29: injective_accounts_rpc.StreamAccountDataResponse + (*SubaccountBalanceResult)(nil), // 30: injective_accounts_rpc.SubaccountBalanceResult + (*PositionsResult)(nil), // 31: injective_accounts_rpc.PositionsResult + (*Position)(nil), // 32: injective_accounts_rpc.Position + (*TradeResult)(nil), // 33: injective_accounts_rpc.TradeResult + (*SpotTrade)(nil), // 34: injective_accounts_rpc.SpotTrade + (*PriceLevel)(nil), // 35: injective_accounts_rpc.PriceLevel + (*DerivativeTrade)(nil), // 36: injective_accounts_rpc.DerivativeTrade + (*PositionDelta)(nil), // 37: injective_accounts_rpc.PositionDelta + (*OrderResult)(nil), // 38: injective_accounts_rpc.OrderResult + (*SpotLimitOrder)(nil), // 39: injective_accounts_rpc.SpotLimitOrder + (*DerivativeLimitOrder)(nil), // 40: injective_accounts_rpc.DerivativeLimitOrder + (*OrderHistoryResult)(nil), // 41: injective_accounts_rpc.OrderHistoryResult + (*SpotOrderHistory)(nil), // 42: injective_accounts_rpc.SpotOrderHistory + (*DerivativeOrderHistory)(nil), // 43: injective_accounts_rpc.DerivativeOrderHistory + (*FundingPaymentResult)(nil), // 44: injective_accounts_rpc.FundingPaymentResult + (*FundingPayment)(nil), // 45: injective_accounts_rpc.FundingPayment +} +var file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = []int32{ + 2, // 0: injective_accounts_rpc.PortfolioResponse.portfolio:type_name -> injective_accounts_rpc.AccountPortfolio + 3, // 1: injective_accounts_rpc.AccountPortfolio.subaccounts:type_name -> injective_accounts_rpc.SubaccountPortfolio + 6, // 2: injective_accounts_rpc.OrderStatesResponse.spot_order_states:type_name -> injective_accounts_rpc.OrderStateRecord + 6, // 3: injective_accounts_rpc.OrderStatesResponse.derivative_order_states:type_name -> injective_accounts_rpc.OrderStateRecord + 11, // 4: injective_accounts_rpc.SubaccountBalancesListResponse.balances:type_name -> injective_accounts_rpc.SubaccountBalance + 12, // 5: injective_accounts_rpc.SubaccountBalance.deposit:type_name -> injective_accounts_rpc.SubaccountDeposit + 11, // 6: injective_accounts_rpc.SubaccountBalanceEndpointResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 11, // 7: injective_accounts_rpc.StreamSubaccountBalanceResponse.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 19, // 8: injective_accounts_rpc.SubaccountHistoryResponse.transfers:type_name -> injective_accounts_rpc.SubaccountBalanceTransfer + 21, // 9: injective_accounts_rpc.SubaccountHistoryResponse.paging:type_name -> injective_accounts_rpc.Paging + 20, // 10: injective_accounts_rpc.SubaccountBalanceTransfer.amount:type_name -> injective_accounts_rpc.CosmosCoin + 26, // 11: injective_accounts_rpc.RewardsResponse.rewards:type_name -> injective_accounts_rpc.Reward + 27, // 12: injective_accounts_rpc.Reward.rewards:type_name -> injective_accounts_rpc.Coin + 30, // 13: injective_accounts_rpc.StreamAccountDataResponse.subaccount_balance:type_name -> injective_accounts_rpc.SubaccountBalanceResult + 31, // 14: injective_accounts_rpc.StreamAccountDataResponse.position:type_name -> injective_accounts_rpc.PositionsResult + 33, // 15: injective_accounts_rpc.StreamAccountDataResponse.trade:type_name -> injective_accounts_rpc.TradeResult + 38, // 16: injective_accounts_rpc.StreamAccountDataResponse.order:type_name -> injective_accounts_rpc.OrderResult + 41, // 17: injective_accounts_rpc.StreamAccountDataResponse.order_history:type_name -> injective_accounts_rpc.OrderHistoryResult + 44, // 18: injective_accounts_rpc.StreamAccountDataResponse.funding_payment:type_name -> injective_accounts_rpc.FundingPaymentResult + 11, // 19: injective_accounts_rpc.SubaccountBalanceResult.balance:type_name -> injective_accounts_rpc.SubaccountBalance + 32, // 20: injective_accounts_rpc.PositionsResult.position:type_name -> injective_accounts_rpc.Position + 34, // 21: injective_accounts_rpc.TradeResult.spot_trade:type_name -> injective_accounts_rpc.SpotTrade + 36, // 22: injective_accounts_rpc.TradeResult.derivative_trade:type_name -> injective_accounts_rpc.DerivativeTrade + 35, // 23: injective_accounts_rpc.SpotTrade.price:type_name -> injective_accounts_rpc.PriceLevel + 37, // 24: injective_accounts_rpc.DerivativeTrade.position_delta:type_name -> injective_accounts_rpc.PositionDelta + 39, // 25: injective_accounts_rpc.OrderResult.spot_order:type_name -> injective_accounts_rpc.SpotLimitOrder + 40, // 26: injective_accounts_rpc.OrderResult.derivative_order:type_name -> injective_accounts_rpc.DerivativeLimitOrder + 42, // 27: injective_accounts_rpc.OrderHistoryResult.spot_order_history:type_name -> injective_accounts_rpc.SpotOrderHistory + 43, // 28: injective_accounts_rpc.OrderHistoryResult.derivative_order_history:type_name -> injective_accounts_rpc.DerivativeOrderHistory + 45, // 29: injective_accounts_rpc.FundingPaymentResult.funding_payments:type_name -> injective_accounts_rpc.FundingPayment + 0, // 30: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:input_type -> injective_accounts_rpc.PortfolioRequest + 4, // 31: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:input_type -> injective_accounts_rpc.OrderStatesRequest + 7, // 32: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:input_type -> injective_accounts_rpc.SubaccountsListRequest + 9, // 33: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:input_type -> injective_accounts_rpc.SubaccountBalancesListRequest + 13, // 34: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:input_type -> injective_accounts_rpc.SubaccountBalanceEndpointRequest + 15, // 35: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:input_type -> injective_accounts_rpc.StreamSubaccountBalanceRequest + 17, // 36: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:input_type -> injective_accounts_rpc.SubaccountHistoryRequest + 22, // 37: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:input_type -> injective_accounts_rpc.SubaccountOrderSummaryRequest + 24, // 38: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:input_type -> injective_accounts_rpc.RewardsRequest + 28, // 39: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:input_type -> injective_accounts_rpc.StreamAccountDataRequest + 1, // 40: injective_accounts_rpc.InjectiveAccountsRPC.Portfolio:output_type -> injective_accounts_rpc.PortfolioResponse + 5, // 41: injective_accounts_rpc.InjectiveAccountsRPC.OrderStates:output_type -> injective_accounts_rpc.OrderStatesResponse + 8, // 42: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountsList:output_type -> injective_accounts_rpc.SubaccountsListResponse + 10, // 43: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalancesList:output_type -> injective_accounts_rpc.SubaccountBalancesListResponse + 14, // 44: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountBalanceEndpoint:output_type -> injective_accounts_rpc.SubaccountBalanceEndpointResponse + 16, // 45: injective_accounts_rpc.InjectiveAccountsRPC.StreamSubaccountBalance:output_type -> injective_accounts_rpc.StreamSubaccountBalanceResponse + 18, // 46: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountHistory:output_type -> injective_accounts_rpc.SubaccountHistoryResponse + 23, // 47: injective_accounts_rpc.InjectiveAccountsRPC.SubaccountOrderSummary:output_type -> injective_accounts_rpc.SubaccountOrderSummaryResponse + 25, // 48: injective_accounts_rpc.InjectiveAccountsRPC.Rewards:output_type -> injective_accounts_rpc.RewardsResponse + 29, // 49: injective_accounts_rpc.InjectiveAccountsRPC.StreamAccountData:output_type -> injective_accounts_rpc.StreamAccountDataResponse + 40, // [40:50] is the sub-list for method output_type + 30, // [30:40] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_accounts_rpc_proto_init() } +func file_goadesign_goagen_injective_accounts_rpc_proto_init() { + if File_goadesign_goagen_injective_accounts_rpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortfolioRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortfolioResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountPortfolio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStatesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderStateRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountsListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountsListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalancesListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalancesListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountDeposit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceEndpointResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamSubaccountBalanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamSubaccountBalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountHistoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceTransfer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CosmosCoin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Paging); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountOrderSummaryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountOrderSummaryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RewardsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RewardsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Reward); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Coin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountDataRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountDataResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionsResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Position); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TradeResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotTrade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PriceLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeTrade); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionDelta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotLimitOrder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeLimitOrder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OrderHistoryResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpotOrderHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativeOrderHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundingPaymentResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundingPayment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[33].OneofWrappers = []interface{}{ + (*TradeResult_SpotTrade)(nil), + (*TradeResult_DerivativeTrade)(nil), + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[38].OneofWrappers = []interface{}{ + (*OrderResult_SpotOrder)(nil), + (*OrderResult_DerivativeOrder)(nil), + } + file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes[41].OneofWrappers = []interface{}{ + (*OrderHistoryResult_SpotOrderHistory)(nil), + (*OrderHistoryResult_DerivativeOrderHistory)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc, + NumEnums: 0, + NumMessages: 46, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_injective_accounts_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_accounts_rpc_proto_msgTypes, + }.Build() + File_goadesign_goagen_injective_accounts_rpc_proto = out.File + file_goadesign_goagen_injective_accounts_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_accounts_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_accounts_rpc_proto_depIdxs = nil +} diff --git a/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go new file mode 100644 index 00000000..ceb634f9 --- /dev/null +++ b/exchange/accounts_rpc/pb/pb/goadesign_goagen_injective_accounts_rpc_grpc.pb.go @@ -0,0 +1,508 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_accounts_rpc.proto + +package injective_accounts_rpcpb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// InjectiveAccountsRPCClient is the client API for InjectiveAccountsRPC service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type InjectiveAccountsRPCClient interface { + // Provide the account's portfolio value in USD. + Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) + // List order states by order hashes + OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) + // List all subaccounts IDs of an account address + SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) + // List subaccount balances for the provided denoms. + SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) + // Gets a balance for specific coin denom + SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) + // StreamSubaccountBalance streams new balance changes for a specified + // subaccount and denoms. If no denoms are provided, all denom changes are + // streamed. + StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) + // Get subaccount's deposits and withdrawals history + SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) + // Get subaccount's orders summary + SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) + // Provide historical trading rewards + Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) + // Stream live data for an account and respective data + StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) +} + +type injectiveAccountsRPCClient struct { + cc grpc.ClientConnInterface +} + +func NewInjectiveAccountsRPCClient(cc grpc.ClientConnInterface) InjectiveAccountsRPCClient { + return &injectiveAccountsRPCClient{cc} +} + +func (c *injectiveAccountsRPCClient) Portfolio(ctx context.Context, in *PortfolioRequest, opts ...grpc.CallOption) (*PortfolioResponse, error) { + out := new(PortfolioResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) OrderStates(ctx context.Context, in *OrderStatesRequest, opts ...grpc.CallOption) (*OrderStatesResponse, error) { + out := new(OrderStatesResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) SubaccountsList(ctx context.Context, in *SubaccountsListRequest, opts ...grpc.CallOption) (*SubaccountsListResponse, error) { + out := new(SubaccountsListResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) SubaccountBalancesList(ctx context.Context, in *SubaccountBalancesListRequest, opts ...grpc.CallOption) (*SubaccountBalancesListResponse, error) { + out := new(SubaccountBalancesListResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) SubaccountBalanceEndpoint(ctx context.Context, in *SubaccountBalanceEndpointRequest, opts ...grpc.CallOption) (*SubaccountBalanceEndpointResponse, error) { + out := new(SubaccountBalanceEndpointResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) StreamSubaccountBalance(ctx context.Context, in *StreamSubaccountBalanceRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, error) { + stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[0], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", opts...) + if err != nil { + return nil, err + } + x := &injectiveAccountsRPCStreamSubaccountBalanceClient{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 InjectiveAccountsRPC_StreamSubaccountBalanceClient interface { + Recv() (*StreamSubaccountBalanceResponse, error) + grpc.ClientStream +} + +type injectiveAccountsRPCStreamSubaccountBalanceClient struct { + grpc.ClientStream +} + +func (x *injectiveAccountsRPCStreamSubaccountBalanceClient) Recv() (*StreamSubaccountBalanceResponse, error) { + m := new(StreamSubaccountBalanceResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *injectiveAccountsRPCClient) SubaccountHistory(ctx context.Context, in *SubaccountHistoryRequest, opts ...grpc.CallOption) (*SubaccountHistoryResponse, error) { + out := new(SubaccountHistoryResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) SubaccountOrderSummary(ctx context.Context, in *SubaccountOrderSummaryRequest, opts ...grpc.CallOption) (*SubaccountOrderSummaryResponse, error) { + out := new(SubaccountOrderSummaryResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) Rewards(ctx context.Context, in *RewardsRequest, opts ...grpc.CallOption) (*RewardsResponse, error) { + out := new(RewardsResponse) + err := c.cc.Invoke(ctx, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *injectiveAccountsRPCClient) StreamAccountData(ctx context.Context, in *StreamAccountDataRequest, opts ...grpc.CallOption) (InjectiveAccountsRPC_StreamAccountDataClient, error) { + stream, err := c.cc.NewStream(ctx, &InjectiveAccountsRPC_ServiceDesc.Streams[1], "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", opts...) + if err != nil { + return nil, err + } + x := &injectiveAccountsRPCStreamAccountDataClient{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 InjectiveAccountsRPC_StreamAccountDataClient interface { + Recv() (*StreamAccountDataResponse, error) + grpc.ClientStream +} + +type injectiveAccountsRPCStreamAccountDataClient struct { + grpc.ClientStream +} + +func (x *injectiveAccountsRPCStreamAccountDataClient) Recv() (*StreamAccountDataResponse, error) { + m := new(StreamAccountDataResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// InjectiveAccountsRPCServer is the server API for InjectiveAccountsRPC service. +// All implementations must embed UnimplementedInjectiveAccountsRPCServer +// for forward compatibility +type InjectiveAccountsRPCServer interface { + // Provide the account's portfolio value in USD. + Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) + // List order states by order hashes + OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) + // List all subaccounts IDs of an account address + SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) + // List subaccount balances for the provided denoms. + SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) + // Gets a balance for specific coin denom + SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) + // StreamSubaccountBalance streams new balance changes for a specified + // subaccount and denoms. If no denoms are provided, all denom changes are + // streamed. + StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error + // Get subaccount's deposits and withdrawals history + SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) + // Get subaccount's orders summary + SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) + // Provide historical trading rewards + Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) + // Stream live data for an account and respective data + StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error + mustEmbedUnimplementedInjectiveAccountsRPCServer() +} + +// UnimplementedInjectiveAccountsRPCServer must be embedded to have forward compatible implementations. +type UnimplementedInjectiveAccountsRPCServer struct { +} + +func (UnimplementedInjectiveAccountsRPCServer) Portfolio(context.Context, *PortfolioRequest) (*PortfolioResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Portfolio not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) OrderStates(context.Context, *OrderStatesRequest) (*OrderStatesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OrderStates not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) SubaccountsList(context.Context, *SubaccountsListRequest) (*SubaccountsListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubaccountsList not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalancesList(context.Context, *SubaccountBalancesListRequest) (*SubaccountBalancesListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalancesList not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) SubaccountBalanceEndpoint(context.Context, *SubaccountBalanceEndpointRequest) (*SubaccountBalanceEndpointResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubaccountBalanceEndpoint not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) StreamSubaccountBalance(*StreamSubaccountBalanceRequest, InjectiveAccountsRPC_StreamSubaccountBalanceServer) error { + return status.Errorf(codes.Unimplemented, "method StreamSubaccountBalance not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) SubaccountHistory(context.Context, *SubaccountHistoryRequest) (*SubaccountHistoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubaccountHistory not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) SubaccountOrderSummary(context.Context, *SubaccountOrderSummaryRequest) (*SubaccountOrderSummaryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubaccountOrderSummary not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) Rewards(context.Context, *RewardsRequest) (*RewardsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Rewards not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) StreamAccountData(*StreamAccountDataRequest, InjectiveAccountsRPC_StreamAccountDataServer) error { + return status.Errorf(codes.Unimplemented, "method StreamAccountData not implemented") +} +func (UnimplementedInjectiveAccountsRPCServer) mustEmbedUnimplementedInjectiveAccountsRPCServer() {} + +// UnsafeInjectiveAccountsRPCServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to InjectiveAccountsRPCServer will +// result in compilation errors. +type UnsafeInjectiveAccountsRPCServer interface { + mustEmbedUnimplementedInjectiveAccountsRPCServer() +} + +func RegisterInjectiveAccountsRPCServer(s grpc.ServiceRegistrar, srv InjectiveAccountsRPCServer) { + s.RegisterService(&InjectiveAccountsRPC_ServiceDesc, srv) +} + +func _InjectiveAccountsRPC_Portfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PortfolioRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).Portfolio(ctx, req.(*PortfolioRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_OrderStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OrderStatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).OrderStates(ctx, req.(*OrderStatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_SubaccountsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubaccountsListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).SubaccountsList(ctx, req.(*SubaccountsListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_SubaccountBalancesList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubaccountBalancesListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).SubaccountBalancesList(ctx, req.(*SubaccountBalancesListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubaccountBalanceEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).SubaccountBalanceEndpoint(ctx, req.(*SubaccountBalanceEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_StreamSubaccountBalance_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamSubaccountBalanceRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(InjectiveAccountsRPCServer).StreamSubaccountBalance(m, &injectiveAccountsRPCStreamSubaccountBalanceServer{stream}) +} + +type InjectiveAccountsRPC_StreamSubaccountBalanceServer interface { + Send(*StreamSubaccountBalanceResponse) error + grpc.ServerStream +} + +type injectiveAccountsRPCStreamSubaccountBalanceServer struct { + grpc.ServerStream +} + +func (x *injectiveAccountsRPCStreamSubaccountBalanceServer) Send(m *StreamSubaccountBalanceResponse) error { + return x.ServerStream.SendMsg(m) +} + +func _InjectiveAccountsRPC_SubaccountHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubaccountHistoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).SubaccountHistory(ctx, req.(*SubaccountHistoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_SubaccountOrderSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubaccountOrderSummaryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).SubaccountOrderSummary(ctx, req.(*SubaccountOrderSummaryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_Rewards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RewardsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveAccountsRPCServer).Rewards(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveAccountsRPCServer).Rewards(ctx, req.(*RewardsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _InjectiveAccountsRPC_StreamAccountData_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StreamAccountDataRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(InjectiveAccountsRPCServer).StreamAccountData(m, &injectiveAccountsRPCStreamAccountDataServer{stream}) +} + +type InjectiveAccountsRPC_StreamAccountDataServer interface { + Send(*StreamAccountDataResponse) error + grpc.ServerStream +} + +type injectiveAccountsRPCStreamAccountDataServer struct { + grpc.ServerStream +} + +func (x *injectiveAccountsRPCStreamAccountDataServer) Send(m *StreamAccountDataResponse) error { + return x.ServerStream.SendMsg(m) +} + +// InjectiveAccountsRPC_ServiceDesc is the grpc.ServiceDesc for InjectiveAccountsRPC service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var InjectiveAccountsRPC_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "injective_accounts_rpc.InjectiveAccountsRPC", + HandlerType: (*InjectiveAccountsRPCServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Portfolio", + Handler: _InjectiveAccountsRPC_Portfolio_Handler, + }, + { + MethodName: "OrderStates", + Handler: _InjectiveAccountsRPC_OrderStates_Handler, + }, + { + MethodName: "SubaccountsList", + Handler: _InjectiveAccountsRPC_SubaccountsList_Handler, + }, + { + MethodName: "SubaccountBalancesList", + Handler: _InjectiveAccountsRPC_SubaccountBalancesList_Handler, + }, + { + MethodName: "SubaccountBalanceEndpoint", + Handler: _InjectiveAccountsRPC_SubaccountBalanceEndpoint_Handler, + }, + { + MethodName: "SubaccountHistory", + Handler: _InjectiveAccountsRPC_SubaccountHistory_Handler, + }, + { + MethodName: "SubaccountOrderSummary", + Handler: _InjectiveAccountsRPC_SubaccountOrderSummary_Handler, + }, + { + MethodName: "Rewards", + Handler: _InjectiveAccountsRPC_Rewards_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "StreamSubaccountBalance", + Handler: _InjectiveAccountsRPC_StreamSubaccountBalance_Handler, + ServerStreams: true, + }, + { + StreamName: "StreamAccountData", + Handler: _InjectiveAccountsRPC_StreamAccountData_Handler, + ServerStreams: true, + }, + }, + Metadata: "goadesign_goagen_injective_accounts_rpc.proto", +} diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go new file mode 100644 index 00000000..4ceab949 --- /dev/null +++ b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.pb.gw.go @@ -0,0 +1,882 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: injective_accounts_rpc.proto + +/* +Package injective_accounts_rpcpb is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package injective_accounts_rpcpb + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PortfolioRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.Portfolio(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_Portfolio_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PortfolioRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.Portfolio(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OrderStatesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.OrderStates(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_OrderStates_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq OrderStatesRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.OrderStates(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountsListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SubaccountsList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_SubaccountsList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountsListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SubaccountsList(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountBalancesListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SubaccountBalancesList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountBalancesListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SubaccountBalancesList(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountBalanceEndpointRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SubaccountBalanceEndpoint(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountBalanceEndpointRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SubaccountBalanceEndpoint(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_StreamSubaccountBalance_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamSubaccountBalanceClient, runtime.ServerMetadata, error) { + var protoReq StreamSubaccountBalanceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.StreamSubaccountBalance(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +func request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountHistoryRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SubaccountHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_SubaccountHistory_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountHistoryRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SubaccountHistory(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountOrderSummaryRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SubaccountOrderSummary(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SubaccountOrderSummaryRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SubaccountOrderSummary(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RewardsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.Rewards(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveAccountsRPC_Rewards_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveAccountsRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RewardsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.Rewards(ctx, &protoReq) + return msg, metadata, err + +} + +func request_InjectiveAccountsRPC_StreamAccountData_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveAccountsRPCClient, req *http.Request, pathParams map[string]string) (InjectiveAccountsRPC_StreamAccountDataClient, runtime.ServerMetadata, error) { + var protoReq StreamAccountDataRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.StreamAccountData(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +// RegisterInjectiveAccountsRPCHandlerServer registers the http handlers for service InjectiveAccountsRPC to "mux". +// UnaryRPC :call InjectiveAccountsRPCServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectiveAccountsRPCHandlerFromEndpoint instead. +func RegisterInjectiveAccountsRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectiveAccountsRPCServer) error { + + mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + return nil +} + +// RegisterInjectiveAccountsRPCHandlerFromEndpoint is same as RegisterInjectiveAccountsRPCHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterInjectiveAccountsRPCHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterInjectiveAccountsRPCHandler(ctx, mux, conn) +} + +// RegisterInjectiveAccountsRPCHandler registers the http handlers for service InjectiveAccountsRPC to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterInjectiveAccountsRPCHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterInjectiveAccountsRPCHandlerClient(ctx, mux, NewInjectiveAccountsRPCClient(conn)) +} + +// RegisterInjectiveAccountsRPCHandlerClient registers the http handlers for service InjectiveAccountsRPC +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InjectiveAccountsRPCClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InjectiveAccountsRPCClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "InjectiveAccountsRPCClient" to call the correct interceptors. +func RegisterInjectiveAccountsRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectiveAccountsRPCClient) error { + + mux.Handle("POST", pattern_InjectiveAccountsRPC_Portfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Portfolio")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_Portfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_Portfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_OrderStates_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/OrderStates")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_OrderStates_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_OrderStates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountsList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountsList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountsList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalancesList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalancesList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountBalancesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountBalanceEndpoint")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamSubaccountBalance")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_StreamSubaccountBalance_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountHistory")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/SubaccountOrderSummary")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_SubaccountOrderSummary_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_Rewards_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/Rewards", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/Rewards")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_Rewards_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_Rewards_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveAccountsRPC_StreamAccountData_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData", runtime.WithHTTPPathPattern("/injective_accounts_rpc.InjectiveAccountsRPC/StreamAccountData")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveAccountsRPC_StreamAccountData_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_InjectiveAccountsRPC_Portfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Portfolio"}, "")) + + pattern_InjectiveAccountsRPC_OrderStates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "OrderStates"}, "")) + + pattern_InjectiveAccountsRPC_SubaccountsList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountsList"}, "")) + + pattern_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalancesList"}, "")) + + pattern_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountBalanceEndpoint"}, "")) + + pattern_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamSubaccountBalance"}, "")) + + pattern_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountHistory"}, "")) + + pattern_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "SubaccountOrderSummary"}, "")) + + pattern_InjectiveAccountsRPC_Rewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "Rewards"}, "")) + + pattern_InjectiveAccountsRPC_StreamAccountData_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_accounts_rpc.InjectiveAccountsRPC", "StreamAccountData"}, "")) +) + +var ( + forward_InjectiveAccountsRPC_Portfolio_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_OrderStates_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_SubaccountsList_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_SubaccountBalancesList_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_SubaccountBalanceEndpoint_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_StreamSubaccountBalance_0 = runtime.ForwardResponseStream + + forward_InjectiveAccountsRPC_SubaccountHistory_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_SubaccountOrderSummary_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_Rewards_0 = runtime.ForwardResponseMessage + + forward_InjectiveAccountsRPC_StreamAccountData_0 = runtime.ForwardResponseStream +) diff --git a/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto new file mode 100644 index 00000000..e28956da --- /dev/null +++ b/exchange/accounts_rpc/pb/pb/injective_accounts_rpc.proto @@ -0,0 +1,623 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectiveAccountsRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +syntax = "proto3"; + +package injective_accounts_rpc; + +option go_package = "/injective_accounts_rpcpb"; + +// InjectiveAccountsRPC defines API of Exchange Accounts provider. +service InjectiveAccountsRPC { + // Provide the account's portfolio value in USD. + rpc Portfolio (PortfolioRequest) returns (PortfolioResponse); + // List order states by order hashes + rpc OrderStates (OrderStatesRequest) returns (OrderStatesResponse); + // List all subaccounts IDs of an account address + rpc SubaccountsList (SubaccountsListRequest) returns (SubaccountsListResponse); + // List subaccount balances for the provided denoms. + rpc SubaccountBalancesList (SubaccountBalancesListRequest) returns (SubaccountBalancesListResponse); + // Gets a balance for specific coin denom + rpc SubaccountBalanceEndpoint (SubaccountBalanceEndpointRequest) returns (SubaccountBalanceEndpointResponse); + // StreamSubaccountBalance streams new balance changes for a specified +// subaccount and denoms. If no denoms are provided, all denom changes are +// streamed. + rpc StreamSubaccountBalance (StreamSubaccountBalanceRequest) returns (stream StreamSubaccountBalanceResponse); + // Get subaccount's deposits and withdrawals history + rpc SubaccountHistory (SubaccountHistoryRequest) returns (SubaccountHistoryResponse); + // Get subaccount's orders summary + rpc SubaccountOrderSummary (SubaccountOrderSummaryRequest) returns (SubaccountOrderSummaryResponse); + // Provide historical trading rewards + rpc Rewards (RewardsRequest) returns (RewardsResponse); + // Stream live data for an account and respective data + rpc StreamAccountData (StreamAccountDataRequest) returns (stream StreamAccountDataResponse); +} + +message PortfolioRequest { + // Account address + string account_address = 1; +} + +message PortfolioResponse { + // The portfolio of this account + AccountPortfolio portfolio = 1; +} + +message AccountPortfolio { + // The account's portfolio value in USD. + string portfolio_value = 1; + // The account's available balance value in USD. + string available_balance = 2; + // The account's locked balance value in USD. + string locked_balance = 3; + // The account's total unrealized PnL value in USD. + string unrealized_pnl = 4; + // List of all subaccounts' portfolio + repeated SubaccountPortfolio subaccounts = 5; +} + +message SubaccountPortfolio { + // The ID of this subaccount + string subaccount_id = 1; + // The subaccount's available balance value in USD. + string available_balance = 2; + // The subaccount's locked balance value in USD. + string locked_balance = 3; + // The subaccount's total unrealized PnL value in USD. + string unrealized_pnl = 4; +} + +message OrderStatesRequest { + repeated string spot_order_hashes = 1; + repeated string derivative_order_hashes = 2; +} + +message OrderStatesResponse { + // List of the spot order state records + repeated OrderStateRecord spot_order_states = 1; + // List of the derivative order state records + repeated OrderStateRecord derivative_order_states = 2; +} + +message OrderStateRecord { + // Hash of the order + string order_hash = 1; + // The subaccountId that this order belongs to + string subaccount_id = 2; + // The Market ID of the order + string market_id = 3; + // The type of the order + string order_type = 4; + // The side of the order + string order_side = 5; + // The state (status) of the order + string state = 6; + // The filled quantity of the order + string quantity_filled = 7; + // The filled quantity of the order + string quantity_remaining = 8; + // Order committed timestamp in UNIX millis. + sint64 created_at = 9; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 10; + // Order prices + string price = 11; + // Margin for derivative order + string margin = 12; +} + +message SubaccountsListRequest { + // Account address, the subaccounts owner + string account_address = 1; +} + +message SubaccountsListResponse { + repeated string subaccounts = 1; +} + +message SubaccountBalancesListRequest { + // SubaccountId of the trader we want to get the trades from + string subaccount_id = 1; + // Filter balances by denoms. If not set, the balances of all the denoms for +// the subaccount are provided. + repeated string denoms = 2; +} + +message SubaccountBalancesListResponse { + // List of subaccount balances + repeated SubaccountBalance balances = 1; +} + +message SubaccountBalance { + // Related subaccount ID + string subaccount_id = 1; + // Account address, owner of this subaccount + string account_address = 2; + // Coin denom on the chain. + string denom = 3; + SubaccountDeposit deposit = 4; +} + +message SubaccountDeposit { + string total_balance = 1; + string available_balance = 2; +} + +message SubaccountBalanceEndpointRequest { + // SubaccountId of the trader we want to get the trades from + string subaccount_id = 1; + // Specify denom to get balance + string denom = 2; +} + +message SubaccountBalanceEndpointResponse { + // Subaccount balance + SubaccountBalance balance = 1; +} + +message StreamSubaccountBalanceRequest { + // SubaccountId of the trader we want to get the trades from + string subaccount_id = 1; + // Filter balances by denoms. If not set, the balances of all the denoms for +// the subaccount are provided. + repeated string denoms = 2; +} + +message StreamSubaccountBalanceResponse { + // Subaccount balance + SubaccountBalance balance = 1; + // Operation timestamp in UNIX millis. + sint64 timestamp = 2; +} + +message SubaccountHistoryRequest { + // SubaccountId of the trader we want to get the history from + string subaccount_id = 1; + // Filter history by denom + string denom = 2; + // Filter history by transfer type + repeated string transfer_types = 3; + // Skip will skip the first n item from the result + uint64 skip = 4; + // Limit is used to specify the maximum number of items to be returned + sint32 limit = 5; + // Upper bound of account transfer history's executedAt + sint64 end_time = 6; +} + +message SubaccountHistoryResponse { + // List of subaccount transfers + repeated SubaccountBalanceTransfer transfers = 1; + Paging paging = 2; +} + +message SubaccountBalanceTransfer { + // Type of the subaccount balance transfer + string transfer_type = 1; + // Subaccount ID of the sending side + string src_subaccount_id = 2; + // Account address of the sending side + string src_account_address = 3; + // Subaccount ID of the receiving side + string dst_subaccount_id = 4; + // Account address of the receiving side + string dst_account_address = 5; + // Coin amount of the transfer + CosmosCoin amount = 6; + // Timestamp of the transfer in UNIX millis + sint64 executed_at = 7; +} + +message CosmosCoin { + // Coin denominator + string denom = 1; + // Coin amount (big int) + string amount = 2; +} +// Paging defines the structure for required params for handling pagination +message Paging { + // total number of txs saved in database + sint64 total = 1; + // can be either block height or index num + sint32 from = 2; + // can be either block height or index num + sint32 to = 3; + // count entries by subaccount, serving some places on helix + sint64 count_by_subaccount = 4; + // array of tokens to navigate to the next pages + repeated string next = 5; +} + +message SubaccountOrderSummaryRequest { + // SubaccountId of the trader we want to get the summary from + string subaccount_id = 1; + // MarketId is limiting order summary to specific market only + string market_id = 2; + // Filter by direction of the orders + string order_direction = 3; +} + +message SubaccountOrderSummaryResponse { + // Total count of subaccount's spot orders in given market and direction + sint64 spot_orders_total = 1; + // Total count of subaccount's derivative orders in given market and direction + sint64 derivative_orders_total = 2; +} + +message RewardsRequest { + // The distribution epoch sequence number. -1 for latest. + sint64 epoch = 1; + // Account address for the rewards distribution + string account_address = 2; +} + +message RewardsResponse { + // The trading rewards distributed + repeated Reward rewards = 1; +} + +message Reward { + // Account address + string account_address = 1; + // Reward coins distributed + repeated Coin rewards = 2; + // Rewards distribution timestamp in UNIX millis. + sint64 distributed_at = 3; +} + +message Coin { + // Denom of the coin + string denom = 1; + string amount = 2; +} + +message StreamAccountDataRequest { + // account address + string account_address = 1; +} + +message StreamAccountDataResponse { + SubaccountBalanceResult subaccount_balance = 1; + PositionsResult position = 2; + TradeResult trade = 3; + OrderResult order = 4; + OrderHistoryResult order_history = 5; + FundingPaymentResult funding_payment = 6; +} + +message SubaccountBalanceResult { + // Subaccount balance + SubaccountBalance balance = 1; + // Operation timestamp in UNIX millis. + sint64 timestamp = 2; +} + +message PositionsResult { + // Updated derivative Position + Position position = 1; + // Operation timestamp in UNIX millis. + sint64 timestamp = 2; +} + +message Position { + // Ticker of the derivative market + string ticker = 1; + // Derivative Market ID + string market_id = 2; + // The subaccountId that the position belongs to + string subaccount_id = 3; + // Direction of the position + string direction = 4; + // Quantity of the position + string quantity = 5; + // Price of the position + string entry_price = 6; + // Margin of the position + string margin = 7; + // LiquidationPrice of the position + string liquidation_price = 8; + // MarkPrice of the position + string mark_price = 9; + // Position updated timestamp in UNIX millis. + sint64 updated_at = 10; + // Position created timestamp in UNIX millis. + sint64 created_at = 11; +} + +message TradeResult { + oneof trade { + // New spot market trade + SpotTrade spot_trade = 1; + // New derivative market trade + DerivativeTrade derivative_trade = 2; + } + // Executed trades update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotTrade { + // Maker order hash. + string order_hash = 1; + // The subaccountId that executed the trade + string subaccount_id = 2; + // The ID of the market that this trade is in + string market_id = 3; + // The execution type of the trade + string trade_execution_type = 4; + // The direction the trade + string trade_direction = 5; + // Price level at which trade has been executed + PriceLevel price = 6; + // The fee associated with the trade (quote asset denom) + string fee = 7; + // Timestamp of trade execution in UNIX millis + sint64 executed_at = 8; + // Fee recipient address + string fee_recipient = 9; + // A unique string that helps differentiate between trades + string trade_id = 10; + // Trade's execution side, marker/taker + string execution_side = 11; + // Custom client order ID + string cid = 12; +} + +message PriceLevel { + // Price number of the price level. + string price = 1; + // Quantity of the price level. + string quantity = 2; + // Price level last updated timestamp in UNIX millis. + sint64 timestamp = 3; +} + +message DerivativeTrade { + // Order hash. + string order_hash = 1; + // The subaccountId that executed the trade + string subaccount_id = 2; + // The ID of the market that this trade is in + string market_id = 3; + // The execution type of the trade + string trade_execution_type = 4; + // True if the trade is a liquidation + bool is_liquidation = 5; + // Position Delta from the trade + PositionDelta position_delta = 6; + // The payout associated with the trade + string payout = 7; + // The fee associated with the trade + string fee = 8; + // Timestamp of trade execution in UNIX millis + sint64 executed_at = 9; + // Fee recipient address + string fee_recipient = 10; + // A unique string that helps differentiate between trades + string trade_id = 11; + // Trade's execution side, marker/taker + string execution_side = 12; + // Custom client order ID + string cid = 13; +} + +message PositionDelta { + // The direction the trade + string trade_direction = 1; + // Execution Price of the trade. + string execution_price = 2; + // Execution Quantity of the trade. + string execution_quantity = 3; + // Execution Margin of the trade. + string execution_margin = 4; +} + +message OrderResult { + oneof order { + // Updated spot market order + SpotLimitOrder spot_order = 1; + // Updated derivative market order + DerivativeLimitOrder derivative_order = 2; + } + // Executed orders update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotLimitOrder { + // Hash of the order + string order_hash = 1; + // The side of the order + string order_side = 2; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // Price of the order + string price = 5; + // Quantity of the order + string quantity = 6; + // The amount of the quantity remaining unfilled + string unfilled_quantity = 7; + // Trigger price is the trigger price used by stop/take orders. 0 if the +// trigger price is not set. + string trigger_price = 8; + // Fee recipient address + string fee_recipient = 9; + // Order state + string state = 10; + // Order committed timestamp in UNIX millis. + sint64 created_at = 11; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 12; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 13; + // Custom client order ID + string cid = 14; +} + +message DerivativeLimitOrder { + // Hash of the order + string order_hash = 1; + // The side of the order + string order_side = 2; + // Derivative Market ID + string market_id = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // True if the order is a reduce-only order + bool is_reduce_only = 5; + // Margin of the order + string margin = 6; + // Price of the order + string price = 7; + // Quantity of the order + string quantity = 8; + // The amount of the quantity remaining unfilled + string unfilled_quantity = 9; + // Trigger price is the trigger price used by stop/take orders + string trigger_price = 10; + // Fee recipient address + string fee_recipient = 11; + // Order state + string state = 12; + // Order committed timestamp in UNIX millis. + sint64 created_at = 13; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 14; + // Order number of subaccount + sint64 order_number = 15; + // Order type + string order_type = 16; + // Order type + bool is_conditional = 17; + // Trigger timestamp, only exists for conditional orders + uint64 trigger_at = 18; + // OrderHash of order that is triggered by this conditional order + string placed_order_hash = 19; + // Execution type of conditional order + string execution_type = 20; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 21; + // Custom client order ID + string cid = 22; +} + +message OrderHistoryResult { + oneof order_history { + // Spot order history + SpotOrderHistory spot_order_history = 1; + // Derivative order history + DerivativeOrderHistory derivative_order_history = 2; + } + // Order update type + string operation_type = 3; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message SpotOrderHistory { + // Hash of the order + string order_hash = 1; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 2; + // active state of the order + bool is_active = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // The execution type + string execution_type = 5; + // The side of the order + string order_type = 6; + // Price of the order + string price = 7; + // Trigger price + string trigger_price = 8; + // Quantity of the order + string quantity = 9; + // Filled amount + string filled_quantity = 10; + // Order state + string state = 11; + // Order committed timestamp in UNIX millis. + sint64 created_at = 12; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 13; + // Order direction (order side) + string direction = 14; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 15; + // Custom client order ID + string cid = 16; +} + +message DerivativeOrderHistory { + // Hash of the order + string order_hash = 1; + // Spot Market ID is keccak265(baseDenom + quoteDenom) + string market_id = 2; + // active state of the order + bool is_active = 3; + // The subaccountId that this order belongs to + string subaccount_id = 4; + // The execution type + string execution_type = 5; + // The side of the order + string order_type = 6; + // Price of the order + string price = 7; + // Trigger price + string trigger_price = 8; + // Quantity of the order + string quantity = 9; + // Filled amount + string filled_quantity = 10; + // Order state + string state = 11; + // Order committed timestamp in UNIX millis. + sint64 created_at = 12; + // Order updated timestamp in UNIX millis. + sint64 updated_at = 13; + // True if an order is reduce only + bool is_reduce_only = 14; + // Order direction (order side) + string direction = 15; + // True if this is conditional order, otherwise false + bool is_conditional = 16; + // Trigger timestamp in unix milli + uint64 trigger_at = 17; + // Order hash placed when this triggers + string placed_order_hash = 18; + // Order's margin + string margin = 19; + // Transaction Hash where order is created. Not all orders have this field + string tx_hash = 20; + // Custom client order ID + string cid = 21; +} + +message FundingPaymentResult { + // Funding payments of the account + FundingPayment funding_payments = 1; + // Funding payments type + string operation_type = 2; + // Operation timestamp in UNIX millis. + sint64 timestamp = 4; +} + +message FundingPayment { + // Derivative Market ID + string market_id = 1; + // The subaccountId that the position belongs to + string subaccount_id = 2; + // Amount of the funding payment + string amount = 3; + // Timestamp of funding payment in UNIX millis + sint64 timestamp = 4; +} diff --git a/exchange/auction_rpc/pb/injective_auction_rpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go similarity index 60% rename from exchange/auction_rpc/pb/injective_auction_rpc.pb.go rename to exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go index 772b1378..865f0882 100644 --- a/exchange/auction_rpc/pb/injective_auction_rpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveAuctionRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_auction_rpc.proto +// source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb @@ -39,7 +39,7 @@ type AuctionEndpointRequest struct { func (x *AuctionEndpointRequest) Reset() { *x = AuctionEndpointRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52,7 +52,7 @@ func (x *AuctionEndpointRequest) String() string { func (*AuctionEndpointRequest) ProtoMessage() {} func (x *AuctionEndpointRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65,7 +65,7 @@ func (x *AuctionEndpointRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionEndpointRequest.ProtoReflect.Descriptor instead. func (*AuctionEndpointRequest) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{0} } func (x *AuctionEndpointRequest) GetRound() int64 { @@ -89,7 +89,7 @@ type AuctionEndpointResponse struct { func (x *AuctionEndpointResponse) Reset() { *x = AuctionEndpointResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -102,7 +102,7 @@ func (x *AuctionEndpointResponse) String() string { func (*AuctionEndpointResponse) ProtoMessage() {} func (x *AuctionEndpointResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115,7 +115,7 @@ func (x *AuctionEndpointResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionEndpointResponse.ProtoReflect.Descriptor instead. func (*AuctionEndpointResponse) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{1} } func (x *AuctionEndpointResponse) GetAuction() *Auction { @@ -152,7 +152,7 @@ type Auction struct { func (x *Auction) Reset() { *x = Auction{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -165,7 +165,7 @@ func (x *Auction) String() string { func (*Auction) ProtoMessage() {} func (x *Auction) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -178,7 +178,7 @@ func (x *Auction) ProtoReflect() protoreflect.Message { // Deprecated: Use Auction.ProtoReflect.Descriptor instead. func (*Auction) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{2} } func (x *Auction) GetWinner() string { @@ -236,7 +236,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -249,7 +249,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -262,7 +262,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{3} } func (x *Coin) GetDenom() string { @@ -294,7 +294,7 @@ type Bid struct { func (x *Bid) Reset() { *x = Bid{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -307,7 +307,7 @@ func (x *Bid) String() string { func (*Bid) ProtoMessage() {} func (x *Bid) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -320,7 +320,7 @@ func (x *Bid) ProtoReflect() protoreflect.Message { // Deprecated: Use Bid.ProtoReflect.Descriptor instead. func (*Bid) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{4} } func (x *Bid) GetBidder() string { @@ -353,7 +353,7 @@ type AuctionsRequest struct { func (x *AuctionsRequest) Reset() { *x = AuctionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -366,7 +366,7 @@ func (x *AuctionsRequest) String() string { func (*AuctionsRequest) ProtoMessage() {} func (x *AuctionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -379,7 +379,7 @@ func (x *AuctionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionsRequest.ProtoReflect.Descriptor instead. func (*AuctionsRequest) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{5} } type AuctionsResponse struct { @@ -394,7 +394,7 @@ type AuctionsResponse struct { func (x *AuctionsResponse) Reset() { *x = AuctionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -407,7 +407,7 @@ func (x *AuctionsResponse) String() string { func (*AuctionsResponse) ProtoMessage() {} func (x *AuctionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -420,7 +420,7 @@ func (x *AuctionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AuctionsResponse.ProtoReflect.Descriptor instead. func (*AuctionsResponse) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{6} } func (x *AuctionsResponse) GetAuctions() []*Auction { @@ -439,7 +439,7 @@ type StreamBidsRequest struct { func (x *StreamBidsRequest) Reset() { *x = StreamBidsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -452,7 +452,7 @@ func (x *StreamBidsRequest) String() string { func (*StreamBidsRequest) ProtoMessage() {} func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -465,7 +465,7 @@ func (x *StreamBidsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBidsRequest.ProtoReflect.Descriptor instead. func (*StreamBidsRequest) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{7} } type StreamBidsResponse struct { @@ -484,7 +484,7 @@ type StreamBidsResponse struct { func (x *StreamBidsResponse) Reset() { *x = StreamBidsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_auction_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -497,7 +497,7 @@ func (x *StreamBidsResponse) String() string { func (*StreamBidsResponse) ProtoMessage() {} func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_auction_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -510,7 +510,7 @@ func (x *StreamBidsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBidsResponse.ProtoReflect.Descriptor instead. func (*StreamBidsResponse) Descriptor() ([]byte, []int) { - return file_injective_auction_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP(), []int{8} } func (x *StreamBidsResponse) GetBidder() string { @@ -541,101 +541,102 @@ func (x *StreamBidsResponse) GetTimestamp() int64 { return 0 } -var File_injective_auction_rpc_proto protoreflect.FileDescriptor - -var file_injective_auction_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1b, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x22, 0x2e, 0x0a, 0x16, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x62, 0x69, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x42, 0x69, 0x64, 0x52, 0x04, 0x62, 0x69, 0x64, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x07, 0x41, - 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x33, - 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x06, 0x62, 0x61, 0x73, - 0x6b, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, - 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x34, 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, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, - 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, 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, 0x11, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, - 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7f, - 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 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, 0x32, - 0xc9, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, +var File_goadesign_goagen_injective_auction_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x2e, 0x0a, 0x16, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x62, + 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x42, 0x69, 0x64, 0x52, 0x04, 0x62, 0x69, 0x64, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x07, + 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x12, + 0x33, 0x0a, 0x06, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x06, 0x62, 0x61, + 0x73, 0x6b, 0x65, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x77, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x34, 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, 0x22, 0x53, 0x0a, 0x03, 0x42, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, + 0x72, 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, 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, 0x11, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x10, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, + 0x0a, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x7f, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x64, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x62, 0x69, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x62, 0x69, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 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, + 0x32, 0xc9, 0x02, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x70, 0x0a, 0x0f, 0x41, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1a, 0x5a, 0x18, 0x2f, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x42, 0x69, 0x64, 0x73, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x69, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1a, 0x5a, 0x18, + 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_injective_auction_rpc_proto_rawDescOnce sync.Once - file_injective_auction_rpc_proto_rawDescData = file_injective_auction_rpc_proto_rawDesc + file_goadesign_goagen_injective_auction_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_auction_rpc_proto_rawDescData = file_goadesign_goagen_injective_auction_rpc_proto_rawDesc ) -func file_injective_auction_rpc_proto_rawDescGZIP() []byte { - file_injective_auction_rpc_proto_rawDescOnce.Do(func() { - file_injective_auction_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_auction_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_auction_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_auction_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_auction_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_auction_rpc_proto_rawDescData) }) - return file_injective_auction_rpc_proto_rawDescData + return file_goadesign_goagen_injective_auction_rpc_proto_rawDescData } -var file_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_injective_auction_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_auction_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_goadesign_goagen_injective_auction_rpc_proto_goTypes = []interface{}{ (*AuctionEndpointRequest)(nil), // 0: injective_auction_rpc.AuctionEndpointRequest (*AuctionEndpointResponse)(nil), // 1: injective_auction_rpc.AuctionEndpointResponse (*Auction)(nil), // 2: injective_auction_rpc.Auction @@ -646,7 +647,7 @@ var file_injective_auction_rpc_proto_goTypes = []interface{}{ (*StreamBidsRequest)(nil), // 7: injective_auction_rpc.StreamBidsRequest (*StreamBidsResponse)(nil), // 8: injective_auction_rpc.StreamBidsResponse } -var file_injective_auction_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = []int32{ 2, // 0: injective_auction_rpc.AuctionEndpointResponse.auction:type_name -> injective_auction_rpc.Auction 4, // 1: injective_auction_rpc.AuctionEndpointResponse.bids:type_name -> injective_auction_rpc.Bid 3, // 2: injective_auction_rpc.Auction.basket:type_name -> injective_auction_rpc.Coin @@ -664,13 +665,13 @@ var file_injective_auction_rpc_proto_depIdxs = []int32{ 0, // [0:4] is the sub-list for field type_name } -func init() { file_injective_auction_rpc_proto_init() } -func file_injective_auction_rpc_proto_init() { - if File_injective_auction_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_auction_rpc_proto_init() } +func file_goadesign_goagen_injective_auction_rpc_proto_init() { + if File_goadesign_goagen_injective_auction_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_auction_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionEndpointRequest); i { case 0: return &v.state @@ -682,7 +683,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionEndpointResponse); i { case 0: return &v.state @@ -694,7 +695,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Auction); i { case 0: return &v.state @@ -706,7 +707,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state @@ -718,7 +719,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bid); i { case 0: return &v.state @@ -730,7 +731,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionsRequest); i { case 0: return &v.state @@ -742,7 +743,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuctionsResponse); i { case 0: return &v.state @@ -754,7 +755,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBidsRequest); i { case 0: return &v.state @@ -766,7 +767,7 @@ func file_injective_auction_rpc_proto_init() { return nil } } - file_injective_auction_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_auction_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBidsResponse); i { case 0: return &v.state @@ -783,18 +784,18 @@ func file_injective_auction_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_auction_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_auction_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 9, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_auction_rpc_proto_goTypes, - DependencyIndexes: file_injective_auction_rpc_proto_depIdxs, - MessageInfos: file_injective_auction_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_auction_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_auction_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_auction_rpc_proto_msgTypes, }.Build() - File_injective_auction_rpc_proto = out.File - file_injective_auction_rpc_proto_rawDesc = nil - file_injective_auction_rpc_proto_goTypes = nil - file_injective_auction_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_auction_rpc_proto = out.File + file_goadesign_goagen_injective_auction_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_auction_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_auction_rpc_proto_depIdxs = nil } diff --git a/exchange/auction_rpc/pb/injective_auction_rpc_grpc.pb.go b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go similarity index 97% rename from exchange/auction_rpc/pb/injective_auction_rpc_grpc.pb.go rename to exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go index 1d843816..4100ffbf 100644 --- a/exchange/auction_rpc/pb/injective_auction_rpc_grpc.pb.go +++ b/exchange/auction_rpc/pb/goadesign_goagen_injective_auction_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_auction_rpc.proto package injective_auction_rpcpb @@ -203,5 +207,5 @@ var InjectiveAuctionRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_auction_rpc.proto", + Metadata: "goadesign_goagen_injective_auction_rpc.proto", } diff --git a/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go b/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go index beff7a3e..5d95026e 100644 --- a/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go +++ b/exchange/auction_rpc/pb/injective_auction_rpc.pb.gw.go @@ -136,20 +136,22 @@ func RegisterInjectiveAuctionRPCHandlerServer(ctx context.Context, mux *runtime. var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAuctionRPC_AuctionEndpoint_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAuctionRPC_AuctionEndpoint_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -159,20 +161,22 @@ func RegisterInjectiveAuctionRPCHandlerServer(ctx context.Context, mux *runtime. var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveAuctionRPC_Auctions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveAuctionRPC_Auctions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAuctionRPC_Auctions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAuctionRPC_Auctions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -228,19 +232,21 @@ func RegisterInjectiveAuctionRPCHandlerClient(ctx context.Context, mux *runtime. ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/AuctionEndpoint")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAuctionRPC_AuctionEndpoint_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAuctionRPC_AuctionEndpoint_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAuctionRPC_AuctionEndpoint_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -248,19 +254,21 @@ func RegisterInjectiveAuctionRPCHandlerClient(ctx context.Context, mux *runtime. ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/Auctions", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/Auctions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAuctionRPC_Auctions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAuctionRPC_Auctions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAuctionRPC_Auctions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveAuctionRPC_Auctions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -268,19 +276,21 @@ func RegisterInjectiveAuctionRPCHandlerClient(ctx context.Context, mux *runtime. ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/StreamBids", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/StreamBids")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_auction_rpc.InjectiveAuctionRPC/StreamBids", runtime.WithHTTPPathPattern("/injective_auction_rpc.InjectiveAuctionRPC/StreamBids")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveAuctionRPC_StreamBids_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveAuctionRPC_StreamBids_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveAuctionRPC_StreamBids_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveAuctionRPC_StreamBids_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/auction_rpc/pb/injective_auction_rpc.proto b/exchange/auction_rpc/pb/injective_auction_rpc.proto index a9f8841f..1e2257c4 100644 --- a/exchange/auction_rpc/pb/injective_auction_rpc.proto +++ b/exchange/auction_rpc/pb/injective_auction_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveAuctionRPC protocol buffer definition // diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go similarity index 59% rename from exchange/campaign_rpc/pb/injective_campaign_rpc.pb.go rename to exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go index 98d763de..da99cb0b 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveCampaignRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_campaign_rpc.proto +// source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb @@ -40,12 +40,14 @@ type RankingRequest struct { AccountAddress string `protobuf:"bytes,3,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` Limit int32 `protobuf:"zigzag32,4,opt,name=limit,proto3" json:"limit,omitempty"` Skip uint64 `protobuf:"varint,5,opt,name=skip,proto3" json:"skip,omitempty"` + // Contract address that manages the round and reward + ContractAddress string `protobuf:"bytes,6,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` } func (x *RankingRequest) Reset() { *x = RankingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -58,7 +60,7 @@ func (x *RankingRequest) String() string { func (*RankingRequest) ProtoMessage() {} func (x *RankingRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71,7 +73,7 @@ func (x *RankingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RankingRequest.ProtoReflect.Descriptor instead. func (*RankingRequest) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{0} } func (x *RankingRequest) GetCampaignId() string { @@ -109,6 +111,13 @@ func (x *RankingRequest) GetSkip() uint64 { return 0 } +func (x *RankingRequest) GetContractAddress() string { + if x != nil { + return x.ContractAddress + } + return "" +} + type RankingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -124,7 +133,7 @@ type RankingResponse struct { func (x *RankingResponse) Reset() { *x = RankingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -137,7 +146,7 @@ func (x *RankingResponse) String() string { func (*RankingResponse) ProtoMessage() {} func (x *RankingResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -150,7 +159,7 @@ func (x *RankingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RankingResponse.ProtoReflect.Descriptor instead. func (*RankingResponse) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{1} } func (x *RankingResponse) GetCampaign() *Campaign { @@ -195,18 +204,29 @@ type Campaign struct { // Campaigns round ID RoundId int32 `protobuf:"zigzag32,9,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"` // Contract address that controls this campaign - Contract string `protobuf:"bytes,10,opt,name=contract,proto3" json:"contract,omitempty"` + ManagerContract string `protobuf:"bytes,10,opt,name=manager_contract,json=managerContract,proto3" json:"manager_contract,omitempty"` // Reward tokens of this campaign Rewards []*Coin `protobuf:"bytes,11,rep,name=rewards,proto3" json:"rewards,omitempty"` // Total user score if accountAddress is passed, this is useful to estimate // account's reward UserScore string `protobuf:"bytes,12,opt,name=user_score,json=userScore,proto3" json:"user_score,omitempty"` + // Return true if user claimed the reward of this campaign + UserClaimed bool `protobuf:"varint,13,opt,name=user_claimed,json=userClaimed,proto3" json:"user_claimed,omitempty"` + // Suffix of the subaccount that eligible for volume score + SubaccountIdSuffix string `protobuf:"bytes,14,opt,name=subaccount_id_suffix,json=subaccountIdSuffix,proto3" json:"subaccount_id_suffix,omitempty"` + // Contract that manage users reward + RewardContract string `protobuf:"bytes,15,opt,name=reward_contract,json=rewardContract,proto3" json:"reward_contract,omitempty"` + // Version of reward contract, UI use this to determine the message that need + // to be sent + Version string `protobuf:"bytes,16,opt,name=version,proto3" json:"version,omitempty"` + // Campaign type + Type string `protobuf:"bytes,17,opt,name=type,proto3" json:"type,omitempty"` } func (x *Campaign) Reset() { *x = Campaign{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -219,7 +239,7 @@ func (x *Campaign) String() string { func (*Campaign) ProtoMessage() {} func (x *Campaign) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -232,7 +252,7 @@ func (x *Campaign) ProtoReflect() protoreflect.Message { // Deprecated: Use Campaign.ProtoReflect.Descriptor instead. func (*Campaign) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{2} } func (x *Campaign) GetCampaignId() string { @@ -291,9 +311,9 @@ func (x *Campaign) GetRoundId() int32 { return 0 } -func (x *Campaign) GetContract() string { +func (x *Campaign) GetManagerContract() string { if x != nil { - return x.Contract + return x.ManagerContract } return "" } @@ -312,6 +332,41 @@ func (x *Campaign) GetUserScore() string { return "" } +func (x *Campaign) GetUserClaimed() bool { + if x != nil { + return x.UserClaimed + } + return false +} + +func (x *Campaign) GetSubaccountIdSuffix() string { + if x != nil { + return x.SubaccountIdSuffix + } + return "" +} + +func (x *Campaign) GetRewardContract() string { + if x != nil { + return x.RewardContract + } + return "" +} + +func (x *Campaign) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Campaign) GetType() string { + if x != nil { + return x.Type + } + return "" +} + type Coin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -325,7 +380,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -338,7 +393,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -351,7 +406,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{3} } func (x *Coin) GetDenom() string { @@ -391,12 +446,14 @@ type CampaignUser struct { // True if this user is updated to be in Galxe Campain list, only eligible // address are added GalxeUpdated bool `protobuf:"varint,9,opt,name=galxe_updated,json=galxeUpdated,proto3" json:"galxe_updated,omitempty"` + // True if this user claimed the reward + RewardClaimed bool `protobuf:"varint,10,opt,name=reward_claimed,json=rewardClaimed,proto3" json:"reward_claimed,omitempty"` } func (x *CampaignUser) Reset() { *x = CampaignUser{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -409,7 +466,7 @@ func (x *CampaignUser) String() string { func (*CampaignUser) ProtoMessage() {} func (x *CampaignUser) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -422,7 +479,7 @@ func (x *CampaignUser) ProtoReflect() protoreflect.Message { // Deprecated: Use CampaignUser.ProtoReflect.Descriptor instead. func (*CampaignUser) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{4} } func (x *CampaignUser) GetCampaignId() string { @@ -488,6 +545,13 @@ func (x *CampaignUser) GetGalxeUpdated() bool { return false } +func (x *CampaignUser) GetRewardClaimed() bool { + if x != nil { + return x.RewardClaimed + } + return false +} + // Paging defines the structure for required params for handling pagination type Paging struct { state protoimpl.MessageState @@ -509,7 +573,7 @@ type Paging struct { func (x *Paging) Reset() { *x = Paging{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -522,7 +586,7 @@ func (x *Paging) String() string { func (*Paging) ProtoMessage() {} func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -535,7 +599,7 @@ func (x *Paging) ProtoReflect() protoreflect.Message { // Deprecated: Use Paging.ProtoReflect.Descriptor instead. func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{5} } func (x *Paging) GetTotal() int64 { @@ -578,19 +642,23 @@ type CampaignsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Round ID, if not specified, it will return latest roundId + // Round ID, if not specified, it will return latest roundId RoundId int64 `protobuf:"zigzag64,1,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"` // Address of login account, if not specified it will return no user rewards AccountAddress string `protobuf:"bytes,2,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` // This will return campaign x where x.roundId <= toRoundId. Useful for listing // multiple rounds ToRoundId int32 `protobuf:"zigzag32,3,opt,name=to_round_id,json=toRoundId,proto3" json:"to_round_id,omitempty"` + // Contract address that manages the round and reward + ContractAddress string `protobuf:"bytes,4,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // Campaign type + Type string `protobuf:"bytes,5,opt,name=type,proto3" json:"type,omitempty"` } func (x *CampaignsRequest) Reset() { *x = CampaignsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -603,7 +671,7 @@ func (x *CampaignsRequest) String() string { func (*CampaignsRequest) ProtoMessage() {} func (x *CampaignsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -616,7 +684,7 @@ func (x *CampaignsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CampaignsRequest.ProtoReflect.Descriptor instead. func (*CampaignsRequest) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{6} } func (x *CampaignsRequest) GetRoundId() int64 { @@ -640,19 +708,34 @@ func (x *CampaignsRequest) GetToRoundId() int32 { return 0 } +func (x *CampaignsRequest) GetContractAddress() string { + if x != nil { + return x.ContractAddress + } + return "" +} + +func (x *CampaignsRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + type CampaignsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Campaigns []*Campaign `protobuf:"bytes,1,rep,name=campaigns,proto3" json:"campaigns,omitempty"` - AccountRewards []*Coin `protobuf:"bytes,2,rep,name=account_rewards,json=accountRewards,proto3" json:"account_rewards,omitempty"` + Campaigns []*Campaign `protobuf:"bytes,1,rep,name=campaigns,proto3" json:"campaigns,omitempty"` + AccumulatedRewards []*Coin `protobuf:"bytes,2,rep,name=accumulated_rewards,json=accumulatedRewards,proto3" json:"accumulated_rewards,omitempty"` + RewardCount int32 `protobuf:"zigzag32,3,opt,name=reward_count,json=rewardCount,proto3" json:"reward_count,omitempty"` } func (x *CampaignsResponse) Reset() { *x = CampaignsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -665,7 +748,7 @@ func (x *CampaignsResponse) String() string { func (*CampaignsResponse) ProtoMessage() {} func (x *CampaignsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -678,7 +761,7 @@ func (x *CampaignsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CampaignsResponse.ProtoReflect.Descriptor instead. func (*CampaignsResponse) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{7} } func (x *CampaignsResponse) GetCampaigns() []*Campaign { @@ -688,13 +771,342 @@ func (x *CampaignsResponse) GetCampaigns() []*Campaign { return nil } -func (x *CampaignsResponse) GetAccountRewards() []*Coin { +func (x *CampaignsResponse) GetAccumulatedRewards() []*Coin { + if x != nil { + return x.AccumulatedRewards + } + return nil +} + +func (x *CampaignsResponse) GetRewardCount() int32 { + if x != nil { + return x.RewardCount + } + return 0 +} + +type CampaignsV2Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Campaign type + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // Whether the campaign is active + Active bool `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"` + // Limit number of returned campaigns + Limit int32 `protobuf:"zigzag32,3,opt,name=limit,proto3" json:"limit,omitempty"` + // Cursor for pagination + Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"` +} + +func (x *CampaignsV2Request) Reset() { + *x = CampaignsV2Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CampaignsV2Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CampaignsV2Request) ProtoMessage() {} + +func (x *CampaignsV2Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[8] + 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 CampaignsV2Request.ProtoReflect.Descriptor instead. +func (*CampaignsV2Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *CampaignsV2Request) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CampaignsV2Request) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *CampaignsV2Request) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *CampaignsV2Request) GetCursor() string { + if x != nil { + return x.Cursor + } + return "" +} + +type CampaignsV2Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Campaigns []*CampaignV2 `protobuf:"bytes,1,rep,name=campaigns,proto3" json:"campaigns,omitempty"` + Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` +} + +func (x *CampaignsV2Response) Reset() { + *x = CampaignsV2Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CampaignsV2Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CampaignsV2Response) ProtoMessage() {} + +func (x *CampaignsV2Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[9] + 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 CampaignsV2Response.ProtoReflect.Descriptor instead. +func (*CampaignsV2Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{9} +} + +func (x *CampaignsV2Response) GetCampaigns() []*CampaignV2 { if x != nil { - return x.AccountRewards + return x.Campaigns } return nil } +func (x *CampaignsV2Response) GetCursor() string { + if x != nil { + return x.Cursor + } + return "" +} + +type CampaignV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CampaignId string `protobuf:"bytes,1,opt,name=campaign_id,json=campaignId,proto3" json:"campaign_id,omitempty"` + // MarketId of the trading strategy + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Total campaign score + TotalScore string `protobuf:"bytes,4,opt,name=total_score,json=totalScore,proto3" json:"total_score,omitempty"` + // Campaign creation date in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // Campaign last update date in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Campaign start date in UNIX millis. + StartDate int64 `protobuf:"zigzag64,7,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + // Campaign end date in UNIX millis. + EndDate int64 `protobuf:"zigzag64,8,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + // Whether the campaign rewards can be claimed. + IsClaimable bool `protobuf:"varint,9,opt,name=is_claimable,json=isClaimable,proto3" json:"is_claimable,omitempty"` + // Campaigns round ID + RoundId int32 `protobuf:"zigzag32,10,opt,name=round_id,json=roundId,proto3" json:"round_id,omitempty"` + // Contract address that controls this campaign + ManagerContract string `protobuf:"bytes,11,opt,name=manager_contract,json=managerContract,proto3" json:"manager_contract,omitempty"` + // Reward tokens of this campaign + Rewards []*Coin `protobuf:"bytes,12,rep,name=rewards,proto3" json:"rewards,omitempty"` + // Suffix of the subaccount that eligible for volume score + SubaccountIdSuffix string `protobuf:"bytes,13,opt,name=subaccount_id_suffix,json=subaccountIdSuffix,proto3" json:"subaccount_id_suffix,omitempty"` + // Contract that manage users reward + RewardContract string `protobuf:"bytes,14,opt,name=reward_contract,json=rewardContract,proto3" json:"reward_contract,omitempty"` + // Campaign type + Type string `protobuf:"bytes,15,opt,name=type,proto3" json:"type,omitempty"` + // Version of reward contract, UI use this to determine the message that need + // to be sent + Version string `protobuf:"bytes,16,opt,name=version,proto3" json:"version,omitempty"` + // Campaign name + Name string `protobuf:"bytes,17,opt,name=name,proto3" json:"name,omitempty"` + // Campaign description + Description string `protobuf:"bytes,18,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *CampaignV2) Reset() { + *x = CampaignV2{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CampaignV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CampaignV2) ProtoMessage() {} + +func (x *CampaignV2) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[10] + 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 CampaignV2.ProtoReflect.Descriptor instead. +func (*CampaignV2) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *CampaignV2) GetCampaignId() string { + if x != nil { + return x.CampaignId + } + return "" +} + +func (x *CampaignV2) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *CampaignV2) GetTotalScore() string { + if x != nil { + return x.TotalScore + } + return "" +} + +func (x *CampaignV2) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *CampaignV2) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *CampaignV2) GetStartDate() int64 { + if x != nil { + return x.StartDate + } + return 0 +} + +func (x *CampaignV2) GetEndDate() int64 { + if x != nil { + return x.EndDate + } + return 0 +} + +func (x *CampaignV2) GetIsClaimable() bool { + if x != nil { + return x.IsClaimable + } + return false +} + +func (x *CampaignV2) GetRoundId() int32 { + if x != nil { + return x.RoundId + } + return 0 +} + +func (x *CampaignV2) GetManagerContract() string { + if x != nil { + return x.ManagerContract + } + return "" +} + +func (x *CampaignV2) GetRewards() []*Coin { + if x != nil { + return x.Rewards + } + return nil +} + +func (x *CampaignV2) GetSubaccountIdSuffix() string { + if x != nil { + return x.SubaccountIdSuffix + } + return "" +} + +func (x *CampaignV2) GetRewardContract() string { + if x != nil { + return x.RewardContract + } + return "" +} + +func (x *CampaignV2) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *CampaignV2) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *CampaignV2) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CampaignV2) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + type ListGuildsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -713,7 +1125,7 @@ type ListGuildsRequest struct { func (x *ListGuildsRequest) Reset() { *x = ListGuildsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -726,7 +1138,7 @@ func (x *ListGuildsRequest) String() string { func (*ListGuildsRequest) ProtoMessage() {} func (x *ListGuildsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -739,7 +1151,7 @@ func (x *ListGuildsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGuildsRequest.ProtoReflect.Descriptor instead. func (*ListGuildsRequest) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{11} } func (x *ListGuildsRequest) GetCampaignContract() string { @@ -786,7 +1198,7 @@ type ListGuildsResponse struct { func (x *ListGuildsResponse) Reset() { *x = ListGuildsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -799,7 +1211,7 @@ func (x *ListGuildsResponse) String() string { func (*ListGuildsResponse) ProtoMessage() {} func (x *ListGuildsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -812,7 +1224,7 @@ func (x *ListGuildsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGuildsResponse.ProtoReflect.Descriptor instead. func (*ListGuildsResponse) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{12} } func (x *ListGuildsResponse) GetGuilds() []*Guild { @@ -884,7 +1296,7 @@ type Guild struct { func (x *Guild) Reset() { *x = Guild{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -897,7 +1309,7 @@ func (x *Guild) String() string { func (*Guild) ProtoMessage() {} func (x *Guild) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -910,7 +1322,7 @@ func (x *Guild) ProtoReflect() protoreflect.Message { // Deprecated: Use Guild.ProtoReflect.Descriptor instead. func (*Guild) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{13} } func (x *Guild) GetCampaignContract() string { @@ -1048,7 +1460,7 @@ type CampaignSummary struct { func (x *CampaignSummary) Reset() { *x = CampaignSummary{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1061,7 +1473,7 @@ func (x *CampaignSummary) String() string { func (*CampaignSummary) ProtoMessage() {} func (x *CampaignSummary) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1074,7 +1486,7 @@ func (x *CampaignSummary) ProtoReflect() protoreflect.Message { // Deprecated: Use CampaignSummary.ProtoReflect.Descriptor instead. func (*CampaignSummary) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{14} } func (x *CampaignSummary) GetCampaignId() string { @@ -1170,7 +1582,7 @@ type ListGuildMembersRequest struct { func (x *ListGuildMembersRequest) Reset() { *x = ListGuildMembersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1183,7 +1595,7 @@ func (x *ListGuildMembersRequest) String() string { func (*ListGuildMembersRequest) ProtoMessage() {} func (x *ListGuildMembersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1196,7 +1608,7 @@ func (x *ListGuildMembersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGuildMembersRequest.ProtoReflect.Descriptor instead. func (*ListGuildMembersRequest) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{15} } func (x *ListGuildMembersRequest) GetCampaignContract() string { @@ -1254,7 +1666,7 @@ type ListGuildMembersResponse struct { func (x *ListGuildMembersResponse) Reset() { *x = ListGuildMembersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1267,7 +1679,7 @@ func (x *ListGuildMembersResponse) String() string { func (*ListGuildMembersResponse) ProtoMessage() {} func (x *ListGuildMembersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1280,7 +1692,7 @@ func (x *ListGuildMembersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGuildMembersResponse.ProtoReflect.Descriptor instead. func (*ListGuildMembersResponse) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{16} } func (x *ListGuildMembersResponse) GetMembers() []*GuildMember { @@ -1336,7 +1748,7 @@ type GuildMember struct { func (x *GuildMember) Reset() { *x = GuildMember{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1349,7 +1761,7 @@ func (x *GuildMember) String() string { func (*GuildMember) ProtoMessage() {} func (x *GuildMember) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1362,7 +1774,7 @@ func (x *GuildMember) ProtoReflect() protoreflect.Message { // Deprecated: Use GuildMember.ProtoReflect.Descriptor instead. func (*GuildMember) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{17} } func (x *GuildMember) GetCampaignContract() string { @@ -1456,7 +1868,7 @@ type GetGuildMemberRequest struct { func (x *GetGuildMemberRequest) Reset() { *x = GetGuildMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1469,7 +1881,7 @@ func (x *GetGuildMemberRequest) String() string { func (*GetGuildMemberRequest) ProtoMessage() {} func (x *GetGuildMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1482,7 +1894,7 @@ func (x *GetGuildMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildMemberRequest.ProtoReflect.Descriptor instead. func (*GetGuildMemberRequest) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{15} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{18} } func (x *GetGuildMemberRequest) GetCampaignContract() string { @@ -1510,7 +1922,7 @@ type GetGuildMemberResponse struct { func (x *GetGuildMemberResponse) Reset() { *x = GetGuildMemberResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_campaign_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1523,7 +1935,7 @@ func (x *GetGuildMemberResponse) String() string { func (*GetGuildMemberResponse) ProtoMessage() {} func (x *GetGuildMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_campaign_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1536,7 +1948,7 @@ func (x *GetGuildMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGuildMemberResponse.ProtoReflect.Descriptor instead. func (*GetGuildMemberResponse) Descriptor() ([]byte, []int) { - return file_injective_campaign_rpc_proto_rawDescGZIP(), []int{16} + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP(), []int{19} } func (x *GetGuildMemberResponse) GetInfo() *GuildMember { @@ -1546,109 +1958,184 @@ func (x *GetGuildMemberResponse) GetInfo() *GuildMember { return nil } -var File_injective_campaign_rpc_proto protoreflect.FileDescriptor - -var file_injective_campaign_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, - 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xa1, 0x01, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, +var File_goadesign_goagen_injective_campaign_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xcc, 0x01, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 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, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 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, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x52, 0x61, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x08, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x3a, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xb2, 0x04, 0x0a, + 0x08, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 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, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 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, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x52, - 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, - 0x0a, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, - 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, - 0x67, 0x6e, 0x52, 0x08, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x3a, 0x0a, 0x05, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x22, 0xf7, 0x02, 0x0a, 0x08, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x12, 0x1f, 0x0a, - 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 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, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x12, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, + 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x69, + 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, + 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x36, + 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, + 0x61, 0x69, 0x6d, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x73, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x64, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x34, 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, 0x22, 0xef, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, + 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 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, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x5f, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, + 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, + 0x0d, 0x67, 0x61, 0x6c, 0x78, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x61, 0x6c, 0x78, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, + 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, + 0x78, 0x74, 0x22, 0xb5, 0x01, 0x0a, 0x10, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x74, + 0x6f, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x09, 0x74, 0x6f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x11, 0x43, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, + 0x12, 0x4d, 0x0a, 0x13, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x12, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x6e, 0x0a, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 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, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x63, 0x61, 0x6d, + 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x56, 0x32, + 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x22, 0xc3, 0x04, 0x0a, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, + 0x56, 0x32, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, + 0x6e, 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, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x05, 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, 0x06, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x61, 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x34, 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, - 0x22, 0xc8, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 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, - 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, - 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, - 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x61, 0x6c, 0x78, 0x65, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, - 0x61, 0x6c, 0x78, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, - 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, - 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, - 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x65, 0x78, 0x74, 0x22, 0x76, 0x0a, 0x10, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, - 0x74, 0x6f, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x11, 0x52, 0x09, 0x74, 0x6f, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x9a, 0x01, 0x0a, - 0x11, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x09, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, - 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, + 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x66, 0x66, + 0x69, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x27, 0x0a, 0x0f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6d, 0x70, @@ -1794,7 +2281,7 @@ var file_injective_campaign_rpc_proto_rawDesc = []byte{ 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0xa1, 0x04, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x89, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x52, 0x50, 0x43, 0x12, 0x5a, 0x0a, 0x07, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, @@ -1807,46 +2294,53 @@ var file_injective_campaign_rpc_proto_rawDesc = []byte{ 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, - 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, + 0x69, 0x67, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, + 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, - 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x43, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x73, 0x12, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x10, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, + 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x70, 0x61, + 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, + 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x61, + 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x42, 0x1b, 0x5a, 0x19, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x63, 0x61, 0x6d, 0x70, 0x61, 0x69, 0x67, 0x6e, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_injective_campaign_rpc_proto_rawDescOnce sync.Once - file_injective_campaign_rpc_proto_rawDescData = file_injective_campaign_rpc_proto_rawDesc + file_goadesign_goagen_injective_campaign_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_campaign_rpc_proto_rawDescData = file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc ) -func file_injective_campaign_rpc_proto_rawDescGZIP() []byte { - file_injective_campaign_rpc_proto_rawDescOnce.Do(func() { - file_injective_campaign_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_campaign_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_campaign_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_campaign_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_campaign_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_campaign_rpc_proto_rawDescData) }) - return file_injective_campaign_rpc_proto_rawDescData + return file_goadesign_goagen_injective_campaign_rpc_proto_rawDescData } -var file_injective_campaign_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 17) -var file_injective_campaign_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_goadesign_goagen_injective_campaign_rpc_proto_goTypes = []interface{}{ (*RankingRequest)(nil), // 0: injective_campaign_rpc.RankingRequest (*RankingResponse)(nil), // 1: injective_campaign_rpc.RankingResponse (*Campaign)(nil), // 2: injective_campaign_rpc.Campaign @@ -1855,56 +2349,63 @@ var file_injective_campaign_rpc_proto_goTypes = []interface{}{ (*Paging)(nil), // 5: injective_campaign_rpc.Paging (*CampaignsRequest)(nil), // 6: injective_campaign_rpc.CampaignsRequest (*CampaignsResponse)(nil), // 7: injective_campaign_rpc.CampaignsResponse - (*ListGuildsRequest)(nil), // 8: injective_campaign_rpc.ListGuildsRequest - (*ListGuildsResponse)(nil), // 9: injective_campaign_rpc.ListGuildsResponse - (*Guild)(nil), // 10: injective_campaign_rpc.Guild - (*CampaignSummary)(nil), // 11: injective_campaign_rpc.CampaignSummary - (*ListGuildMembersRequest)(nil), // 12: injective_campaign_rpc.ListGuildMembersRequest - (*ListGuildMembersResponse)(nil), // 13: injective_campaign_rpc.ListGuildMembersResponse - (*GuildMember)(nil), // 14: injective_campaign_rpc.GuildMember - (*GetGuildMemberRequest)(nil), // 15: injective_campaign_rpc.GetGuildMemberRequest - (*GetGuildMemberResponse)(nil), // 16: injective_campaign_rpc.GetGuildMemberResponse -} -var file_injective_campaign_rpc_proto_depIdxs = []int32{ + (*CampaignsV2Request)(nil), // 8: injective_campaign_rpc.CampaignsV2Request + (*CampaignsV2Response)(nil), // 9: injective_campaign_rpc.CampaignsV2Response + (*CampaignV2)(nil), // 10: injective_campaign_rpc.CampaignV2 + (*ListGuildsRequest)(nil), // 11: injective_campaign_rpc.ListGuildsRequest + (*ListGuildsResponse)(nil), // 12: injective_campaign_rpc.ListGuildsResponse + (*Guild)(nil), // 13: injective_campaign_rpc.Guild + (*CampaignSummary)(nil), // 14: injective_campaign_rpc.CampaignSummary + (*ListGuildMembersRequest)(nil), // 15: injective_campaign_rpc.ListGuildMembersRequest + (*ListGuildMembersResponse)(nil), // 16: injective_campaign_rpc.ListGuildMembersResponse + (*GuildMember)(nil), // 17: injective_campaign_rpc.GuildMember + (*GetGuildMemberRequest)(nil), // 18: injective_campaign_rpc.GetGuildMemberRequest + (*GetGuildMemberResponse)(nil), // 19: injective_campaign_rpc.GetGuildMemberResponse +} +var file_goadesign_goagen_injective_campaign_rpc_proto_depIdxs = []int32{ 2, // 0: injective_campaign_rpc.RankingResponse.campaign:type_name -> injective_campaign_rpc.Campaign 4, // 1: injective_campaign_rpc.RankingResponse.users:type_name -> injective_campaign_rpc.CampaignUser 5, // 2: injective_campaign_rpc.RankingResponse.paging:type_name -> injective_campaign_rpc.Paging 3, // 3: injective_campaign_rpc.Campaign.rewards:type_name -> injective_campaign_rpc.Coin 2, // 4: injective_campaign_rpc.CampaignsResponse.campaigns:type_name -> injective_campaign_rpc.Campaign - 3, // 5: injective_campaign_rpc.CampaignsResponse.account_rewards:type_name -> injective_campaign_rpc.Coin - 10, // 6: injective_campaign_rpc.ListGuildsResponse.guilds:type_name -> injective_campaign_rpc.Guild - 5, // 7: injective_campaign_rpc.ListGuildsResponse.paging:type_name -> injective_campaign_rpc.Paging - 11, // 8: injective_campaign_rpc.ListGuildsResponse.campaign_summary:type_name -> injective_campaign_rpc.CampaignSummary - 14, // 9: injective_campaign_rpc.ListGuildMembersResponse.members:type_name -> injective_campaign_rpc.GuildMember - 5, // 10: injective_campaign_rpc.ListGuildMembersResponse.paging:type_name -> injective_campaign_rpc.Paging - 10, // 11: injective_campaign_rpc.ListGuildMembersResponse.guild_info:type_name -> injective_campaign_rpc.Guild - 3, // 12: injective_campaign_rpc.GuildMember.tvl_reward:type_name -> injective_campaign_rpc.Coin - 3, // 13: injective_campaign_rpc.GuildMember.volume_reward:type_name -> injective_campaign_rpc.Coin - 14, // 14: injective_campaign_rpc.GetGuildMemberResponse.info:type_name -> injective_campaign_rpc.GuildMember - 0, // 15: injective_campaign_rpc.InjectiveCampaignRPC.Ranking:input_type -> injective_campaign_rpc.RankingRequest - 6, // 16: injective_campaign_rpc.InjectiveCampaignRPC.Campaigns:input_type -> injective_campaign_rpc.CampaignsRequest - 8, // 17: injective_campaign_rpc.InjectiveCampaignRPC.ListGuilds:input_type -> injective_campaign_rpc.ListGuildsRequest - 12, // 18: injective_campaign_rpc.InjectiveCampaignRPC.ListGuildMembers:input_type -> injective_campaign_rpc.ListGuildMembersRequest - 15, // 19: injective_campaign_rpc.InjectiveCampaignRPC.GetGuildMember:input_type -> injective_campaign_rpc.GetGuildMemberRequest - 1, // 20: injective_campaign_rpc.InjectiveCampaignRPC.Ranking:output_type -> injective_campaign_rpc.RankingResponse - 7, // 21: injective_campaign_rpc.InjectiveCampaignRPC.Campaigns:output_type -> injective_campaign_rpc.CampaignsResponse - 9, // 22: injective_campaign_rpc.InjectiveCampaignRPC.ListGuilds:output_type -> injective_campaign_rpc.ListGuildsResponse - 13, // 23: injective_campaign_rpc.InjectiveCampaignRPC.ListGuildMembers:output_type -> injective_campaign_rpc.ListGuildMembersResponse - 16, // 24: injective_campaign_rpc.InjectiveCampaignRPC.GetGuildMember:output_type -> injective_campaign_rpc.GetGuildMemberResponse - 20, // [20:25] is the sub-list for method output_type - 15, // [15:20] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name -} - -func init() { file_injective_campaign_rpc_proto_init() } -func file_injective_campaign_rpc_proto_init() { - if File_injective_campaign_rpc_proto != nil { + 3, // 5: injective_campaign_rpc.CampaignsResponse.accumulated_rewards:type_name -> injective_campaign_rpc.Coin + 10, // 6: injective_campaign_rpc.CampaignsV2Response.campaigns:type_name -> injective_campaign_rpc.CampaignV2 + 3, // 7: injective_campaign_rpc.CampaignV2.rewards:type_name -> injective_campaign_rpc.Coin + 13, // 8: injective_campaign_rpc.ListGuildsResponse.guilds:type_name -> injective_campaign_rpc.Guild + 5, // 9: injective_campaign_rpc.ListGuildsResponse.paging:type_name -> injective_campaign_rpc.Paging + 14, // 10: injective_campaign_rpc.ListGuildsResponse.campaign_summary:type_name -> injective_campaign_rpc.CampaignSummary + 17, // 11: injective_campaign_rpc.ListGuildMembersResponse.members:type_name -> injective_campaign_rpc.GuildMember + 5, // 12: injective_campaign_rpc.ListGuildMembersResponse.paging:type_name -> injective_campaign_rpc.Paging + 13, // 13: injective_campaign_rpc.ListGuildMembersResponse.guild_info:type_name -> injective_campaign_rpc.Guild + 3, // 14: injective_campaign_rpc.GuildMember.tvl_reward:type_name -> injective_campaign_rpc.Coin + 3, // 15: injective_campaign_rpc.GuildMember.volume_reward:type_name -> injective_campaign_rpc.Coin + 17, // 16: injective_campaign_rpc.GetGuildMemberResponse.info:type_name -> injective_campaign_rpc.GuildMember + 0, // 17: injective_campaign_rpc.InjectiveCampaignRPC.Ranking:input_type -> injective_campaign_rpc.RankingRequest + 6, // 18: injective_campaign_rpc.InjectiveCampaignRPC.Campaigns:input_type -> injective_campaign_rpc.CampaignsRequest + 8, // 19: injective_campaign_rpc.InjectiveCampaignRPC.CampaignsV2:input_type -> injective_campaign_rpc.CampaignsV2Request + 11, // 20: injective_campaign_rpc.InjectiveCampaignRPC.ListGuilds:input_type -> injective_campaign_rpc.ListGuildsRequest + 15, // 21: injective_campaign_rpc.InjectiveCampaignRPC.ListGuildMembers:input_type -> injective_campaign_rpc.ListGuildMembersRequest + 18, // 22: injective_campaign_rpc.InjectiveCampaignRPC.GetGuildMember:input_type -> injective_campaign_rpc.GetGuildMemberRequest + 1, // 23: injective_campaign_rpc.InjectiveCampaignRPC.Ranking:output_type -> injective_campaign_rpc.RankingResponse + 7, // 24: injective_campaign_rpc.InjectiveCampaignRPC.Campaigns:output_type -> injective_campaign_rpc.CampaignsResponse + 9, // 25: injective_campaign_rpc.InjectiveCampaignRPC.CampaignsV2:output_type -> injective_campaign_rpc.CampaignsV2Response + 12, // 26: injective_campaign_rpc.InjectiveCampaignRPC.ListGuilds:output_type -> injective_campaign_rpc.ListGuildsResponse + 16, // 27: injective_campaign_rpc.InjectiveCampaignRPC.ListGuildMembers:output_type -> injective_campaign_rpc.ListGuildMembersResponse + 19, // 28: injective_campaign_rpc.InjectiveCampaignRPC.GetGuildMember:output_type -> injective_campaign_rpc.GetGuildMemberResponse + 23, // [23:29] is the sub-list for method output_type + 17, // [17:23] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_campaign_rpc_proto_init() } +func file_goadesign_goagen_injective_campaign_rpc_proto_init() { + if File_goadesign_goagen_injective_campaign_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_campaign_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankingRequest); i { case 0: return &v.state @@ -1916,7 +2417,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RankingResponse); i { case 0: return &v.state @@ -1928,7 +2429,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Campaign); i { case 0: return &v.state @@ -1940,7 +2441,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state @@ -1952,7 +2453,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CampaignUser); i { case 0: return &v.state @@ -1964,7 +2465,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Paging); i { case 0: return &v.state @@ -1976,7 +2477,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CampaignsRequest); i { case 0: return &v.state @@ -1988,7 +2489,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CampaignsResponse); i { case 0: return &v.state @@ -2000,7 +2501,43 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CampaignsV2Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CampaignsV2Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CampaignV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGuildsRequest); i { case 0: return &v.state @@ -2012,7 +2549,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGuildsResponse); i { case 0: return &v.state @@ -2024,7 +2561,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Guild); i { case 0: return &v.state @@ -2036,7 +2573,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CampaignSummary); i { case 0: return &v.state @@ -2048,7 +2585,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGuildMembersRequest); i { case 0: return &v.state @@ -2060,7 +2597,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListGuildMembersResponse); i { case 0: return &v.state @@ -2072,7 +2609,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildMember); i { case 0: return &v.state @@ -2084,7 +2621,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGuildMemberRequest); i { case 0: return &v.state @@ -2096,7 +2633,7 @@ func file_injective_campaign_rpc_proto_init() { return nil } } - file_injective_campaign_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGuildMemberResponse); i { case 0: return &v.state @@ -2113,18 +2650,18 @@ func file_injective_campaign_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_campaign_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 20, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_campaign_rpc_proto_goTypes, - DependencyIndexes: file_injective_campaign_rpc_proto_depIdxs, - MessageInfos: file_injective_campaign_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_campaign_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_campaign_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_campaign_rpc_proto_msgTypes, }.Build() - File_injective_campaign_rpc_proto = out.File - file_injective_campaign_rpc_proto_rawDesc = nil - file_injective_campaign_rpc_proto_goTypes = nil - file_injective_campaign_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_campaign_rpc_proto = out.File + file_goadesign_goagen_injective_campaign_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_campaign_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_campaign_rpc_proto_depIdxs = nil } diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc_grpc.pb.go b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go similarity index 85% rename from exchange/campaign_rpc/pb/injective_campaign_rpc_grpc.pb.go rename to exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go index 2f061eed..f45711c2 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc_grpc.pb.go +++ b/exchange/campaign_rpc/pb/goadesign_goagen_injective_campaign_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_campaign_rpc.proto package injective_campaign_rpcpb @@ -22,6 +26,8 @@ type InjectiveCampaignRPCClient interface { Ranking(ctx context.Context, in *RankingRequest, opts ...grpc.CallOption) (*RankingResponse, error) // List current round active campaigns Campaigns(ctx context.Context, in *CampaignsRequest, opts ...grpc.CallOption) (*CampaignsResponse, error) + // List campaigns v2 + CampaignsV2(ctx context.Context, in *CampaignsV2Request, opts ...grpc.CallOption) (*CampaignsV2Response, error) // List guilds by campaign ListGuilds(ctx context.Context, in *ListGuildsRequest, opts ...grpc.CallOption) (*ListGuildsResponse, error) // List guild members of given campaign and guildId @@ -56,6 +62,15 @@ func (c *injectiveCampaignRPCClient) Campaigns(ctx context.Context, in *Campaign return out, nil } +func (c *injectiveCampaignRPCClient) CampaignsV2(ctx context.Context, in *CampaignsV2Request, opts ...grpc.CallOption) (*CampaignsV2Response, error) { + out := new(CampaignsV2Response) + err := c.cc.Invoke(ctx, "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveCampaignRPCClient) ListGuilds(ctx context.Context, in *ListGuildsRequest, opts ...grpc.CallOption) (*ListGuildsResponse, error) { out := new(ListGuildsResponse) err := c.cc.Invoke(ctx, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", in, out, opts...) @@ -91,6 +106,8 @@ type InjectiveCampaignRPCServer interface { Ranking(context.Context, *RankingRequest) (*RankingResponse, error) // List current round active campaigns Campaigns(context.Context, *CampaignsRequest) (*CampaignsResponse, error) + // List campaigns v2 + CampaignsV2(context.Context, *CampaignsV2Request) (*CampaignsV2Response, error) // List guilds by campaign ListGuilds(context.Context, *ListGuildsRequest) (*ListGuildsResponse, error) // List guild members of given campaign and guildId @@ -110,6 +127,9 @@ func (UnimplementedInjectiveCampaignRPCServer) Ranking(context.Context, *Ranking func (UnimplementedInjectiveCampaignRPCServer) Campaigns(context.Context, *CampaignsRequest) (*CampaignsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Campaigns not implemented") } +func (UnimplementedInjectiveCampaignRPCServer) CampaignsV2(context.Context, *CampaignsV2Request) (*CampaignsV2Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method CampaignsV2 not implemented") +} func (UnimplementedInjectiveCampaignRPCServer) ListGuilds(context.Context, *ListGuildsRequest) (*ListGuildsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListGuilds not implemented") } @@ -168,6 +188,24 @@ func _InjectiveCampaignRPC_Campaigns_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _InjectiveCampaignRPC_CampaignsV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CampaignsV2Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveCampaignRPCServer).CampaignsV2(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveCampaignRPCServer).CampaignsV2(ctx, req.(*CampaignsV2Request)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveCampaignRPC_ListGuilds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListGuildsRequest) if err := dec(in); err != nil { @@ -237,6 +275,10 @@ var InjectiveCampaignRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "Campaigns", Handler: _InjectiveCampaignRPC_Campaigns_Handler, }, + { + MethodName: "CampaignsV2", + Handler: _InjectiveCampaignRPC_CampaignsV2_Handler, + }, { MethodName: "ListGuilds", Handler: _InjectiveCampaignRPC_ListGuilds_Handler, @@ -251,5 +293,5 @@ var InjectiveCampaignRPC_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "injective_campaign_rpc.proto", + Metadata: "goadesign_goagen_injective_campaign_rpc.proto", } diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go b/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go index 05530247..b2564260 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go +++ b/exchange/campaign_rpc/pb/injective_campaign_rpc.pb.gw.go @@ -99,6 +99,40 @@ func local_request_InjectiveCampaignRPC_Campaigns_0(ctx context.Context, marshal } +func request_InjectiveCampaignRPC_CampaignsV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CampaignsV2Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CampaignsV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveCampaignRPC_CampaignsV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveCampaignRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CampaignsV2Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CampaignsV2(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectiveCampaignRPC_ListGuilds_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveCampaignRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq ListGuildsRequest var metadata runtime.ServerMetadata @@ -213,20 +247,22 @@ func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveCampaignRPC_Ranking_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveCampaignRPC_Ranking_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_Ranking_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_Ranking_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -236,20 +272,47 @@ func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveCampaignRPC_Campaigns_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveCampaignRPC_Campaigns_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveCampaignRPC_Campaigns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveCampaignRPC_CampaignsV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := local_request_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveCampaignRPC_Campaigns_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -259,20 +322,22 @@ func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveCampaignRPC_ListGuilds_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_ListGuilds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -282,20 +347,22 @@ func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveCampaignRPC_ListGuildMembers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_ListGuildMembers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -305,20 +372,22 @@ func RegisterInjectiveCampaignRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveCampaignRPC_GetGuildMember_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_GetGuildMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -367,19 +436,21 @@ func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Ranking", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Ranking")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveCampaignRPC_Ranking_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveCampaignRPC_Ranking_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_Ranking_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_Ranking_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -387,19 +458,43 @@ func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/Campaigns")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveCampaignRPC_Campaigns_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveCampaignRPC_Campaigns_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveCampaignRPC_Campaigns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveCampaignRPC_CampaignsV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/CampaignsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := request_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveCampaignRPC_Campaigns_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_CampaignsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -407,19 +502,21 @@ func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuilds")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveCampaignRPC_ListGuilds_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_ListGuilds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_ListGuilds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -427,19 +524,21 @@ func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/ListGuildMembers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveCampaignRPC_ListGuildMembers_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_ListGuildMembers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_ListGuildMembers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -447,19 +546,21 @@ func RegisterInjectiveCampaignRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember", runtime.WithHTTPPathPattern("/injective_campaign_rpc.InjectiveCampaignRPC/GetGuildMember")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveCampaignRPC_GetGuildMember_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveCampaignRPC_GetGuildMember_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveCampaignRPC_GetGuildMember_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -471,6 +572,8 @@ var ( pattern_InjectiveCampaignRPC_Campaigns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "Campaigns"}, "")) + pattern_InjectiveCampaignRPC_CampaignsV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "CampaignsV2"}, "")) + pattern_InjectiveCampaignRPC_ListGuilds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "ListGuilds"}, "")) pattern_InjectiveCampaignRPC_ListGuildMembers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_campaign_rpc.InjectiveCampaignRPC", "ListGuildMembers"}, "")) @@ -483,6 +586,8 @@ var ( forward_InjectiveCampaignRPC_Campaigns_0 = runtime.ForwardResponseMessage + forward_InjectiveCampaignRPC_CampaignsV2_0 = runtime.ForwardResponseMessage + forward_InjectiveCampaignRPC_ListGuilds_0 = runtime.ForwardResponseMessage forward_InjectiveCampaignRPC_ListGuildMembers_0 = runtime.ForwardResponseMessage diff --git a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto index ab85df23..f5095311 100644 --- a/exchange/campaign_rpc/pb/injective_campaign_rpc.proto +++ b/exchange/campaign_rpc/pb/injective_campaign_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveCampaignRPC protocol buffer definition // @@ -17,6 +17,8 @@ service InjectiveCampaignRPC { rpc Ranking (RankingRequest) returns (RankingResponse); // List current round active campaigns rpc Campaigns (CampaignsRequest) returns (CampaignsResponse); + // List campaigns v2 + rpc CampaignsV2 (CampaignsV2Request) returns (CampaignsV2Response); // List guilds by campaign rpc ListGuilds (ListGuildsRequest) returns (ListGuildsResponse); // List guild members of given campaign and guildId @@ -34,6 +36,8 @@ message RankingRequest { string account_address = 3; sint32 limit = 4; uint64 skip = 5; + // Contract address that manages the round and reward + string contract_address = 6; } message RankingResponse { @@ -61,12 +65,23 @@ message Campaign { // Campaigns round ID sint32 round_id = 9; // Contract address that controls this campaign - string contract = 10; + string manager_contract = 10; // Reward tokens of this campaign repeated Coin rewards = 11; // Total user score if accountAddress is passed, this is useful to estimate // account's reward string user_score = 12; + // Return true if user claimed the reward of this campaign + bool user_claimed = 13; + // Suffix of the subaccount that eligible for volume score + string subaccount_id_suffix = 14; + // Contract that manage users reward + string reward_contract = 15; + // Version of reward contract, UI use this to determine the message that need +// to be sent + string version = 16; + // Campaign type + string type = 17; } message Coin { @@ -94,6 +109,8 @@ message CampaignUser { // True if this user is updated to be in Galxe Campain list, only eligible // address are added bool galxe_updated = 9; + // True if this user claimed the reward + bool reward_claimed = 10; } // Paging defines the structure for required params for handling pagination message Paging { @@ -110,18 +127,76 @@ message Paging { } message CampaignsRequest { - // Round ID, if not specified, it will return latest roundId + // Round ID, if not specified, it will return latest roundId sint64 round_id = 1; // Address of login account, if not specified it will return no user rewards string account_address = 2; // This will return campaign x where x.roundId <= toRoundId. Useful for listing // multiple rounds sint32 to_round_id = 3; + // Contract address that manages the round and reward + string contract_address = 4; + // Campaign type + string type = 5; } message CampaignsResponse { repeated Campaign campaigns = 1; - repeated Coin account_rewards = 2; + repeated Coin accumulated_rewards = 2; + sint32 reward_count = 3; +} + +message CampaignsV2Request { + // Campaign type + string type = 1; + // Whether the campaign is active + bool active = 2; + // Limit number of returned campaigns + sint32 limit = 3; + // Cursor for pagination + string cursor = 4; +} + +message CampaignsV2Response { + repeated CampaignV2 campaigns = 1; + string cursor = 2; +} + +message CampaignV2 { + string campaign_id = 1; + // MarketId of the trading strategy + string market_id = 2; + // Total campaign score + string total_score = 4; + // Campaign creation date in UNIX millis. + sint64 created_at = 5; + // Campaign last update date in UNIX millis. + sint64 updated_at = 6; + // Campaign start date in UNIX millis. + sint64 start_date = 7; + // Campaign end date in UNIX millis. + sint64 end_date = 8; + // Whether the campaign rewards can be claimed. + bool is_claimable = 9; + // Campaigns round ID + sint32 round_id = 10; + // Contract address that controls this campaign + string manager_contract = 11; + // Reward tokens of this campaign + repeated Coin rewards = 12; + // Suffix of the subaccount that eligible for volume score + string subaccount_id_suffix = 13; + // Contract that manage users reward + string reward_contract = 14; + // Campaign type + string type = 15; + // Version of reward contract, UI use this to determine the message that need +// to be sent + string version = 16; + // Campaign name + string name = 17; + // Campaign description + string description = 18; } message ListGuildsRequest { diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go similarity index 67% rename from exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.go rename to exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go index 1f41c548..98af60fa 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveDerivativeExchangeRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_derivative_exchange_rpc.proto +// source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -42,7 +42,7 @@ type MarketsRequest struct { func (x *MarketsRequest) Reset() { *x = MarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -55,7 +55,7 @@ func (x *MarketsRequest) String() string { func (*MarketsRequest) ProtoMessage() {} func (x *MarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68,7 +68,7 @@ func (x *MarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketsRequest.ProtoReflect.Descriptor instead. func (*MarketsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{0} } func (x *MarketsRequest) GetMarketStatus() string { @@ -104,7 +104,7 @@ type MarketsResponse struct { func (x *MarketsResponse) Reset() { *x = MarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -117,7 +117,7 @@ func (x *MarketsResponse) String() string { func (*MarketsResponse) ProtoMessage() {} func (x *MarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -130,7 +130,7 @@ func (x *MarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketsResponse.ProtoReflect.Descriptor instead. func (*MarketsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{1} } func (x *MarketsResponse) GetMarkets() []*DerivativeMarketInfo { @@ -187,12 +187,14 @@ type DerivativeMarketInfo struct { PerpetualMarketInfo *PerpetualMarketInfo `protobuf:"bytes,18,opt,name=perpetual_market_info,json=perpetualMarketInfo,proto3" json:"perpetual_market_info,omitempty"` PerpetualMarketFunding *PerpetualMarketFunding `protobuf:"bytes,19,opt,name=perpetual_market_funding,json=perpetualMarketFunding,proto3" json:"perpetual_market_funding,omitempty"` ExpiryFuturesMarketInfo *ExpiryFuturesMarketInfo `protobuf:"bytes,20,opt,name=expiry_futures_market_info,json=expiryFuturesMarketInfo,proto3" json:"expiry_futures_market_info,omitempty"` + // Minimum notional value for the order + MinNotional string `protobuf:"bytes,21,opt,name=min_notional,json=minNotional,proto3" json:"min_notional,omitempty"` } func (x *DerivativeMarketInfo) Reset() { *x = DerivativeMarketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -205,7 +207,7 @@ func (x *DerivativeMarketInfo) String() string { func (*DerivativeMarketInfo) ProtoMessage() {} func (x *DerivativeMarketInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -218,7 +220,7 @@ func (x *DerivativeMarketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeMarketInfo.ProtoReflect.Descriptor instead. func (*DerivativeMarketInfo) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{2} } func (x *DerivativeMarketInfo) GetMarketId() string { @@ -361,6 +363,13 @@ func (x *DerivativeMarketInfo) GetExpiryFuturesMarketInfo() *ExpiryFuturesMarket return nil } +func (x *DerivativeMarketInfo) GetMinNotional() string { + if x != nil { + return x.MinNotional + } + return "" +} + type TokenMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -383,7 +392,7 @@ type TokenMeta struct { func (x *TokenMeta) Reset() { *x = TokenMeta{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -396,7 +405,7 @@ func (x *TokenMeta) String() string { func (*TokenMeta) ProtoMessage() {} func (x *TokenMeta) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -409,7 +418,7 @@ func (x *TokenMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMeta.ProtoReflect.Descriptor instead. func (*TokenMeta) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{3} } func (x *TokenMeta) GetName() string { @@ -474,7 +483,7 @@ type PerpetualMarketInfo struct { func (x *PerpetualMarketInfo) Reset() { *x = PerpetualMarketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -487,7 +496,7 @@ func (x *PerpetualMarketInfo) String() string { func (*PerpetualMarketInfo) ProtoMessage() {} func (x *PerpetualMarketInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,7 +509,7 @@ func (x *PerpetualMarketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use PerpetualMarketInfo.ProtoReflect.Descriptor instead. func (*PerpetualMarketInfo) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{4} } func (x *PerpetualMarketInfo) GetHourlyFundingRateCap() string { @@ -549,7 +558,7 @@ type PerpetualMarketFunding struct { func (x *PerpetualMarketFunding) Reset() { *x = PerpetualMarketFunding{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -562,7 +571,7 @@ func (x *PerpetualMarketFunding) String() string { func (*PerpetualMarketFunding) ProtoMessage() {} func (x *PerpetualMarketFunding) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -575,7 +584,7 @@ func (x *PerpetualMarketFunding) ProtoReflect() protoreflect.Message { // Deprecated: Use PerpetualMarketFunding.ProtoReflect.Descriptor instead. func (*PerpetualMarketFunding) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{5} } func (x *PerpetualMarketFunding) GetCumulativeFunding() string { @@ -613,7 +622,7 @@ type ExpiryFuturesMarketInfo struct { func (x *ExpiryFuturesMarketInfo) Reset() { *x = ExpiryFuturesMarketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -626,7 +635,7 @@ func (x *ExpiryFuturesMarketInfo) String() string { func (*ExpiryFuturesMarketInfo) ProtoMessage() {} func (x *ExpiryFuturesMarketInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -639,7 +648,7 @@ func (x *ExpiryFuturesMarketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpiryFuturesMarketInfo.ProtoReflect.Descriptor instead. func (*ExpiryFuturesMarketInfo) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{6} } func (x *ExpiryFuturesMarketInfo) GetExpirationTimestamp() int64 { @@ -668,7 +677,7 @@ type MarketRequest struct { func (x *MarketRequest) Reset() { *x = MarketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -681,7 +690,7 @@ func (x *MarketRequest) String() string { func (*MarketRequest) ProtoMessage() {} func (x *MarketRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -694,7 +703,7 @@ func (x *MarketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketRequest.ProtoReflect.Descriptor instead. func (*MarketRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{7} } func (x *MarketRequest) GetMarketId() string { @@ -716,7 +725,7 @@ type MarketResponse struct { func (x *MarketResponse) Reset() { *x = MarketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -729,7 +738,7 @@ func (x *MarketResponse) String() string { func (*MarketResponse) ProtoMessage() {} func (x *MarketResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -742,7 +751,7 @@ func (x *MarketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketResponse.ProtoReflect.Descriptor instead. func (*MarketResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{8} } func (x *MarketResponse) GetMarket() *DerivativeMarketInfo { @@ -765,7 +774,7 @@ type StreamMarketRequest struct { func (x *StreamMarketRequest) Reset() { *x = StreamMarketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -778,7 +787,7 @@ func (x *StreamMarketRequest) String() string { func (*StreamMarketRequest) ProtoMessage() {} func (x *StreamMarketRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -791,7 +800,7 @@ func (x *StreamMarketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamMarketRequest.ProtoReflect.Descriptor instead. func (*StreamMarketRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{9} } func (x *StreamMarketRequest) GetMarketIds() []string { @@ -817,7 +826,7 @@ type StreamMarketResponse struct { func (x *StreamMarketResponse) Reset() { *x = StreamMarketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -830,7 +839,7 @@ func (x *StreamMarketResponse) String() string { func (*StreamMarketResponse) ProtoMessage() {} func (x *StreamMarketResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -843,7 +852,7 @@ func (x *StreamMarketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamMarketResponse.ProtoReflect.Descriptor instead. func (*StreamMarketResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{10} } func (x *StreamMarketResponse) GetMarket() *DerivativeMarketInfo { @@ -885,7 +894,7 @@ type BinaryOptionsMarketsRequest struct { func (x *BinaryOptionsMarketsRequest) Reset() { *x = BinaryOptionsMarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -898,7 +907,7 @@ func (x *BinaryOptionsMarketsRequest) String() string { func (*BinaryOptionsMarketsRequest) ProtoMessage() {} func (x *BinaryOptionsMarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -911,7 +920,7 @@ func (x *BinaryOptionsMarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BinaryOptionsMarketsRequest.ProtoReflect.Descriptor instead. func (*BinaryOptionsMarketsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{11} } func (x *BinaryOptionsMarketsRequest) GetMarketStatus() string { @@ -955,7 +964,7 @@ type BinaryOptionsMarketsResponse struct { func (x *BinaryOptionsMarketsResponse) Reset() { *x = BinaryOptionsMarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -968,7 +977,7 @@ func (x *BinaryOptionsMarketsResponse) String() string { func (*BinaryOptionsMarketsResponse) ProtoMessage() {} func (x *BinaryOptionsMarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -981,7 +990,7 @@ func (x *BinaryOptionsMarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BinaryOptionsMarketsResponse.ProtoReflect.Descriptor instead. func (*BinaryOptionsMarketsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{12} } func (x *BinaryOptionsMarketsResponse) GetMarkets() []*BinaryOptionsMarketInfo { @@ -1038,12 +1047,14 @@ type BinaryOptionsMarketInfo struct { MinQuantityTickSize string `protobuf:"bytes,16,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3" json:"min_quantity_tick_size,omitempty"` // Defines the settlement price of the market SettlementPrice string `protobuf:"bytes,17,opt,name=settlement_price,json=settlementPrice,proto3" json:"settlement_price,omitempty"` + // Defines the minimum notional value for the market + MinNotional string `protobuf:"bytes,18,opt,name=min_notional,json=minNotional,proto3" json:"min_notional,omitempty"` } func (x *BinaryOptionsMarketInfo) Reset() { *x = BinaryOptionsMarketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1056,7 +1067,7 @@ func (x *BinaryOptionsMarketInfo) String() string { func (*BinaryOptionsMarketInfo) ProtoMessage() {} func (x *BinaryOptionsMarketInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1069,7 +1080,7 @@ func (x *BinaryOptionsMarketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BinaryOptionsMarketInfo.ProtoReflect.Descriptor instead. func (*BinaryOptionsMarketInfo) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{13} } func (x *BinaryOptionsMarketInfo) GetMarketId() string { @@ -1191,6 +1202,13 @@ func (x *BinaryOptionsMarketInfo) GetSettlementPrice() string { return "" } +func (x *BinaryOptionsMarketInfo) GetMinNotional() string { + if x != nil { + return x.MinNotional + } + return "" +} + // Paging defines the structure for required params for handling pagination type Paging struct { state protoimpl.MessageState @@ -1212,7 +1230,7 @@ type Paging struct { func (x *Paging) Reset() { *x = Paging{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1225,7 +1243,7 @@ func (x *Paging) String() string { func (*Paging) ProtoMessage() {} func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1238,7 +1256,7 @@ func (x *Paging) ProtoReflect() protoreflect.Message { // Deprecated: Use Paging.ProtoReflect.Descriptor instead. func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{14} } func (x *Paging) GetTotal() int64 { @@ -1288,7 +1306,7 @@ type BinaryOptionsMarketRequest struct { func (x *BinaryOptionsMarketRequest) Reset() { *x = BinaryOptionsMarketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1301,7 +1319,7 @@ func (x *BinaryOptionsMarketRequest) String() string { func (*BinaryOptionsMarketRequest) ProtoMessage() {} func (x *BinaryOptionsMarketRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1314,7 +1332,7 @@ func (x *BinaryOptionsMarketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BinaryOptionsMarketRequest.ProtoReflect.Descriptor instead. func (*BinaryOptionsMarketRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{15} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{15} } func (x *BinaryOptionsMarketRequest) GetMarketId() string { @@ -1336,7 +1354,7 @@ type BinaryOptionsMarketResponse struct { func (x *BinaryOptionsMarketResponse) Reset() { *x = BinaryOptionsMarketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1349,7 +1367,7 @@ func (x *BinaryOptionsMarketResponse) String() string { func (*BinaryOptionsMarketResponse) ProtoMessage() {} func (x *BinaryOptionsMarketResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1362,7 +1380,7 @@ func (x *BinaryOptionsMarketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BinaryOptionsMarketResponse.ProtoReflect.Descriptor instead. func (*BinaryOptionsMarketResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{16} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{16} } func (x *BinaryOptionsMarketResponse) GetMarket() *BinaryOptionsMarketInfo { @@ -1384,7 +1402,7 @@ type OrderbookV2Request struct { func (x *OrderbookV2Request) Reset() { *x = OrderbookV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1397,7 +1415,7 @@ func (x *OrderbookV2Request) String() string { func (*OrderbookV2Request) ProtoMessage() {} func (x *OrderbookV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1410,7 +1428,7 @@ func (x *OrderbookV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookV2Request.ProtoReflect.Descriptor instead. func (*OrderbookV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{17} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{17} } func (x *OrderbookV2Request) GetMarketId() string { @@ -1432,7 +1450,7 @@ type OrderbookV2Response struct { func (x *OrderbookV2Response) Reset() { *x = OrderbookV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1445,7 +1463,7 @@ func (x *OrderbookV2Response) String() string { func (*OrderbookV2Response) ProtoMessage() {} func (x *OrderbookV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1458,7 +1476,7 @@ func (x *OrderbookV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookV2Response.ProtoReflect.Descriptor instead. func (*OrderbookV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{18} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{18} } func (x *OrderbookV2Response) GetOrderbook() *DerivativeLimitOrderbookV2 { @@ -1486,7 +1504,7 @@ type DerivativeLimitOrderbookV2 struct { func (x *DerivativeLimitOrderbookV2) Reset() { *x = DerivativeLimitOrderbookV2{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1499,7 +1517,7 @@ func (x *DerivativeLimitOrderbookV2) String() string { func (*DerivativeLimitOrderbookV2) ProtoMessage() {} func (x *DerivativeLimitOrderbookV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1512,7 +1530,7 @@ func (x *DerivativeLimitOrderbookV2) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeLimitOrderbookV2.ProtoReflect.Descriptor instead. func (*DerivativeLimitOrderbookV2) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{19} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{19} } func (x *DerivativeLimitOrderbookV2) GetBuys() []*PriceLevel { @@ -1559,7 +1577,7 @@ type PriceLevel struct { func (x *PriceLevel) Reset() { *x = PriceLevel{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1572,7 +1590,7 @@ func (x *PriceLevel) String() string { func (*PriceLevel) ProtoMessage() {} func (x *PriceLevel) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1585,7 +1603,7 @@ func (x *PriceLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceLevel.ProtoReflect.Descriptor instead. func (*PriceLevel) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{20} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{20} } func (x *PriceLevel) GetPrice() string { @@ -1621,7 +1639,7 @@ type OrderbooksV2Request struct { func (x *OrderbooksV2Request) Reset() { *x = OrderbooksV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1634,7 +1652,7 @@ func (x *OrderbooksV2Request) String() string { func (*OrderbooksV2Request) ProtoMessage() {} func (x *OrderbooksV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1647,7 +1665,7 @@ func (x *OrderbooksV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbooksV2Request.ProtoReflect.Descriptor instead. func (*OrderbooksV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{21} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{21} } func (x *OrderbooksV2Request) GetMarketIds() []string { @@ -1668,7 +1686,7 @@ type OrderbooksV2Response struct { func (x *OrderbooksV2Response) Reset() { *x = OrderbooksV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1681,7 +1699,7 @@ func (x *OrderbooksV2Response) String() string { func (*OrderbooksV2Response) ProtoMessage() {} func (x *OrderbooksV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1694,7 +1712,7 @@ func (x *OrderbooksV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbooksV2Response.ProtoReflect.Descriptor instead. func (*OrderbooksV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{22} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{22} } func (x *OrderbooksV2Response) GetOrderbooks() []*SingleDerivativeLimitOrderbookV2 { @@ -1718,7 +1736,7 @@ type SingleDerivativeLimitOrderbookV2 struct { func (x *SingleDerivativeLimitOrderbookV2) Reset() { *x = SingleDerivativeLimitOrderbookV2{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1731,7 +1749,7 @@ func (x *SingleDerivativeLimitOrderbookV2) String() string { func (*SingleDerivativeLimitOrderbookV2) ProtoMessage() {} func (x *SingleDerivativeLimitOrderbookV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1744,7 +1762,7 @@ func (x *SingleDerivativeLimitOrderbookV2) ProtoReflect() protoreflect.Message { // Deprecated: Use SingleDerivativeLimitOrderbookV2.ProtoReflect.Descriptor instead. func (*SingleDerivativeLimitOrderbookV2) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{23} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{23} } func (x *SingleDerivativeLimitOrderbookV2) GetMarketId() string { @@ -1774,7 +1792,7 @@ type StreamOrderbookV2Request struct { func (x *StreamOrderbookV2Request) Reset() { *x = StreamOrderbookV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1787,7 +1805,7 @@ func (x *StreamOrderbookV2Request) String() string { func (*StreamOrderbookV2Request) ProtoMessage() {} func (x *StreamOrderbookV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1800,7 +1818,7 @@ func (x *StreamOrderbookV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookV2Request.ProtoReflect.Descriptor instead. func (*StreamOrderbookV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{24} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{24} } func (x *StreamOrderbookV2Request) GetMarketIds() []string { @@ -1828,7 +1846,7 @@ type StreamOrderbookV2Response struct { func (x *StreamOrderbookV2Response) Reset() { *x = StreamOrderbookV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1841,7 +1859,7 @@ func (x *StreamOrderbookV2Response) String() string { func (*StreamOrderbookV2Response) ProtoMessage() {} func (x *StreamOrderbookV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1854,7 +1872,7 @@ func (x *StreamOrderbookV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookV2Response.ProtoReflect.Descriptor instead. func (*StreamOrderbookV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{25} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{25} } func (x *StreamOrderbookV2Response) GetOrderbook() *DerivativeLimitOrderbookV2 { @@ -1898,7 +1916,7 @@ type StreamOrderbookUpdateRequest struct { func (x *StreamOrderbookUpdateRequest) Reset() { *x = StreamOrderbookUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1911,7 +1929,7 @@ func (x *StreamOrderbookUpdateRequest) String() string { func (*StreamOrderbookUpdateRequest) ProtoMessage() {} func (x *StreamOrderbookUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1924,7 +1942,7 @@ func (x *StreamOrderbookUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookUpdateRequest.ProtoReflect.Descriptor instead. func (*StreamOrderbookUpdateRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{26} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{26} } func (x *StreamOrderbookUpdateRequest) GetMarketIds() []string { @@ -1952,7 +1970,7 @@ type StreamOrderbookUpdateResponse struct { func (x *StreamOrderbookUpdateResponse) Reset() { *x = StreamOrderbookUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1965,7 +1983,7 @@ func (x *StreamOrderbookUpdateResponse) String() string { func (*StreamOrderbookUpdateResponse) ProtoMessage() {} func (x *StreamOrderbookUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1978,7 +1996,7 @@ func (x *StreamOrderbookUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookUpdateResponse.ProtoReflect.Descriptor instead. func (*StreamOrderbookUpdateResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{27} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{27} } func (x *StreamOrderbookUpdateResponse) GetOrderbookLevelUpdates() *OrderbookLevelUpdates { @@ -2029,7 +2047,7 @@ type OrderbookLevelUpdates struct { func (x *OrderbookLevelUpdates) Reset() { *x = OrderbookLevelUpdates{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2042,7 +2060,7 @@ func (x *OrderbookLevelUpdates) String() string { func (*OrderbookLevelUpdates) ProtoMessage() {} func (x *OrderbookLevelUpdates) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2055,7 +2073,7 @@ func (x *OrderbookLevelUpdates) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookLevelUpdates.ProtoReflect.Descriptor instead. func (*OrderbookLevelUpdates) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{28} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{28} } func (x *OrderbookLevelUpdates) GetMarketId() string { @@ -2111,7 +2129,7 @@ type PriceLevelUpdate struct { func (x *PriceLevelUpdate) Reset() { *x = PriceLevelUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2124,7 +2142,7 @@ func (x *PriceLevelUpdate) String() string { func (*PriceLevelUpdate) ProtoMessage() {} func (x *PriceLevelUpdate) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2137,7 +2155,7 @@ func (x *PriceLevelUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceLevelUpdate.ProtoReflect.Descriptor instead. func (*PriceLevelUpdate) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{29} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{29} } func (x *PriceLevelUpdate) GetPrice() string { @@ -2210,7 +2228,7 @@ type OrdersRequest struct { func (x *OrdersRequest) Reset() { *x = OrdersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2223,7 +2241,7 @@ func (x *OrdersRequest) String() string { func (*OrdersRequest) ProtoMessage() {} func (x *OrdersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2236,7 +2254,7 @@ func (x *OrdersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersRequest.ProtoReflect.Descriptor instead. func (*OrdersRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{30} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{30} } func (x *OrdersRequest) GetMarketId() string { @@ -2349,7 +2367,7 @@ type OrdersResponse struct { func (x *OrdersResponse) Reset() { *x = OrdersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2362,7 +2380,7 @@ func (x *OrdersResponse) String() string { func (*OrdersResponse) ProtoMessage() {} func (x *OrdersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2375,7 +2393,7 @@ func (x *OrdersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersResponse.ProtoReflect.Descriptor instead. func (*OrdersResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{31} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{31} } func (x *OrdersResponse) GetOrders() []*DerivativeLimitOrder { @@ -2446,7 +2464,7 @@ type DerivativeLimitOrder struct { func (x *DerivativeLimitOrder) Reset() { *x = DerivativeLimitOrder{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2459,7 +2477,7 @@ func (x *DerivativeLimitOrder) String() string { func (*DerivativeLimitOrder) ProtoMessage() {} func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2472,7 +2490,7 @@ func (x *DerivativeLimitOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeLimitOrder.ProtoReflect.Descriptor instead. func (*DerivativeLimitOrder) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{32} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{32} } func (x *DerivativeLimitOrder) GetOrderHash() string { @@ -2663,7 +2681,7 @@ type PositionsRequest struct { func (x *PositionsRequest) Reset() { *x = PositionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2676,7 +2694,7 @@ func (x *PositionsRequest) String() string { func (*PositionsRequest) ProtoMessage() {} func (x *PositionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2689,7 +2707,7 @@ func (x *PositionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionsRequest.ProtoReflect.Descriptor instead. func (*PositionsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{33} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{33} } func (x *PositionsRequest) GetSubaccountId() string { @@ -2774,7 +2792,7 @@ type PositionsResponse struct { func (x *PositionsResponse) Reset() { *x = PositionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2787,7 +2805,7 @@ func (x *PositionsResponse) String() string { func (*PositionsResponse) ProtoMessage() {} func (x *PositionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2800,7 +2818,7 @@ func (x *PositionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionsResponse.ProtoReflect.Descriptor instead. func (*PositionsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{34} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{34} } func (x *PositionsResponse) GetPositions() []*DerivativePosition { @@ -2851,7 +2869,7 @@ type DerivativePosition struct { func (x *DerivativePosition) Reset() { *x = DerivativePosition{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2864,7 +2882,7 @@ func (x *DerivativePosition) String() string { func (*DerivativePosition) ProtoMessage() {} func (x *DerivativePosition) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2877,7 +2895,7 @@ func (x *DerivativePosition) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativePosition.ProtoReflect.Descriptor instead. func (*DerivativePosition) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{35} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{35} } func (x *DerivativePosition) GetTicker() string { @@ -2998,7 +3016,7 @@ type PositionsV2Request struct { func (x *PositionsV2Request) Reset() { *x = PositionsV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3011,7 +3029,7 @@ func (x *PositionsV2Request) String() string { func (*PositionsV2Request) ProtoMessage() {} func (x *PositionsV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3024,7 +3042,7 @@ func (x *PositionsV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionsV2Request.ProtoReflect.Descriptor instead. func (*PositionsV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{36} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{36} } func (x *PositionsV2Request) GetSubaccountId() string { @@ -3109,7 +3127,7 @@ type PositionsV2Response struct { func (x *PositionsV2Response) Reset() { *x = PositionsV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3122,7 +3140,7 @@ func (x *PositionsV2Response) String() string { func (*PositionsV2Response) ProtoMessage() {} func (x *PositionsV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3135,7 +3153,7 @@ func (x *PositionsV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionsV2Response.ProtoReflect.Descriptor instead. func (*PositionsV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{37} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{37} } func (x *PositionsV2Response) GetPositions() []*DerivativePositionV2 { @@ -3184,7 +3202,7 @@ type DerivativePositionV2 struct { func (x *DerivativePositionV2) Reset() { *x = DerivativePositionV2{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3197,7 +3215,7 @@ func (x *DerivativePositionV2) String() string { func (*DerivativePositionV2) ProtoMessage() {} func (x *DerivativePositionV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3210,7 +3228,7 @@ func (x *DerivativePositionV2) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativePositionV2.ProtoReflect.Descriptor instead. func (*DerivativePositionV2) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{38} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{38} } func (x *DerivativePositionV2) GetTicker() string { @@ -3306,7 +3324,7 @@ type LiquidablePositionsRequest struct { func (x *LiquidablePositionsRequest) Reset() { *x = LiquidablePositionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3319,7 +3337,7 @@ func (x *LiquidablePositionsRequest) String() string { func (*LiquidablePositionsRequest) ProtoMessage() {} func (x *LiquidablePositionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3332,7 +3350,7 @@ func (x *LiquidablePositionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquidablePositionsRequest.ProtoReflect.Descriptor instead. func (*LiquidablePositionsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{39} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{39} } func (x *LiquidablePositionsRequest) GetMarketId() string { @@ -3368,7 +3386,7 @@ type LiquidablePositionsResponse struct { func (x *LiquidablePositionsResponse) Reset() { *x = LiquidablePositionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3381,7 +3399,7 @@ func (x *LiquidablePositionsResponse) String() string { func (*LiquidablePositionsResponse) ProtoMessage() {} func (x *LiquidablePositionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3394,7 +3412,7 @@ func (x *LiquidablePositionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use LiquidablePositionsResponse.ProtoReflect.Descriptor instead. func (*LiquidablePositionsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{40} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{40} } func (x *LiquidablePositionsResponse) GetPositions() []*DerivativePosition { @@ -3428,7 +3446,7 @@ type FundingPaymentsRequest struct { func (x *FundingPaymentsRequest) Reset() { *x = FundingPaymentsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3441,7 +3459,7 @@ func (x *FundingPaymentsRequest) String() string { func (*FundingPaymentsRequest) ProtoMessage() {} func (x *FundingPaymentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3454,7 +3472,7 @@ func (x *FundingPaymentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingPaymentsRequest.ProtoReflect.Descriptor instead. func (*FundingPaymentsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{41} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{41} } func (x *FundingPaymentsRequest) GetSubaccountId() string { @@ -3512,7 +3530,7 @@ type FundingPaymentsResponse struct { func (x *FundingPaymentsResponse) Reset() { *x = FundingPaymentsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3525,7 +3543,7 @@ func (x *FundingPaymentsResponse) String() string { func (*FundingPaymentsResponse) ProtoMessage() {} func (x *FundingPaymentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3538,7 +3556,7 @@ func (x *FundingPaymentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingPaymentsResponse.ProtoReflect.Descriptor instead. func (*FundingPaymentsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{42} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{42} } func (x *FundingPaymentsResponse) GetPayments() []*FundingPayment { @@ -3573,7 +3591,7 @@ type FundingPayment struct { func (x *FundingPayment) Reset() { *x = FundingPayment{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3586,7 +3604,7 @@ func (x *FundingPayment) String() string { func (*FundingPayment) ProtoMessage() {} func (x *FundingPayment) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3599,7 +3617,7 @@ func (x *FundingPayment) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingPayment.ProtoReflect.Descriptor instead. func (*FundingPayment) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{43} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{43} } func (x *FundingPayment) GetMarketId() string { @@ -3648,7 +3666,7 @@ type FundingRatesRequest struct { func (x *FundingRatesRequest) Reset() { *x = FundingRatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3661,7 +3679,7 @@ func (x *FundingRatesRequest) String() string { func (*FundingRatesRequest) ProtoMessage() {} func (x *FundingRatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3674,7 +3692,7 @@ func (x *FundingRatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingRatesRequest.ProtoReflect.Descriptor instead. func (*FundingRatesRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{44} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{44} } func (x *FundingRatesRequest) GetMarketId() string { @@ -3718,7 +3736,7 @@ type FundingRatesResponse struct { func (x *FundingRatesResponse) Reset() { *x = FundingRatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3731,7 +3749,7 @@ func (x *FundingRatesResponse) String() string { func (*FundingRatesResponse) ProtoMessage() {} func (x *FundingRatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3744,7 +3762,7 @@ func (x *FundingRatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingRatesResponse.ProtoReflect.Descriptor instead. func (*FundingRatesResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{45} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{45} } func (x *FundingRatesResponse) GetFundingRates() []*FundingRate { @@ -3777,7 +3795,7 @@ type FundingRate struct { func (x *FundingRate) Reset() { *x = FundingRate{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3790,7 +3808,7 @@ func (x *FundingRate) String() string { func (*FundingRate) ProtoMessage() {} func (x *FundingRate) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3803,7 +3821,7 @@ func (x *FundingRate) ProtoReflect() protoreflect.Message { // Deprecated: Use FundingRate.ProtoReflect.Descriptor instead. func (*FundingRate) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{46} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{46} } func (x *FundingRate) GetMarketId() string { @@ -3847,7 +3865,7 @@ type StreamPositionsRequest struct { func (x *StreamPositionsRequest) Reset() { *x = StreamPositionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3860,7 +3878,7 @@ func (x *StreamPositionsRequest) String() string { func (*StreamPositionsRequest) ProtoMessage() {} func (x *StreamPositionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3873,7 +3891,7 @@ func (x *StreamPositionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPositionsRequest.ProtoReflect.Descriptor instead. func (*StreamPositionsRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{47} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{47} } func (x *StreamPositionsRequest) GetSubaccountId() string { @@ -3916,7 +3934,7 @@ type StreamPositionsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Updated Derivative Position + // Updated derivative Position Position *DerivativePosition `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` // Operation timestamp in UNIX millis. Timestamp int64 `protobuf:"zigzag64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` @@ -3925,7 +3943,7 @@ type StreamPositionsResponse struct { func (x *StreamPositionsResponse) Reset() { *x = StreamPositionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3938,7 +3956,7 @@ func (x *StreamPositionsResponse) String() string { func (*StreamPositionsResponse) ProtoMessage() {} func (x *StreamPositionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3951,7 +3969,7 @@ func (x *StreamPositionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPositionsResponse.ProtoReflect.Descriptor instead. func (*StreamPositionsResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{48} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{48} } func (x *StreamPositionsResponse) GetPosition() *DerivativePosition { @@ -4010,7 +4028,7 @@ type StreamOrdersRequest struct { func (x *StreamOrdersRequest) Reset() { *x = StreamOrdersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4023,7 +4041,7 @@ func (x *StreamOrdersRequest) String() string { func (*StreamOrdersRequest) ProtoMessage() {} func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4036,7 +4054,7 @@ func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{49} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{49} } func (x *StreamOrdersRequest) GetMarketId() string { @@ -4153,7 +4171,7 @@ type StreamOrdersResponse struct { func (x *StreamOrdersResponse) Reset() { *x = StreamOrdersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4166,7 +4184,7 @@ func (x *StreamOrdersResponse) String() string { func (*StreamOrdersResponse) ProtoMessage() {} func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4179,7 +4197,7 @@ func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{50} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{50} } func (x *StreamOrdersResponse) GetOrder() *DerivativeLimitOrder { @@ -4243,7 +4261,7 @@ type TradesRequest struct { func (x *TradesRequest) Reset() { *x = TradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4256,7 +4274,7 @@ func (x *TradesRequest) String() string { func (*TradesRequest) ProtoMessage() {} func (x *TradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4269,7 +4287,7 @@ func (x *TradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesRequest.ProtoReflect.Descriptor instead. func (*TradesRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{51} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{51} } func (x *TradesRequest) GetMarketId() string { @@ -4383,7 +4401,7 @@ type TradesResponse struct { func (x *TradesResponse) Reset() { *x = TradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4396,7 +4414,7 @@ func (x *TradesResponse) String() string { func (*TradesResponse) ProtoMessage() {} func (x *TradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4409,7 +4427,7 @@ func (x *TradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesResponse.ProtoReflect.Descriptor instead. func (*TradesResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{52} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{52} } func (x *TradesResponse) GetTrades() []*DerivativeTrade { @@ -4462,7 +4480,7 @@ type DerivativeTrade struct { func (x *DerivativeTrade) Reset() { *x = DerivativeTrade{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4475,7 +4493,7 @@ func (x *DerivativeTrade) String() string { func (*DerivativeTrade) ProtoMessage() {} func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4488,7 +4506,7 @@ func (x *DerivativeTrade) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeTrade.ProtoReflect.Descriptor instead. func (*DerivativeTrade) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{53} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{53} } func (x *DerivativeTrade) GetOrderHash() string { @@ -4600,7 +4618,7 @@ type PositionDelta struct { func (x *PositionDelta) Reset() { *x = PositionDelta{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4613,7 +4631,7 @@ func (x *PositionDelta) String() string { func (*PositionDelta) ProtoMessage() {} func (x *PositionDelta) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4626,7 +4644,7 @@ func (x *PositionDelta) ProtoReflect() protoreflect.Message { // Deprecated: Use PositionDelta.ProtoReflect.Descriptor instead. func (*PositionDelta) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{54} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{54} } func (x *PositionDelta) GetTradeDirection() string { @@ -4697,7 +4715,7 @@ type TradesV2Request struct { func (x *TradesV2Request) Reset() { *x = TradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4710,7 +4728,7 @@ func (x *TradesV2Request) String() string { func (*TradesV2Request) ProtoMessage() {} func (x *TradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4723,7 +4741,7 @@ func (x *TradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Request.ProtoReflect.Descriptor instead. func (*TradesV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{55} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{55} } func (x *TradesV2Request) GetMarketId() string { @@ -4837,7 +4855,7 @@ type TradesV2Response struct { func (x *TradesV2Response) Reset() { *x = TradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4850,7 +4868,7 @@ func (x *TradesV2Response) String() string { func (*TradesV2Response) ProtoMessage() {} func (x *TradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4863,7 +4881,7 @@ func (x *TradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Response.ProtoReflect.Descriptor instead. func (*TradesV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{56} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{56} } func (x *TradesV2Response) GetTrades() []*DerivativeTrade { @@ -4920,7 +4938,7 @@ type StreamTradesRequest struct { func (x *StreamTradesRequest) Reset() { *x = StreamTradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4933,7 +4951,7 @@ func (x *StreamTradesRequest) String() string { func (*StreamTradesRequest) ProtoMessage() {} func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4946,7 +4964,7 @@ func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesRequest.ProtoReflect.Descriptor instead. func (*StreamTradesRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{57} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{57} } func (x *StreamTradesRequest) GetMarketId() string { @@ -5063,7 +5081,7 @@ type StreamTradesResponse struct { func (x *StreamTradesResponse) Reset() { *x = StreamTradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5076,7 +5094,7 @@ func (x *StreamTradesResponse) String() string { func (*StreamTradesResponse) ProtoMessage() {} func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5089,7 +5107,7 @@ func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesResponse.ProtoReflect.Descriptor instead. func (*StreamTradesResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{58} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{58} } func (x *StreamTradesResponse) GetTrade() *DerivativeTrade { @@ -5153,7 +5171,7 @@ type StreamTradesV2Request struct { func (x *StreamTradesV2Request) Reset() { *x = StreamTradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5166,7 +5184,7 @@ func (x *StreamTradesV2Request) String() string { func (*StreamTradesV2Request) ProtoMessage() {} func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5179,7 +5197,7 @@ func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Request.ProtoReflect.Descriptor instead. func (*StreamTradesV2Request) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{59} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{59} } func (x *StreamTradesV2Request) GetMarketId() string { @@ -5296,7 +5314,7 @@ type StreamTradesV2Response struct { func (x *StreamTradesV2Response) Reset() { *x = StreamTradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5309,7 +5327,7 @@ func (x *StreamTradesV2Response) String() string { func (*StreamTradesV2Response) ProtoMessage() {} func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5322,7 +5340,7 @@ func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Response.ProtoReflect.Descriptor instead. func (*StreamTradesV2Response) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{60} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{60} } func (x *StreamTradesV2Response) GetTrade() *DerivativeTrade { @@ -5364,7 +5382,7 @@ type SubaccountOrdersListRequest struct { func (x *SubaccountOrdersListRequest) Reset() { *x = SubaccountOrdersListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5377,7 +5395,7 @@ func (x *SubaccountOrdersListRequest) String() string { func (*SubaccountOrdersListRequest) ProtoMessage() {} func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5390,7 +5408,7 @@ func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListRequest.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{61} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{61} } func (x *SubaccountOrdersListRequest) GetSubaccountId() string { @@ -5434,7 +5452,7 @@ type SubaccountOrdersListResponse struct { func (x *SubaccountOrdersListResponse) Reset() { *x = SubaccountOrdersListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5447,7 +5465,7 @@ func (x *SubaccountOrdersListResponse) String() string { func (*SubaccountOrdersListResponse) ProtoMessage() {} func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5460,7 +5478,7 @@ func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListResponse.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{62} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{62} } func (x *SubaccountOrdersListResponse) GetOrders() []*DerivativeLimitOrder { @@ -5499,7 +5517,7 @@ type SubaccountTradesListRequest struct { func (x *SubaccountTradesListRequest) Reset() { *x = SubaccountTradesListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5512,7 +5530,7 @@ func (x *SubaccountTradesListRequest) String() string { func (*SubaccountTradesListRequest) ProtoMessage() {} func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5525,7 +5543,7 @@ func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListRequest.ProtoReflect.Descriptor instead. func (*SubaccountTradesListRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{63} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{63} } func (x *SubaccountTradesListRequest) GetSubaccountId() string { @@ -5582,7 +5600,7 @@ type SubaccountTradesListResponse struct { func (x *SubaccountTradesListResponse) Reset() { *x = SubaccountTradesListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5595,7 +5613,7 @@ func (x *SubaccountTradesListResponse) String() string { func (*SubaccountTradesListResponse) ProtoMessage() {} func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5608,7 +5626,7 @@ func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListResponse.ProtoReflect.Descriptor instead. func (*SubaccountTradesListResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{64} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{64} } func (x *SubaccountTradesListResponse) GetTrades() []*DerivativeTrade { @@ -5658,7 +5676,7 @@ type OrdersHistoryRequest struct { func (x *OrdersHistoryRequest) Reset() { *x = OrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5671,7 +5689,7 @@ func (x *OrdersHistoryRequest) String() string { func (*OrdersHistoryRequest) ProtoMessage() {} func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5684,7 +5702,7 @@ func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*OrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{65} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{65} } func (x *OrdersHistoryRequest) GetSubaccountId() string { @@ -5812,7 +5830,7 @@ type OrdersHistoryResponse struct { func (x *OrdersHistoryResponse) Reset() { *x = OrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5825,7 +5843,7 @@ func (x *OrdersHistoryResponse) String() string { func (*OrdersHistoryResponse) ProtoMessage() {} func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5838,7 +5856,7 @@ func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*OrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{66} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{66} } func (x *OrdersHistoryResponse) GetOrders() []*DerivativeOrderHistory { @@ -5907,7 +5925,7 @@ type DerivativeOrderHistory struct { func (x *DerivativeOrderHistory) Reset() { *x = DerivativeOrderHistory{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5920,7 +5938,7 @@ func (x *DerivativeOrderHistory) String() string { func (*DerivativeOrderHistory) ProtoMessage() {} func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5933,7 +5951,7 @@ func (x *DerivativeOrderHistory) ProtoReflect() protoreflect.Message { // Deprecated: Use DerivativeOrderHistory.ProtoReflect.Descriptor instead. func (*DerivativeOrderHistory) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{67} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{67} } func (x *DerivativeOrderHistory) GetOrderHash() string { @@ -6104,7 +6122,7 @@ type StreamOrdersHistoryRequest struct { func (x *StreamOrdersHistoryRequest) Reset() { *x = StreamOrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6117,7 +6135,7 @@ func (x *StreamOrdersHistoryRequest) String() string { func (*StreamOrdersHistoryRequest) ProtoMessage() {} func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6130,7 +6148,7 @@ func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{68} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{68} } func (x *StreamOrdersHistoryRequest) GetSubaccountId() string { @@ -6191,7 +6209,7 @@ type StreamOrdersHistoryResponse struct { func (x *StreamOrdersHistoryResponse) Reset() { *x = StreamOrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6204,7 +6222,7 @@ func (x *StreamOrdersHistoryResponse) String() string { func (*StreamOrdersHistoryResponse) ProtoMessage() {} func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_derivative_exchange_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6217,7 +6235,7 @@ func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{69} + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP(), []int{69} } func (x *StreamOrdersHistoryResponse) GetOrder() *DerivativeOrderHistory { @@ -6241,933 +6259,899 @@ func (x *StreamOrdersHistoryResponse) GetTimestamp() int64 { return 0 } -var File_injective_derivative_exchange_rpc_proto protoreflect.FileDescriptor +var File_goadesign_goagen_injective_derivative_exchange_rpc_proto protoreflect.FileDescriptor -var file_injective_derivative_exchange_rpc_proto_rawDesc = []byte{ - 0x0a, 0x27, 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, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 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, 0x22, 0x7f, 0x0a, 0x0e, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, - 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0x64, 0x0a, - 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x51, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x73, 0x22, 0xc9, 0x08, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x42, 0x61, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, - 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, - 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x38, 0x0a, - 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x56, 0x0a, 0x10, 0x71, 0x75, 0x6f, 0x74, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 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, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, - 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, - 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, - 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, 0x63, - 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x6a, 0x0a, 0x15, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, - 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, - 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x70, 0x65, - 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x73, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x13, 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, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, - 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x16, - 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, - 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x77, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, - 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x17, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x75, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0xa0, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 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, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, - 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, - 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x17, 0x68, 0x6f, - 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x68, 0x6f, 0x75, - 0x72, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x43, 0x61, - 0x70, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x75, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x22, 0x99, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, - 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, - 0x2d, 0x0a, 0x12, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x75, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x6d, - 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0x77, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, - 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x14, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x13, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x29, - 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x0d, 0x4d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 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, 0x22, 0x61, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 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, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x22, 0x34, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, - 0x22, 0xac, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, +var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = []byte{ + 0x0a, 0x38, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 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, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 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, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, - 0x8d, 0x01, 0x0a, 0x1b, 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, 0x12, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x7f, 0x0a, + 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 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, - 0xb7, 0x01, 0x0a, 0x1c, 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, 0x54, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 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, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 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, 0xfe, 0x05, 0x0a, 0x17, 0x42, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, - 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1f, 0x0a, - 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, - 0x0a, 0x13, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, - 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, - 0x0a, 0x14, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x13, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x31, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x13, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x56, 0x0a, 0x10, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 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, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0e, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x24, 0x0a, - 0x0e, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x6b, - 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x66, 0x65, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6d, - 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x69, - 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x51, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x74, 0x74, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, - 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, - 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x65, 0x78, 0x74, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, 0x71, - 0x0a, 0x1b, 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, 0x52, 0x0a, - 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0x64, + 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x73, 0x22, 0xec, 0x08, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, + 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, + 0x61, 0x63, 0x6c, 0x65, 0x42, 0x61, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, + 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x14, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x38, + 0x0a, 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x56, 0x0a, 0x10, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, + 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, + 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, + 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, + 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x6a, 0x0a, 0x15, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x65, 0x72, 0x70, 0x65, 0x74, + 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x70, + 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x73, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x13, + 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, 0x50, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, + 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, + 0x16, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x77, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x79, 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x17, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, + 0x75, 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 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, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, + 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x70, 0x65, + 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, + 0x0a, 0x17, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x14, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x46, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, + 0x74, 0x65, 0x43, 0x61, 0x70, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x65, 0x73, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x46, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x29, 0x0a, + 0x10, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x99, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, + 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x11, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0x77, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x75, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x31, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x13, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, + 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, + 0x0d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x22, 0x61, 0x0a, 0x0e, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, + 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x22, 0x31, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x22, 0x72, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0xde, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x41, 0x0a, 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 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, 0x72, 0x69, 0x63, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x04, 0x62, 0x75, 0x79, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x65, - 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 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, 0x72, - 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 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, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x34, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x7b, 0x0a, - 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 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, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x0a, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x20, 0x53, - 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 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, 0x5b, 0x0a, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 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, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0x39, 0x0a, 0x18, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x22, 0x34, + 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, + 0x74, 0x49, 0x64, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, + 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x8d, 0x01, 0x0a, 0x1b, 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, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 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, 0xb7, 0x01, 0x0a, 0x1c, 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, 0x54, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 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, 0xa1, 0x06, + 0x0a, 0x17, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x13, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x14, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x13, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x56, 0x0a, 0x10, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, + 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, + 0x2d, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x63, + 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x69, + 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, + 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x6d, 0x69, 0x6e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x65, 0x74, 0x74, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x22, 0x39, 0x0a, 0x1a, 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, 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, 0x22, 0x71, 0x0a, 0x1b, 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, 0x52, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x22, 0x31, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x22, 0x72, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x22, 0x3d, 0x0a, 0x1c, 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, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, - 0x22, 0xf3, 0x01, 0x0a, 0x1d, 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, 0x12, 0x70, 0x0a, 0x17, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x6f, 0x6f, - 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x15, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x62, 0x75, 0x79, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x72, 0x69, 0x63, - 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x04, 0x62, 0x75, - 0x79, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 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, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x7f, 0x0a, 0x10, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 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, - 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, 0xc9, 0x03, - 0x0a, 0x0d, 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, 0xa4, 0x01, 0x0a, 0x0e, 0x4f, 0x72, - 0x64, 0x65, 0x72, 0x73, 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, + 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, + 0xde, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x41, + 0x0a, 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 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, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x04, 0x62, 0x75, 0x79, + 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2d, 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, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, + 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 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, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 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, 0x34, + 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x49, 0x64, 0x73, 0x22, 0x7b, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0a, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x43, 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, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x20, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 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, 0x5b, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x44, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 0x22, 0x39, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x19, + 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, 0x12, 0x5b, 0x0a, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x44, 0x65, 0x72, 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, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, - 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, - 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 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, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 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, 0x12, 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, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xdc, 0x02, 0x0a, 0x10, 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, 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, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xab, 0x01, 0x0a, 0x11, 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, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1c, 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, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x1d, 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, 0x12, 0x70, 0x0a, 0x17, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 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, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x83, 0x02, + 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x47, 0x0a, 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x04, 0x62, 0x75, 0x79, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x65, 0x6c, + 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x72, 0x69, + 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x7f, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 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, 0xc9, 0x03, 0x0a, 0x0d, 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, 0xa4, 0x01, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 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, 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, 0xb0, 0x03, 0x0a, 0x12, 0x44, 0x65, 0x72, 0x69, - 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, - 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, - 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x1b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, - 0x4f, 0x6e, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xde, 0x02, 0x0a, 0x12, 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, 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, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x06, 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, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x13, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, - 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0xe4, 0x02, - 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, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xd7, 0x05, 0x0a, 0x14, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 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, + 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, 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, 0x23, 0x0a, 0x0d, 0x73, - 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 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, 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, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, - 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 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, + 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x52, 0x65, 0x64, 0x75, + 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, + 0x0d, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, + 0x11, 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, 0x12, 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, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, + 0x64, 0x22, 0xdc, 0x02, 0x0a, 0x10, 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, 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, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x05, 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, 0x06, 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, 0x07, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xab, 0x01, 0x0a, 0x11, 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, 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, - 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, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xb0, + 0x03, 0x0a, 0x12, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 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, 0x1a, 0x0a, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, + 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x43, + 0x0a, 0x1e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, + 0x63, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x22, 0xde, 0x02, 0x0a, 0x12, 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, 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, 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, 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, 0xbf, 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, 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, 0xe8, 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, 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, 0xc1, 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, 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, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x05, 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, + 0x06, 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, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x73, + 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x18, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x09, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 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, 0xc5, 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, 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, 0xc7, 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, 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, + 0x63, 0x2e, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x32, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 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, 0xe4, 0x02, 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, 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, + 0x49, 0x64, 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, 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, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, + 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, + 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, + 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 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, - 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, 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, + 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, 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, 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, + 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, + 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, 0xbf, + 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, + 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, 0xe8, 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, 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, 0xc1, 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, 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, 0xc5, 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, 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, 0xc7, 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, 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, @@ -7175,341 +7159,380 @@ var file_injective_derivative_exchange_rpc_proto_rawDesc = []byte{ 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, + 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, + 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, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 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, 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, + 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, 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, 0x32, 0xc4, - 0x1a, 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, 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, + 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, 0x32, 0xc4, 0x1a, 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, 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, - 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, + 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, 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, 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, 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, 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, + 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, 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, 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, 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, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, 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, + 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, 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, 0x42, 0x26, 0x5a, 0x24, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 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, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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, 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, 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, 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 ( - file_injective_derivative_exchange_rpc_proto_rawDescOnce sync.Once - file_injective_derivative_exchange_rpc_proto_rawDescData = file_injective_derivative_exchange_rpc_proto_rawDesc + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescData = file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc ) -func file_injective_derivative_exchange_rpc_proto_rawDescGZIP() []byte { - file_injective_derivative_exchange_rpc_proto_rawDescOnce.Do(func() { - file_injective_derivative_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_derivative_exchange_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescData) }) - return file_injective_derivative_exchange_rpc_proto_rawDescData + return file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDescData } -var file_injective_derivative_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 70) -var file_injective_derivative_exchange_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 70) +var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_goTypes = []interface{}{ (*MarketsRequest)(nil), // 0: injective_derivative_exchange_rpc.MarketsRequest (*MarketsResponse)(nil), // 1: injective_derivative_exchange_rpc.MarketsResponse (*DerivativeMarketInfo)(nil), // 2: injective_derivative_exchange_rpc.DerivativeMarketInfo @@ -7581,7 +7604,7 @@ var file_injective_derivative_exchange_rpc_proto_goTypes = []interface{}{ (*StreamOrdersHistoryRequest)(nil), // 68: injective_derivative_exchange_rpc.StreamOrdersHistoryRequest (*StreamOrdersHistoryResponse)(nil), // 69: injective_derivative_exchange_rpc.StreamOrdersHistoryResponse } -var file_injective_derivative_exchange_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_derivative_exchange_rpc_proto_depIdxs = []int32{ 2, // 0: injective_derivative_exchange_rpc.MarketsResponse.markets:type_name -> injective_derivative_exchange_rpc.DerivativeMarketInfo 3, // 1: injective_derivative_exchange_rpc.DerivativeMarketInfo.quote_token_meta:type_name -> injective_derivative_exchange_rpc.TokenMeta 4, // 2: injective_derivative_exchange_rpc.DerivativeMarketInfo.perpetual_market_info:type_name -> injective_derivative_exchange_rpc.PerpetualMarketInfo @@ -7685,13 +7708,13 @@ var file_injective_derivative_exchange_rpc_proto_depIdxs = []int32{ 0, // [0:46] is the sub-list for field type_name } -func init() { file_injective_derivative_exchange_rpc_proto_init() } -func file_injective_derivative_exchange_rpc_proto_init() { - if File_injective_derivative_exchange_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() } +func file_goadesign_goagen_injective_derivative_exchange_rpc_proto_init() { + if File_goadesign_goagen_injective_derivative_exchange_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_derivative_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketsRequest); i { case 0: return &v.state @@ -7703,7 +7726,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketsResponse); i { case 0: return &v.state @@ -7715,7 +7738,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativeMarketInfo); i { case 0: return &v.state @@ -7727,7 +7750,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMeta); i { case 0: return &v.state @@ -7739,7 +7762,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerpetualMarketInfo); i { case 0: return &v.state @@ -7751,7 +7774,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PerpetualMarketFunding); i { case 0: return &v.state @@ -7763,7 +7786,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExpiryFuturesMarketInfo); i { case 0: return &v.state @@ -7775,7 +7798,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketRequest); i { case 0: return &v.state @@ -7787,7 +7810,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketResponse); i { case 0: return &v.state @@ -7799,7 +7822,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamMarketRequest); i { case 0: return &v.state @@ -7811,7 +7834,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamMarketResponse); i { case 0: return &v.state @@ -7823,7 +7846,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryOptionsMarketsRequest); i { case 0: return &v.state @@ -7835,7 +7858,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryOptionsMarketsResponse); i { case 0: return &v.state @@ -7847,7 +7870,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryOptionsMarketInfo); i { case 0: return &v.state @@ -7859,7 +7882,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Paging); i { case 0: return &v.state @@ -7871,7 +7894,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryOptionsMarketRequest); i { case 0: return &v.state @@ -7883,7 +7906,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BinaryOptionsMarketResponse); i { case 0: return &v.state @@ -7895,7 +7918,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookV2Request); i { case 0: return &v.state @@ -7907,7 +7930,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookV2Response); i { case 0: return &v.state @@ -7919,7 +7942,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativeLimitOrderbookV2); i { case 0: return &v.state @@ -7931,7 +7954,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceLevel); i { case 0: return &v.state @@ -7943,7 +7966,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbooksV2Request); i { case 0: return &v.state @@ -7955,7 +7978,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbooksV2Response); i { case 0: return &v.state @@ -7967,7 +7990,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SingleDerivativeLimitOrderbookV2); i { case 0: return &v.state @@ -7979,7 +8002,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookV2Request); i { case 0: return &v.state @@ -7991,7 +8014,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookV2Response); i { case 0: return &v.state @@ -8003,7 +8026,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookUpdateRequest); i { case 0: return &v.state @@ -8015,7 +8038,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookUpdateResponse); i { case 0: return &v.state @@ -8027,7 +8050,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookLevelUpdates); i { case 0: return &v.state @@ -8039,7 +8062,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceLevelUpdate); i { case 0: return &v.state @@ -8051,7 +8074,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersRequest); i { case 0: return &v.state @@ -8063,7 +8086,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersResponse); i { case 0: return &v.state @@ -8075,7 +8098,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativeLimitOrder); i { case 0: return &v.state @@ -8087,7 +8110,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PositionsRequest); i { case 0: return &v.state @@ -8099,7 +8122,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PositionsResponse); i { case 0: return &v.state @@ -8111,7 +8134,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativePosition); i { case 0: return &v.state @@ -8123,7 +8146,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PositionsV2Request); i { case 0: return &v.state @@ -8135,7 +8158,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PositionsV2Response); i { case 0: return &v.state @@ -8147,7 +8170,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativePositionV2); i { case 0: return &v.state @@ -8159,7 +8182,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LiquidablePositionsRequest); i { case 0: return &v.state @@ -8171,7 +8194,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LiquidablePositionsResponse); i { case 0: return &v.state @@ -8183,7 +8206,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingPaymentsRequest); i { case 0: return &v.state @@ -8195,7 +8218,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingPaymentsResponse); i { case 0: return &v.state @@ -8207,7 +8230,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingPayment); i { case 0: return &v.state @@ -8219,7 +8242,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingRatesRequest); i { case 0: return &v.state @@ -8231,7 +8254,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingRatesResponse); i { case 0: return &v.state @@ -8243,7 +8266,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FundingRate); i { case 0: return &v.state @@ -8255,7 +8278,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPositionsRequest); i { case 0: return &v.state @@ -8267,7 +8290,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPositionsResponse); i { case 0: return &v.state @@ -8279,7 +8302,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersRequest); i { case 0: return &v.state @@ -8291,7 +8314,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersResponse); i { case 0: return &v.state @@ -8303,7 +8326,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesRequest); i { case 0: return &v.state @@ -8315,7 +8338,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesResponse); i { case 0: return &v.state @@ -8327,7 +8350,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativeTrade); i { case 0: return &v.state @@ -8339,7 +8362,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PositionDelta); i { case 0: return &v.state @@ -8351,7 +8374,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesV2Request); i { case 0: return &v.state @@ -8363,7 +8386,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesV2Response); i { case 0: return &v.state @@ -8375,7 +8398,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesRequest); i { case 0: return &v.state @@ -8387,7 +8410,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesResponse); i { case 0: return &v.state @@ -8399,7 +8422,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesV2Request); i { case 0: return &v.state @@ -8411,7 +8434,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesV2Response); i { case 0: return &v.state @@ -8423,7 +8446,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountOrdersListRequest); i { case 0: return &v.state @@ -8435,7 +8458,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountOrdersListResponse); i { case 0: return &v.state @@ -8447,7 +8470,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountTradesListRequest); i { case 0: return &v.state @@ -8459,7 +8482,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountTradesListResponse); i { case 0: return &v.state @@ -8471,7 +8494,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersHistoryRequest); i { case 0: return &v.state @@ -8483,7 +8506,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersHistoryResponse); i { case 0: return &v.state @@ -8495,7 +8518,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DerivativeOrderHistory); i { case 0: return &v.state @@ -8507,7 +8530,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersHistoryRequest); i { case 0: return &v.state @@ -8519,7 +8542,7 @@ func file_injective_derivative_exchange_rpc_proto_init() { return nil } } - file_injective_derivative_exchange_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersHistoryResponse); i { case 0: return &v.state @@ -8536,18 +8559,18 @@ func file_injective_derivative_exchange_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_derivative_exchange_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 70, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_derivative_exchange_rpc_proto_goTypes, - DependencyIndexes: file_injective_derivative_exchange_rpc_proto_depIdxs, - MessageInfos: file_injective_derivative_exchange_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_derivative_exchange_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_derivative_exchange_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_derivative_exchange_rpc_proto_msgTypes, }.Build() - File_injective_derivative_exchange_rpc_proto = out.File - file_injective_derivative_exchange_rpc_proto_rawDesc = nil - file_injective_derivative_exchange_rpc_proto_goTypes = nil - file_injective_derivative_exchange_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_derivative_exchange_rpc_proto = out.File + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_derivative_exchange_rpc_proto_depIdxs = nil } diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc_grpc.pb.go b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go similarity index 99% rename from exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc_grpc.pb.go rename to exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go index 6fdb5942..3fe28e50 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc_grpc.pb.go +++ b/exchange/derivative_exchange_rpc/pb/goadesign_goagen_injective_derivative_exchange_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_derivative_exchange_rpc.proto package injective_derivative_exchange_rpcpb @@ -1233,5 +1237,5 @@ var InjectiveDerivativeExchangeRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_derivative_exchange_rpc.proto", + Metadata: "goadesign_goagen_injective_derivative_exchange_rpc.proto", } diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go index 181b7657..952d119a 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go +++ b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.pb.gw.go @@ -821,20 +821,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Markets_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Markets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -844,20 +846,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Market_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Market_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -874,20 +878,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -897,20 +903,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -920,20 +928,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -943,20 +953,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -980,20 +992,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Orders_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Orders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1003,20 +1017,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Positions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Positions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1026,20 +1042,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_PositionsV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1049,20 +1067,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1072,20 +1092,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingPayments_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1095,20 +1117,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingRates_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_FundingRates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1132,20 +1156,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Trades_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Trades_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1155,20 +1181,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_TradesV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_TradesV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1192,20 +1220,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1215,20 +1245,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1238,20 +1270,22 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerServer(ctx context.Context, mu var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1307,19 +1341,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Markets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Markets_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Markets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1327,19 +1363,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Market")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Market_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Market_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1347,19 +1385,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamMarket")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamMarket_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamMarket_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamMarket_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamMarket_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1367,19 +1407,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarkets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1387,19 +1429,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/BinaryOptionsMarket")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_BinaryOptionsMarket_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1407,19 +1451,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1427,19 +1473,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrderbooksV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1447,19 +1495,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamOrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1467,19 +1517,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrderbookUpdate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1487,19 +1539,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Orders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Orders_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Orders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1507,19 +1561,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Positions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Positions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Positions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Positions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1527,19 +1583,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/PositionsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_PositionsV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_PositionsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1547,19 +1605,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/LiquidablePositions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_LiquidablePositions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1567,19 +1627,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingPayments")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingPayments_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_FundingPayments_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1587,19 +1649,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/FundingRates")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingRates_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_FundingRates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_FundingRates_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1607,19 +1671,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamPositions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamPositions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamPositions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamPositions_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamPositions_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1627,19 +1693,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrders_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrders_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamOrders_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamOrders_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1647,19 +1715,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/Trades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_Trades_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_Trades_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1667,19 +1737,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/TradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_TradesV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_TradesV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1687,19 +1759,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTrades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTrades_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTrades_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamTrades_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamTrades_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1707,19 +1781,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamTradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamTradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1727,19 +1803,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountOrdersList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1747,19 +1825,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/SubaccountTradesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1767,19 +1847,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/OrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1787,19 +1869,21 @@ func RegisterInjectiveDerivativeExchangeRPCHandlerClient(ctx context.Context, mu ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_derivative_exchange_rpc.InjectiveDerivativeExchangeRPC/StreamOrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveDerivativeExchangeRPC_StreamOrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto index 6ebed93d..468da6c6 100644 --- a/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto +++ b/exchange/derivative_exchange_rpc/pb/injective_derivative_exchange_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveDerivativeExchangeRPC protocol buffer definition // @@ -124,6 +124,8 @@ message DerivativeMarketInfo { PerpetualMarketInfo perpetual_market_info = 18; PerpetualMarketFunding perpetual_market_funding = 19; ExpiryFuturesMarketInfo expiry_futures_market_info = 20; + // Minimum notional value for the order + string min_notional = 21; } message TokenMeta { @@ -250,6 +252,8 @@ message BinaryOptionsMarketInfo { string min_quantity_tick_size = 16; // Defines the settlement price of the market string settlement_price = 17; + // Defines the minimum notional value for the market + string min_notional = 18; } // Paging defines the structure for required params for handling pagination message Paging { @@ -670,7 +674,7 @@ message StreamPositionsRequest { } message StreamPositionsResponse { - // Updated Derivative Position + // Updated derivative Position DerivativePosition position = 1; // Operation timestamp in UNIX millis. sint64 timestamp = 2; diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go similarity index 61% rename from exchange/exchange_rpc/pb/injective_exchange_rpc.pb.go rename to exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go index 8903d4ed..9011281f 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveExchangeRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_exchange_rpc.proto +// source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -39,7 +39,7 @@ type GetTxRequest struct { func (x *GetTxRequest) Reset() { *x = GetTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -52,7 +52,7 @@ func (x *GetTxRequest) String() string { func (*GetTxRequest) ProtoMessage() {} func (x *GetTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65,7 +65,7 @@ func (x *GetTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxRequest.ProtoReflect.Descriptor instead. func (*GetTxRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{0} } func (x *GetTxRequest) GetHash() string { @@ -102,7 +102,7 @@ type GetTxResponse struct { func (x *GetTxResponse) Reset() { *x = GetTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -115,7 +115,7 @@ func (x *GetTxResponse) String() string { func (*GetTxResponse) ProtoMessage() {} func (x *GetTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -128,7 +128,7 @@ func (x *GetTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxResponse.ProtoReflect.Descriptor instead. func (*GetTxResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{1} } func (x *GetTxResponse) GetTxHash() string { @@ -196,7 +196,7 @@ type PrepareTxRequest struct { ChainId uint64 `protobuf:"varint,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` // Specify Ethereum address of a signer SignerAddress string `protobuf:"bytes,2,opt,name=signer_address,json=signerAddress,proto3" json:"signer_address,omitempty"` - // Account sequence number (nonce) of signer + // Deprecated: this field is ignored Sequence uint64 `protobuf:"varint,3,opt,name=sequence,proto3" json:"sequence,omitempty"` // Textual memo information to attach with tx Memo string `protobuf:"bytes,4,opt,name=memo,proto3" json:"memo,omitempty"` @@ -206,12 +206,14 @@ type PrepareTxRequest struct { Fee *CosmosTxFee `protobuf:"bytes,6,opt,name=fee,proto3" json:"fee,omitempty"` // List of Cosmos proto3-encoded Msgs to include in a single tx Msgs [][]byte `protobuf:"bytes,7,rep,name=msgs,proto3" json:"msgs,omitempty"` + // The wrapper of the EIP712 message, V1 or V2 + Eip712Wrapper string `protobuf:"bytes,8,opt,name=eip712_wrapper,json=eip712Wrapper,proto3" json:"eip712_wrapper,omitempty"` } func (x *PrepareTxRequest) Reset() { *x = PrepareTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -224,7 +226,7 @@ func (x *PrepareTxRequest) String() string { func (*PrepareTxRequest) ProtoMessage() {} func (x *PrepareTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -237,7 +239,7 @@ func (x *PrepareTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareTxRequest.ProtoReflect.Descriptor instead. func (*PrepareTxRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{2} } func (x *PrepareTxRequest) GetChainId() uint64 { @@ -289,6 +291,13 @@ func (x *PrepareTxRequest) GetMsgs() [][]byte { return nil } +func (x *PrepareTxRequest) GetEip712Wrapper() string { + if x != nil { + return x.Eip712Wrapper + } + return "" +} + type CosmosTxFee struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -306,7 +315,7 @@ type CosmosTxFee struct { func (x *CosmosTxFee) Reset() { *x = CosmosTxFee{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -319,7 +328,7 @@ func (x *CosmosTxFee) String() string { func (*CosmosTxFee) ProtoMessage() {} func (x *CosmosTxFee) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -332,7 +341,7 @@ func (x *CosmosTxFee) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosTxFee.ProtoReflect.Descriptor instead. func (*CosmosTxFee) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{3} } func (x *CosmosTxFee) GetPrice() []*CosmosCoin { @@ -370,7 +379,7 @@ type CosmosCoin struct { func (x *CosmosCoin) Reset() { *x = CosmosCoin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -383,7 +392,7 @@ func (x *CosmosCoin) String() string { func (*CosmosCoin) ProtoMessage() {} func (x *CosmosCoin) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -396,7 +405,7 @@ func (x *CosmosCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosCoin.ProtoReflect.Descriptor instead. func (*CosmosCoin) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{4} } func (x *CosmosCoin) GetDenom() string { @@ -435,7 +444,7 @@ type PrepareTxResponse struct { func (x *PrepareTxResponse) Reset() { *x = PrepareTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -448,7 +457,7 @@ func (x *PrepareTxResponse) String() string { func (*PrepareTxResponse) ProtoMessage() {} func (x *PrepareTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -461,7 +470,7 @@ func (x *PrepareTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareTxResponse.ProtoReflect.Descriptor instead. func (*PrepareTxResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{5} } func (x *PrepareTxResponse) GetData() string { @@ -532,7 +541,7 @@ type BroadcastTxRequest struct { func (x *BroadcastTxRequest) Reset() { *x = BroadcastTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -545,7 +554,7 @@ func (x *BroadcastTxRequest) String() string { func (*BroadcastTxRequest) ProtoMessage() {} func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -558,7 +567,7 @@ func (x *BroadcastTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastTxRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{6} } func (x *BroadcastTxRequest) GetChainId() uint64 { @@ -631,7 +640,7 @@ type CosmosPubKey struct { func (x *CosmosPubKey) Reset() { *x = CosmosPubKey{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -644,7 +653,7 @@ func (x *CosmosPubKey) String() string { func (*CosmosPubKey) ProtoMessage() {} func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -657,7 +666,7 @@ func (x *CosmosPubKey) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosPubKey.ProtoReflect.Descriptor instead. func (*CosmosPubKey) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{7} } func (x *CosmosPubKey) GetType() string { @@ -701,7 +710,7 @@ type BroadcastTxResponse struct { func (x *BroadcastTxResponse) Reset() { *x = BroadcastTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -714,7 +723,7 @@ func (x *BroadcastTxResponse) String() string { func (*BroadcastTxResponse) ProtoMessage() {} func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -727,7 +736,7 @@ func (x *BroadcastTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastTxResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{8} } func (x *BroadcastTxResponse) GetTxHash() string { @@ -808,7 +817,7 @@ type PrepareCosmosTxRequest struct { func (x *PrepareCosmosTxRequest) Reset() { *x = PrepareCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -821,7 +830,7 @@ func (x *PrepareCosmosTxRequest) String() string { func (*PrepareCosmosTxRequest) ProtoMessage() {} func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -834,7 +843,7 @@ func (x *PrepareCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxRequest.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{9} } func (x *PrepareCosmosTxRequest) GetChainId() uint64 { @@ -901,7 +910,7 @@ type PrepareCosmosTxResponse struct { func (x *PrepareCosmosTxResponse) Reset() { *x = PrepareCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -914,7 +923,7 @@ func (x *PrepareCosmosTxResponse) String() string { func (*PrepareCosmosTxResponse) ProtoMessage() {} func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -927,7 +936,7 @@ func (x *PrepareCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareCosmosTxResponse.ProtoReflect.Descriptor instead. func (*PrepareCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{10} } func (x *PrepareCosmosTxResponse) GetTx() []byte { @@ -990,7 +999,7 @@ type BroadcastCosmosTxRequest struct { func (x *BroadcastCosmosTxRequest) Reset() { *x = BroadcastCosmosTxRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1003,7 +1012,7 @@ func (x *BroadcastCosmosTxRequest) String() string { func (*BroadcastCosmosTxRequest) ProtoMessage() {} func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1016,7 +1025,7 @@ func (x *BroadcastCosmosTxRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxRequest.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{11} } func (x *BroadcastCosmosTxRequest) GetTx() []byte { @@ -1074,7 +1083,7 @@ type BroadcastCosmosTxResponse struct { func (x *BroadcastCosmosTxResponse) Reset() { *x = BroadcastCosmosTxResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1087,7 +1096,7 @@ func (x *BroadcastCosmosTxResponse) String() string { func (*BroadcastCosmosTxResponse) ProtoMessage() {} func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1100,7 +1109,7 @@ func (x *BroadcastCosmosTxResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BroadcastCosmosTxResponse.ProtoReflect.Descriptor instead. func (*BroadcastCosmosTxResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{12} } func (x *BroadcastCosmosTxResponse) GetTxHash() string { @@ -1168,7 +1177,7 @@ type GetFeePayerRequest struct { func (x *GetFeePayerRequest) Reset() { *x = GetFeePayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1181,7 +1190,7 @@ func (x *GetFeePayerRequest) String() string { func (*GetFeePayerRequest) ProtoMessage() {} func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1194,7 +1203,7 @@ func (x *GetFeePayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerRequest.ProtoReflect.Descriptor instead. func (*GetFeePayerRequest) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{13} } type GetFeePayerResponse struct { @@ -1211,7 +1220,7 @@ type GetFeePayerResponse struct { func (x *GetFeePayerResponse) Reset() { *x = GetFeePayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1224,7 +1233,7 @@ func (x *GetFeePayerResponse) String() string { func (*GetFeePayerResponse) ProtoMessage() {} func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1237,7 +1246,7 @@ func (x *GetFeePayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeePayerResponse.ProtoReflect.Descriptor instead. func (*GetFeePayerResponse) Descriptor() ([]byte, []int) { - return file_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP(), []int{14} } func (x *GetFeePayerResponse) GetFeePayer() string { @@ -1254,226 +1263,229 @@ func (x *GetFeePayerResponse) GetFeePayerPubKey() *CosmosPubKey { return nil } -var File_injective_exchange_rpc_proto protoreflect.FileDescriptor - -var file_injective_exchange_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x22, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x78, 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, 0x22, 0xd3, 0x01, 0x0a, 0x0d, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, - 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, - 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x22, 0xf6, 0x01, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, - 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, - 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0x7c, 0x0a, 0x0b, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x03, 0x67, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 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, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, - 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, - 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, - 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, - 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, - 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, - 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, - 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, - 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, - 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, - 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, - 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, +var File_goadesign_goagen_injective_exchange_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x22, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x78, + 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, 0x22, 0xd3, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, + 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, + 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x9d, 0x02, 0x0a, 0x10, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x35, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, + 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x69, + 0x70, 0x37, 0x31, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x65, 0x69, 0x70, 0x37, 0x31, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x22, 0x7c, 0x0a, 0x0b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, + 0x12, 0x38, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, + 0x6f, 0x69, 0x6e, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x61, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x67, 0x61, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x46, 0x65, 0x65, 0x22, + 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 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, 0x22, 0xc3, 0x01, 0x0a, 0x11, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, + 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, + 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, + 0x67, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x02, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, - 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, - 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, - 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, - 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, - 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, - 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, - 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, - 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, - 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, + 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, + 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, + 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x0c, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, + 0xd9, 0x01, 0x0a, 0x13, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, 0x6f, 0x67, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xe0, 0x01, 0x0a, 0x16, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x25, 0x0a, 0x0e, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x54, 0x78, 0x46, 0x65, 0x65, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x73, + 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xfa, + 0x01, 0x0a, 0x17, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x69, 0x67, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x75, 0x62, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x65, 0x65, + 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, + 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, + 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, + 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x22, 0xae, 0x01, 0x0a, 0x18, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, + 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x78, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, + 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xdf, 0x01, 0x0a, + 0x19, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, + 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x77, 0x5f, 0x6c, + 0x6f, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x61, 0x77, 0x4c, 0x6f, 0x67, + 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x14, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x66, 0x65, 0x65, 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x11, 0x66, 0x65, 0x65, + 0x5f, 0x70, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, + 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x32, 0x8c, 0x05, 0x0a, 0x14, 0x49, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x52, 0x0e, 0x66, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x50, 0x75, 0x62, 0x4b, - 0x65, 0x79, 0x32, 0x8c, 0x05, 0x0a, 0x14, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x54, 0x0a, 0x05, 0x47, - 0x65, 0x74, 0x54, 0x78, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, + 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, + 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x60, 0x0a, 0x09, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x12, 0x28, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, - 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x54, 0x78, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0f, 0x50, - 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x12, 0x2e, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x78, 0x0a, 0x11, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x54, 0x78, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x42, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, - 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, 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, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x54, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x66, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, 0x72, + 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, + 0x50, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x65, 0x50, 0x61, 0x79, 0x65, + 0x72, 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, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_injective_exchange_rpc_proto_rawDescOnce sync.Once - file_injective_exchange_rpc_proto_rawDescData = file_injective_exchange_rpc_proto_rawDesc + file_goadesign_goagen_injective_exchange_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData = file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc ) -func file_injective_exchange_rpc_proto_rawDescGZIP() []byte { - file_injective_exchange_rpc_proto_rawDescOnce.Do(func() { - file_injective_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_exchange_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_exchange_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_exchange_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData) }) - return file_injective_exchange_rpc_proto_rawDescData + return file_goadesign_goagen_injective_exchange_rpc_proto_rawDescData } -var file_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 15) -var file_injective_exchange_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = []interface{}{ (*GetTxRequest)(nil), // 0: injective_exchange_rpc.GetTxRequest (*GetTxResponse)(nil), // 1: injective_exchange_rpc.GetTxResponse (*PrepareTxRequest)(nil), // 2: injective_exchange_rpc.PrepareTxRequest @@ -1490,7 +1502,7 @@ var file_injective_exchange_rpc_proto_goTypes = []interface{}{ (*GetFeePayerRequest)(nil), // 13: injective_exchange_rpc.GetFeePayerRequest (*GetFeePayerResponse)(nil), // 14: injective_exchange_rpc.GetFeePayerResponse } -var file_injective_exchange_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_exchange_rpc_proto_depIdxs = []int32{ 3, // 0: injective_exchange_rpc.PrepareTxRequest.fee:type_name -> injective_exchange_rpc.CosmosTxFee 4, // 1: injective_exchange_rpc.CosmosTxFee.price:type_name -> injective_exchange_rpc.CosmosCoin 7, // 2: injective_exchange_rpc.BroadcastTxRequest.pub_key:type_name -> injective_exchange_rpc.CosmosPubKey @@ -1517,13 +1529,13 @@ var file_injective_exchange_rpc_proto_depIdxs = []int32{ 0, // [0:7] is the sub-list for field type_name } -func init() { file_injective_exchange_rpc_proto_init() } -func file_injective_exchange_rpc_proto_init() { - if File_injective_exchange_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_exchange_rpc_proto_init() } +func file_goadesign_goagen_injective_exchange_rpc_proto_init() { + if File_goadesign_goagen_injective_exchange_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxRequest); i { case 0: return &v.state @@ -1535,7 +1547,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxResponse); i { case 0: return &v.state @@ -1547,7 +1559,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareTxRequest); i { case 0: return &v.state @@ -1559,7 +1571,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CosmosTxFee); i { case 0: return &v.state @@ -1571,7 +1583,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CosmosCoin); i { case 0: return &v.state @@ -1583,7 +1595,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareTxResponse); i { case 0: return &v.state @@ -1595,7 +1607,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BroadcastTxRequest); i { case 0: return &v.state @@ -1607,7 +1619,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CosmosPubKey); i { case 0: return &v.state @@ -1619,7 +1631,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BroadcastTxResponse); i { case 0: return &v.state @@ -1631,7 +1643,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareCosmosTxRequest); i { case 0: return &v.state @@ -1643,7 +1655,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PrepareCosmosTxResponse); i { case 0: return &v.state @@ -1655,7 +1667,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BroadcastCosmosTxRequest); i { case 0: return &v.state @@ -1667,7 +1679,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BroadcastCosmosTxResponse); i { case 0: return &v.state @@ -1679,7 +1691,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFeePayerRequest); i { case 0: return &v.state @@ -1691,7 +1703,7 @@ func file_injective_exchange_rpc_proto_init() { return nil } } - file_injective_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFeePayerResponse); i { case 0: return &v.state @@ -1708,18 +1720,18 @@ func file_injective_exchange_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_exchange_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 15, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_exchange_rpc_proto_goTypes, - DependencyIndexes: file_injective_exchange_rpc_proto_depIdxs, - MessageInfos: file_injective_exchange_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_exchange_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_exchange_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_exchange_rpc_proto_msgTypes, }.Build() - File_injective_exchange_rpc_proto = out.File - file_injective_exchange_rpc_proto_rawDesc = nil - file_injective_exchange_rpc_proto_goTypes = nil - file_injective_exchange_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_exchange_rpc_proto = out.File + file_goadesign_goagen_injective_exchange_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_exchange_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_exchange_rpc_proto_depIdxs = nil } diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc_grpc.pb.go b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go similarity index 98% rename from exchange/exchange_rpc/pb/injective_exchange_rpc_grpc.pb.go rename to exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go index dc5460ab..c7e2827d 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc_grpc.pb.go +++ b/exchange/exchange_rpc/pb/goadesign_goagen_injective_exchange_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_exchange_rpc.proto package injective_exchange_rpcpb @@ -289,5 +293,5 @@ var InjectiveExchangeRPC_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "injective_exchange_rpc.proto", + Metadata: "goadesign_goagen_injective_exchange_rpc.proto", } diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go index 8428a313..d5d28a2a 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.pb.gw.go @@ -247,20 +247,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_GetTx_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_GetTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_GetTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_GetTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -270,20 +272,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_PrepareTx_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_PrepareTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -293,20 +297,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_BroadcastTx_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_BroadcastTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -316,20 +322,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_PrepareCosmosTx_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_PrepareCosmosTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -339,20 +347,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_BroadcastCosmosTx_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -362,20 +372,22 @@ func RegisterInjectiveExchangeRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExchangeRPC_GetFeePayer_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_GetFeePayer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -424,19 +436,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_GetTx_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_GetTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_GetTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_GetTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -444,19 +458,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_PrepareTx_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_PrepareTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_PrepareTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -464,19 +480,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_BroadcastTx_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_BroadcastTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_BroadcastTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -484,19 +502,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/PrepareCosmosTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_PrepareCosmosTx_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_PrepareCosmosTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_PrepareCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -504,19 +524,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/BroadcastCosmosTx")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_BroadcastCosmosTx_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_BroadcastCosmosTx_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -524,19 +546,21 @@ func RegisterInjectiveExchangeRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer", runtime.WithHTTPPathPattern("/injective_exchange_rpc.InjectiveExchangeRPC/GetFeePayer")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExchangeRPC_GetFeePayer_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExchangeRPC_GetFeePayer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExchangeRPC_GetFeePayer_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto index 7654becd..54536b59 100644 --- a/exchange/exchange_rpc/pb/injective_exchange_rpc.proto +++ b/exchange/exchange_rpc/pb/injective_exchange_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveExchangeRPC protocol buffer definition // @@ -57,7 +57,7 @@ message PrepareTxRequest { uint64 chain_id = 1; // Specify Ethereum address of a signer string signer_address = 2; - // Account sequence number (nonce) of signer + // Deprecated: this field is ignored uint64 sequence = 3; // Textual memo information to attach with tx string memo = 4; @@ -67,6 +67,8 @@ message PrepareTxRequest { CosmosTxFee fee = 6; // List of Cosmos proto3-encoded Msgs to include in a single tx repeated bytes msgs = 7; + // The wrapper of the EIP712 message, V1 or V2 + string eip712_wrapper = 8; } message CosmosTxFee { diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go similarity index 60% rename from exchange/explorer_rpc/pb/injective_explorer_rpc.pb.go rename to exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go index 298f7e3f..d59b7740 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveExplorerRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_explorer_rpc.proto +// source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -57,7 +57,7 @@ type GetAccountTxsRequest struct { func (x *GetAccountTxsRequest) Reset() { *x = GetAccountTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -70,7 +70,7 @@ func (x *GetAccountTxsRequest) String() string { func (*GetAccountTxsRequest) ProtoMessage() {} func (x *GetAccountTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83,7 +83,7 @@ func (x *GetAccountTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAccountTxsRequest.ProtoReflect.Descriptor instead. func (*GetAccountTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{0} } func (x *GetAccountTxsRequest) GetAddress() string { @@ -182,7 +182,7 @@ type GetAccountTxsResponse struct { func (x *GetAccountTxsResponse) Reset() { *x = GetAccountTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -195,7 +195,7 @@ func (x *GetAccountTxsResponse) String() string { func (*GetAccountTxsResponse) ProtoMessage() {} func (x *GetAccountTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -208,7 +208,7 @@ func (x *GetAccountTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAccountTxsResponse.ProtoReflect.Descriptor instead. func (*GetAccountTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{1} } func (x *GetAccountTxsResponse) GetPaging() *Paging { @@ -246,7 +246,7 @@ type Paging struct { func (x *Paging) Reset() { *x = Paging{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -259,7 +259,7 @@ func (x *Paging) String() string { func (*Paging) ProtoMessage() {} func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -272,7 +272,7 @@ func (x *Paging) ProtoReflect() protoreflect.Message { // Deprecated: Use Paging.ProtoReflect.Descriptor instead. func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{2} } func (x *Paging) GetTotal() int64 { @@ -346,7 +346,7 @@ type TxDetailData struct { func (x *TxDetailData) Reset() { *x = TxDetailData{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -359,7 +359,7 @@ func (x *TxDetailData) String() string { func (*TxDetailData) ProtoMessage() {} func (x *TxDetailData) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -372,7 +372,7 @@ func (x *TxDetailData) ProtoReflect() protoreflect.Message { // Deprecated: Use TxDetailData.ProtoReflect.Descriptor instead. func (*TxDetailData) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{3} } func (x *TxDetailData) GetId() string { @@ -536,7 +536,7 @@ type GasFee struct { func (x *GasFee) Reset() { *x = GasFee{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -549,7 +549,7 @@ func (x *GasFee) String() string { func (*GasFee) ProtoMessage() {} func (x *GasFee) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -562,7 +562,7 @@ func (x *GasFee) ProtoReflect() protoreflect.Message { // Deprecated: Use GasFee.ProtoReflect.Descriptor instead. func (*GasFee) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{4} } func (x *GasFee) GetAmount() []*CosmosCoin { @@ -607,7 +607,7 @@ type CosmosCoin struct { func (x *CosmosCoin) Reset() { *x = CosmosCoin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -620,7 +620,7 @@ func (x *CosmosCoin) String() string { func (*CosmosCoin) ProtoMessage() {} func (x *CosmosCoin) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -633,7 +633,7 @@ func (x *CosmosCoin) ProtoReflect() protoreflect.Message { // Deprecated: Use CosmosCoin.ProtoReflect.Descriptor instead. func (*CosmosCoin) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{5} } func (x *CosmosCoin) GetDenom() string { @@ -662,7 +662,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -675,7 +675,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -688,7 +688,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{6} } func (x *Event) GetType() string { @@ -720,7 +720,7 @@ type Signature struct { func (x *Signature) Reset() { *x = Signature{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -733,7 +733,7 @@ func (x *Signature) String() string { func (*Signature) ProtoMessage() {} func (x *Signature) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -746,7 +746,7 @@ func (x *Signature) ProtoReflect() protoreflect.Message { // Deprecated: Use Signature.ProtoReflect.Descriptor instead. func (*Signature) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{7} } func (x *Signature) GetPubkey() string { @@ -793,7 +793,7 @@ type GetContractTxsRequest struct { func (x *GetContractTxsRequest) Reset() { *x = GetContractTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -806,7 +806,7 @@ func (x *GetContractTxsRequest) String() string { func (*GetContractTxsRequest) ProtoMessage() {} func (x *GetContractTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -819,7 +819,7 @@ func (x *GetContractTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetContractTxsRequest.ProtoReflect.Descriptor instead. func (*GetContractTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{8} } func (x *GetContractTxsRequest) GetAddress() string { @@ -869,7 +869,7 @@ type GetContractTxsResponse struct { func (x *GetContractTxsResponse) Reset() { *x = GetContractTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -882,7 +882,7 @@ func (x *GetContractTxsResponse) String() string { func (*GetContractTxsResponse) ProtoMessage() {} func (x *GetContractTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -895,7 +895,7 @@ func (x *GetContractTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetContractTxsResponse.ProtoReflect.Descriptor instead. func (*GetContractTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{9} } func (x *GetContractTxsResponse) GetPaging() *Paging { @@ -912,6 +912,153 @@ func (x *GetContractTxsResponse) GetData() []*TxDetailData { return nil } +type GetContractTxsV2Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Address of contract + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // Height of the block + Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // Unix timestamp (UTC) in milliseconds + From int64 `protobuf:"zigzag64,3,opt,name=from,proto3" json:"from,omitempty"` + // Unix timestamp (UTC) in milliseconds + To int64 `protobuf:"zigzag64,4,opt,name=to,proto3" json:"to,omitempty"` + Limit int32 `protobuf:"zigzag32,5,opt,name=limit,proto3" json:"limit,omitempty"` + // Pagination token + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *GetContractTxsV2Request) Reset() { + *x = GetContractTxsV2Request{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetContractTxsV2Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetContractTxsV2Request) ProtoMessage() {} + +func (x *GetContractTxsV2Request) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[10] + 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 GetContractTxsV2Request.ProtoReflect.Descriptor instead. +func (*GetContractTxsV2Request) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *GetContractTxsV2Request) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *GetContractTxsV2Request) GetHeight() uint64 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *GetContractTxsV2Request) GetFrom() int64 { + if x != nil { + return x.From + } + return 0 +} + +func (x *GetContractTxsV2Request) GetTo() int64 { + if x != nil { + return x.To + } + return 0 +} + +func (x *GetContractTxsV2Request) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *GetContractTxsV2Request) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type GetContractTxsV2Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Next []string `protobuf:"bytes,1,rep,name=next,proto3" json:"next,omitempty"` + Data []*TxDetailData `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetContractTxsV2Response) Reset() { + *x = GetContractTxsV2Response{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetContractTxsV2Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetContractTxsV2Response) ProtoMessage() {} + +func (x *GetContractTxsV2Response) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_explorer_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 GetContractTxsV2Response.ProtoReflect.Descriptor instead. +func (*GetContractTxsV2Response) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *GetContractTxsV2Response) GetNext() []string { + if x != nil { + return x.Next + } + return nil +} + +func (x *GetContractTxsV2Response) GetData() []*TxDetailData { + if x != nil { + return x.Data + } + return nil +} + type GetBlocksRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -920,12 +1067,16 @@ type GetBlocksRequest struct { Before uint64 `protobuf:"varint,1,opt,name=before,proto3" json:"before,omitempty"` After uint64 `protobuf:"varint,2,opt,name=after,proto3" json:"after,omitempty"` Limit int32 `protobuf:"zigzag32,3,opt,name=limit,proto3" json:"limit,omitempty"` + // Unix timestamp (UTC) in milliseconds + From uint64 `protobuf:"varint,4,opt,name=from,proto3" json:"from,omitempty"` + // Unix timestamp (UTC) in milliseconds + To uint64 `protobuf:"varint,5,opt,name=to,proto3" json:"to,omitempty"` } func (x *GetBlocksRequest) Reset() { *x = GetBlocksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -938,7 +1089,7 @@ func (x *GetBlocksRequest) String() string { func (*GetBlocksRequest) ProtoMessage() {} func (x *GetBlocksRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -951,7 +1102,7 @@ func (x *GetBlocksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlocksRequest.ProtoReflect.Descriptor instead. func (*GetBlocksRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{12} } func (x *GetBlocksRequest) GetBefore() uint64 { @@ -975,6 +1126,20 @@ func (x *GetBlocksRequest) GetLimit() int32 { return 0 } +func (x *GetBlocksRequest) GetFrom() uint64 { + if x != nil { + return x.From + } + return 0 +} + +func (x *GetBlocksRequest) GetTo() uint64 { + if x != nil { + return x.To + } + return 0 +} + type GetBlocksResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -987,7 +1152,7 @@ type GetBlocksResponse struct { func (x *GetBlocksResponse) Reset() { *x = GetBlocksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1000,7 +1165,7 @@ func (x *GetBlocksResponse) String() string { func (*GetBlocksResponse) ProtoMessage() {} func (x *GetBlocksResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1013,7 +1178,7 @@ func (x *GetBlocksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlocksResponse.ProtoReflect.Descriptor instead. func (*GetBlocksResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{13} } func (x *GetBlocksResponse) GetPaging() *Paging { @@ -1049,7 +1214,7 @@ type BlockInfo struct { func (x *BlockInfo) Reset() { *x = BlockInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1227,7 @@ func (x *BlockInfo) String() string { func (*BlockInfo) ProtoMessage() {} func (x *BlockInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1075,7 +1240,7 @@ func (x *BlockInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockInfo.ProtoReflect.Descriptor instead. func (*BlockInfo) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{14} } func (x *BlockInfo) GetHeight() uint64 { @@ -1164,7 +1329,7 @@ type TxDataRPC struct { func (x *TxDataRPC) Reset() { *x = TxDataRPC{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1177,7 +1342,7 @@ func (x *TxDataRPC) String() string { func (*TxDataRPC) ProtoMessage() {} func (x *TxDataRPC) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1190,7 +1355,7 @@ func (x *TxDataRPC) ProtoReflect() protoreflect.Message { // Deprecated: Use TxDataRPC.ProtoReflect.Descriptor instead. func (*TxDataRPC) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{15} } func (x *TxDataRPC) GetId() string { @@ -1274,7 +1439,7 @@ type GetBlockRequest struct { func (x *GetBlockRequest) Reset() { *x = GetBlockRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1287,7 +1452,7 @@ func (x *GetBlockRequest) String() string { func (*GetBlockRequest) ProtoMessage() {} func (x *GetBlockRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1300,7 +1465,7 @@ func (x *GetBlockRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockRequest.ProtoReflect.Descriptor instead. func (*GetBlockRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{16} } func (x *GetBlockRequest) GetId() string { @@ -1325,7 +1490,7 @@ type GetBlockResponse struct { func (x *GetBlockResponse) Reset() { *x = GetBlockResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1338,7 +1503,7 @@ func (x *GetBlockResponse) String() string { func (*GetBlockResponse) ProtoMessage() {} func (x *GetBlockResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1351,7 +1516,7 @@ func (x *GetBlockResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockResponse.ProtoReflect.Descriptor instead. func (*GetBlockResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{15} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{17} } func (x *GetBlockResponse) GetS() string { @@ -1395,7 +1560,7 @@ type BlockDetailInfo struct { func (x *BlockDetailInfo) Reset() { *x = BlockDetailInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1408,7 +1573,7 @@ func (x *BlockDetailInfo) String() string { func (*BlockDetailInfo) ProtoMessage() {} func (x *BlockDetailInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1421,7 +1586,7 @@ func (x *BlockDetailInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockDetailInfo.ProtoReflect.Descriptor instead. func (*BlockDetailInfo) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{16} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{18} } func (x *BlockDetailInfo) GetHeight() uint64 { @@ -1520,7 +1685,7 @@ type TxData struct { func (x *TxData) Reset() { *x = TxData{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1533,7 +1698,7 @@ func (x *TxData) String() string { func (*TxData) ProtoMessage() {} func (x *TxData) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1546,7 +1711,7 @@ func (x *TxData) ProtoReflect() protoreflect.Message { // Deprecated: Use TxData.ProtoReflect.Descriptor instead. func (*TxData) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{17} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{19} } func (x *TxData) GetId() string { @@ -1642,7 +1807,7 @@ type GetValidatorsRequest struct { func (x *GetValidatorsRequest) Reset() { *x = GetValidatorsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1655,7 +1820,7 @@ func (x *GetValidatorsRequest) String() string { func (*GetValidatorsRequest) ProtoMessage() {} func (x *GetValidatorsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1668,7 +1833,7 @@ func (x *GetValidatorsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorsRequest.ProtoReflect.Descriptor instead. func (*GetValidatorsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{18} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{20} } type GetValidatorsResponse struct { @@ -1686,7 +1851,7 @@ type GetValidatorsResponse struct { func (x *GetValidatorsResponse) Reset() { *x = GetValidatorsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1699,7 +1864,7 @@ func (x *GetValidatorsResponse) String() string { func (*GetValidatorsResponse) ProtoMessage() {} func (x *GetValidatorsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1712,7 +1877,7 @@ func (x *GetValidatorsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorsResponse.ProtoReflect.Descriptor instead. func (*GetValidatorsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{19} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{21} } func (x *GetValidatorsResponse) GetS() string { @@ -1772,7 +1937,7 @@ type Validator struct { func (x *Validator) Reset() { *x = Validator{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1785,7 +1950,7 @@ func (x *Validator) String() string { func (*Validator) ProtoMessage() {} func (x *Validator) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1798,7 +1963,7 @@ func (x *Validator) ProtoReflect() protoreflect.Message { // Deprecated: Use Validator.ProtoReflect.Descriptor instead. func (*Validator) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{20} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{22} } func (x *Validator) GetId() string { @@ -1978,7 +2143,7 @@ type ValidatorDescription struct { func (x *ValidatorDescription) Reset() { *x = ValidatorDescription{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1991,7 +2156,7 @@ func (x *ValidatorDescription) String() string { func (*ValidatorDescription) ProtoMessage() {} func (x *ValidatorDescription) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2004,7 +2169,7 @@ func (x *ValidatorDescription) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorDescription.ProtoReflect.Descriptor instead. func (*ValidatorDescription) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{21} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{23} } func (x *ValidatorDescription) GetMoniker() string { @@ -2061,7 +2226,7 @@ type ValidatorUptime struct { func (x *ValidatorUptime) Reset() { *x = ValidatorUptime{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2074,7 +2239,7 @@ func (x *ValidatorUptime) String() string { func (*ValidatorUptime) ProtoMessage() {} func (x *ValidatorUptime) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2087,7 +2252,7 @@ func (x *ValidatorUptime) ProtoReflect() protoreflect.Message { // Deprecated: Use ValidatorUptime.ProtoReflect.Descriptor instead. func (*ValidatorUptime) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{22} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{24} } func (x *ValidatorUptime) GetBlockNumber() uint64 { @@ -2121,7 +2286,7 @@ type SlashingEvent struct { func (x *SlashingEvent) Reset() { *x = SlashingEvent{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2134,7 +2299,7 @@ func (x *SlashingEvent) String() string { func (*SlashingEvent) ProtoMessage() {} func (x *SlashingEvent) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2147,7 +2312,7 @@ func (x *SlashingEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use SlashingEvent.ProtoReflect.Descriptor instead. func (*SlashingEvent) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{23} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{25} } func (x *SlashingEvent) GetBlockNumber() uint64 { @@ -2210,7 +2375,7 @@ type GetValidatorRequest struct { func (x *GetValidatorRequest) Reset() { *x = GetValidatorRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2223,7 +2388,7 @@ func (x *GetValidatorRequest) String() string { func (*GetValidatorRequest) ProtoMessage() {} func (x *GetValidatorRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2236,7 +2401,7 @@ func (x *GetValidatorRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorRequest.ProtoReflect.Descriptor instead. func (*GetValidatorRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{24} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{26} } func (x *GetValidatorRequest) GetAddress() string { @@ -2261,7 +2426,7 @@ type GetValidatorResponse struct { func (x *GetValidatorResponse) Reset() { *x = GetValidatorResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2274,7 +2439,7 @@ func (x *GetValidatorResponse) String() string { func (*GetValidatorResponse) ProtoMessage() {} func (x *GetValidatorResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2287,7 +2452,7 @@ func (x *GetValidatorResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorResponse.ProtoReflect.Descriptor instead. func (*GetValidatorResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{25} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{27} } func (x *GetValidatorResponse) GetS() string { @@ -2322,7 +2487,7 @@ type GetValidatorUptimeRequest struct { func (x *GetValidatorUptimeRequest) Reset() { *x = GetValidatorUptimeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2335,7 +2500,7 @@ func (x *GetValidatorUptimeRequest) String() string { func (*GetValidatorUptimeRequest) ProtoMessage() {} func (x *GetValidatorUptimeRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2348,7 +2513,7 @@ func (x *GetValidatorUptimeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorUptimeRequest.ProtoReflect.Descriptor instead. func (*GetValidatorUptimeRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{26} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{28} } func (x *GetValidatorUptimeRequest) GetAddress() string { @@ -2373,7 +2538,7 @@ type GetValidatorUptimeResponse struct { func (x *GetValidatorUptimeResponse) Reset() { *x = GetValidatorUptimeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2386,7 +2551,7 @@ func (x *GetValidatorUptimeResponse) String() string { func (*GetValidatorUptimeResponse) ProtoMessage() {} func (x *GetValidatorUptimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2399,7 +2564,7 @@ func (x *GetValidatorUptimeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetValidatorUptimeResponse.ProtoReflect.Descriptor instead. func (*GetValidatorUptimeResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{27} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{29} } func (x *GetValidatorUptimeResponse) GetS() string { @@ -2449,7 +2614,7 @@ type GetTxsRequest struct { func (x *GetTxsRequest) Reset() { *x = GetTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2462,7 +2627,7 @@ func (x *GetTxsRequest) String() string { func (*GetTxsRequest) ProtoMessage() {} func (x *GetTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2475,7 +2640,7 @@ func (x *GetTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxsRequest.ProtoReflect.Descriptor instead. func (*GetTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{28} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{30} } func (x *GetTxsRequest) GetBefore() uint64 { @@ -2567,7 +2732,7 @@ type GetTxsResponse struct { func (x *GetTxsResponse) Reset() { *x = GetTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2580,7 +2745,7 @@ func (x *GetTxsResponse) String() string { func (*GetTxsResponse) ProtoMessage() {} func (x *GetTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2593,7 +2758,7 @@ func (x *GetTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxsResponse.ProtoReflect.Descriptor instead. func (*GetTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{29} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{31} } func (x *GetTxsResponse) GetPaging() *Paging { @@ -2621,7 +2786,7 @@ type GetTxByTxHashRequest struct { func (x *GetTxByTxHashRequest) Reset() { *x = GetTxByTxHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2634,7 +2799,7 @@ func (x *GetTxByTxHashRequest) String() string { func (*GetTxByTxHashRequest) ProtoMessage() {} func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2647,7 +2812,7 @@ func (x *GetTxByTxHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashRequest.ProtoReflect.Descriptor instead. func (*GetTxByTxHashRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{30} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} } func (x *GetTxByTxHashRequest) GetHash() string { @@ -2672,7 +2837,7 @@ type GetTxByTxHashResponse struct { func (x *GetTxByTxHashResponse) Reset() { *x = GetTxByTxHashResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2685,7 +2850,7 @@ func (x *GetTxByTxHashResponse) String() string { func (*GetTxByTxHashResponse) ProtoMessage() {} func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2698,7 +2863,7 @@ func (x *GetTxByTxHashResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTxByTxHashResponse.ProtoReflect.Descriptor instead. func (*GetTxByTxHashResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{31} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} } func (x *GetTxByTxHashResponse) GetS() string { @@ -2738,7 +2903,7 @@ type GetPeggyDepositTxsRequest struct { func (x *GetPeggyDepositTxsRequest) Reset() { *x = GetPeggyDepositTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2751,7 +2916,7 @@ func (x *GetPeggyDepositTxsRequest) String() string { func (*GetPeggyDepositTxsRequest) ProtoMessage() {} func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2764,7 +2929,7 @@ func (x *GetPeggyDepositTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{32} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} } func (x *GetPeggyDepositTxsRequest) GetSender() string { @@ -2806,7 +2971,7 @@ type GetPeggyDepositTxsResponse struct { func (x *GetPeggyDepositTxsResponse) Reset() { *x = GetPeggyDepositTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2819,7 +2984,7 @@ func (x *GetPeggyDepositTxsResponse) String() string { func (*GetPeggyDepositTxsResponse) ProtoMessage() {} func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2832,7 +2997,7 @@ func (x *GetPeggyDepositTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyDepositTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyDepositTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{33} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} } func (x *GetPeggyDepositTxsResponse) GetField() []*PeggyDepositTx { @@ -2875,7 +3040,7 @@ type PeggyDepositTx struct { func (x *PeggyDepositTx) Reset() { *x = PeggyDepositTx{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2888,7 +3053,7 @@ func (x *PeggyDepositTx) String() string { func (*PeggyDepositTx) ProtoMessage() {} func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2901,7 +3066,7 @@ func (x *PeggyDepositTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyDepositTx.ProtoReflect.Descriptor instead. func (*PeggyDepositTx) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{34} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} } func (x *PeggyDepositTx) GetSender() string { @@ -3004,7 +3169,7 @@ type GetPeggyWithdrawalTxsRequest struct { func (x *GetPeggyWithdrawalTxsRequest) Reset() { *x = GetPeggyWithdrawalTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3017,7 +3182,7 @@ func (x *GetPeggyWithdrawalTxsRequest) String() string { func (*GetPeggyWithdrawalTxsRequest) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3030,7 +3195,7 @@ func (x *GetPeggyWithdrawalTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsRequest.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{35} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} } func (x *GetPeggyWithdrawalTxsRequest) GetSender() string { @@ -3072,7 +3237,7 @@ type GetPeggyWithdrawalTxsResponse struct { func (x *GetPeggyWithdrawalTxsResponse) Reset() { *x = GetPeggyWithdrawalTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3085,7 +3250,7 @@ func (x *GetPeggyWithdrawalTxsResponse) String() string { func (*GetPeggyWithdrawalTxsResponse) ProtoMessage() {} func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3098,7 +3263,7 @@ func (x *GetPeggyWithdrawalTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPeggyWithdrawalTxsResponse.ProtoReflect.Descriptor instead. func (*GetPeggyWithdrawalTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{36} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} } func (x *GetPeggyWithdrawalTxsResponse) GetField() []*PeggyWithdrawalTx { @@ -3151,7 +3316,7 @@ type PeggyWithdrawalTx struct { func (x *PeggyWithdrawalTx) Reset() { *x = PeggyWithdrawalTx{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3164,7 +3329,7 @@ func (x *PeggyWithdrawalTx) String() string { func (*PeggyWithdrawalTx) ProtoMessage() {} func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3177,7 +3342,7 @@ func (x *PeggyWithdrawalTx) ProtoReflect() protoreflect.Message { // Deprecated: Use PeggyWithdrawalTx.ProtoReflect.Descriptor instead. func (*PeggyWithdrawalTx) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{37} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} } func (x *PeggyWithdrawalTx) GetSender() string { @@ -3310,7 +3475,7 @@ type GetIBCTransferTxsRequest struct { func (x *GetIBCTransferTxsRequest) Reset() { *x = GetIBCTransferTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3323,7 +3488,7 @@ func (x *GetIBCTransferTxsRequest) String() string { func (*GetIBCTransferTxsRequest) ProtoMessage() {} func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3336,7 +3501,7 @@ func (x *GetIBCTransferTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsRequest.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{38} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} } func (x *GetIBCTransferTxsRequest) GetSender() string { @@ -3406,7 +3571,7 @@ type GetIBCTransferTxsResponse struct { func (x *GetIBCTransferTxsResponse) Reset() { *x = GetIBCTransferTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3419,7 +3584,7 @@ func (x *GetIBCTransferTxsResponse) String() string { func (*GetIBCTransferTxsResponse) ProtoMessage() {} func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3432,7 +3597,7 @@ func (x *GetIBCTransferTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetIBCTransferTxsResponse.ProtoReflect.Descriptor instead. func (*GetIBCTransferTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{39} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} } func (x *GetIBCTransferTxsResponse) GetField() []*IBCTransferTx { @@ -3484,7 +3649,7 @@ type IBCTransferTx struct { func (x *IBCTransferTx) Reset() { *x = IBCTransferTx{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3497,7 +3662,7 @@ func (x *IBCTransferTx) String() string { func (*IBCTransferTx) ProtoMessage() {} func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3510,7 +3675,7 @@ func (x *IBCTransferTx) ProtoReflect() protoreflect.Message { // Deprecated: Use IBCTransferTx.ProtoReflect.Descriptor instead. func (*IBCTransferTx) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{40} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} } func (x *IBCTransferTx) GetSender() string { @@ -3638,7 +3803,7 @@ type GetWasmCodesRequest struct { func (x *GetWasmCodesRequest) Reset() { *x = GetWasmCodesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3651,7 +3816,7 @@ func (x *GetWasmCodesRequest) String() string { func (*GetWasmCodesRequest) ProtoMessage() {} func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3664,7 +3829,7 @@ func (x *GetWasmCodesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodesRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{41} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} } func (x *GetWasmCodesRequest) GetLimit() int32 { @@ -3700,7 +3865,7 @@ type GetWasmCodesResponse struct { func (x *GetWasmCodesResponse) Reset() { *x = GetWasmCodesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3713,7 +3878,7 @@ func (x *GetWasmCodesResponse) String() string { func (*GetWasmCodesResponse) ProtoMessage() {} func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3726,7 +3891,7 @@ func (x *GetWasmCodesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodesResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodesResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{42} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} } func (x *GetWasmCodesResponse) GetPaging() *Paging { @@ -3780,7 +3945,7 @@ type WasmCode struct { func (x *WasmCode) Reset() { *x = WasmCode{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3793,7 +3958,7 @@ func (x *WasmCode) String() string { func (*WasmCode) ProtoMessage() {} func (x *WasmCode) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3806,7 +3971,7 @@ func (x *WasmCode) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCode.ProtoReflect.Descriptor instead. func (*WasmCode) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{43} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} } func (x *WasmCode) GetCodeId() uint64 { @@ -3914,7 +4079,7 @@ type Checksum struct { func (x *Checksum) Reset() { *x = Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3927,7 +4092,7 @@ func (x *Checksum) String() string { func (*Checksum) ProtoMessage() {} func (x *Checksum) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3940,7 +4105,7 @@ func (x *Checksum) ProtoReflect() protoreflect.Message { // Deprecated: Use Checksum.ProtoReflect.Descriptor instead. func (*Checksum) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{44} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} } func (x *Checksum) GetAlgorithm() string { @@ -3971,7 +4136,7 @@ type ContractPermission struct { func (x *ContractPermission) Reset() { *x = ContractPermission{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3984,7 +4149,7 @@ func (x *ContractPermission) String() string { func (*ContractPermission) ProtoMessage() {} func (x *ContractPermission) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3997,7 +4162,7 @@ func (x *ContractPermission) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractPermission.ProtoReflect.Descriptor instead. func (*ContractPermission) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{45} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} } func (x *ContractPermission) GetAccessType() int32 { @@ -4026,7 +4191,7 @@ type GetWasmCodeByIDRequest struct { func (x *GetWasmCodeByIDRequest) Reset() { *x = GetWasmCodeByIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4039,7 +4204,7 @@ func (x *GetWasmCodeByIDRequest) String() string { func (*GetWasmCodeByIDRequest) ProtoMessage() {} func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4052,7 +4217,7 @@ func (x *GetWasmCodeByIDRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDRequest.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{46} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} } func (x *GetWasmCodeByIDRequest) GetCodeId() int64 { @@ -4098,7 +4263,7 @@ type GetWasmCodeByIDResponse struct { func (x *GetWasmCodeByIDResponse) Reset() { *x = GetWasmCodeByIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4111,7 +4276,7 @@ func (x *GetWasmCodeByIDResponse) String() string { func (*GetWasmCodeByIDResponse) ProtoMessage() {} func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4124,7 +4289,7 @@ func (x *GetWasmCodeByIDResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmCodeByIDResponse.ProtoReflect.Descriptor instead. func (*GetWasmCodeByIDResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{47} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} } func (x *GetWasmCodeByIDResponse) GetCodeId() uint64 { @@ -4236,7 +4401,7 @@ type GetWasmContractsRequest struct { func (x *GetWasmContractsRequest) Reset() { *x = GetWasmContractsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4249,7 +4414,7 @@ func (x *GetWasmContractsRequest) String() string { func (*GetWasmContractsRequest) ProtoMessage() {} func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4262,7 +4427,7 @@ func (x *GetWasmContractsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{48} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} } func (x *GetWasmContractsRequest) GetLimit() int32 { @@ -4326,7 +4491,7 @@ type GetWasmContractsResponse struct { func (x *GetWasmContractsResponse) Reset() { *x = GetWasmContractsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4339,7 +4504,7 @@ func (x *GetWasmContractsResponse) String() string { func (*GetWasmContractsResponse) ProtoMessage() {} func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[49] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4352,7 +4517,7 @@ func (x *GetWasmContractsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractsResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{49} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} } func (x *GetWasmContractsResponse) GetPaging() *Paging { @@ -4413,7 +4578,7 @@ type WasmContract struct { func (x *WasmContract) Reset() { *x = WasmContract{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4426,7 +4591,7 @@ func (x *WasmContract) String() string { func (*WasmContract) ProtoMessage() {} func (x *WasmContract) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[50] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4439,7 +4604,7 @@ func (x *WasmContract) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmContract.ProtoReflect.Descriptor instead. func (*WasmContract) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{50} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} } func (x *WasmContract) GetLabel() string { @@ -4575,7 +4740,7 @@ type ContractFund struct { func (x *ContractFund) Reset() { *x = ContractFund{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4588,7 +4753,7 @@ func (x *ContractFund) String() string { func (*ContractFund) ProtoMessage() {} func (x *ContractFund) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[51] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4601,7 +4766,7 @@ func (x *ContractFund) ProtoReflect() protoreflect.Message { // Deprecated: Use ContractFund.ProtoReflect.Descriptor instead. func (*ContractFund) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{51} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} } func (x *ContractFund) GetDenom() string { @@ -4631,7 +4796,7 @@ type Cw20Metadata struct { func (x *Cw20Metadata) Reset() { *x = Cw20Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4644,7 +4809,7 @@ func (x *Cw20Metadata) String() string { func (*Cw20Metadata) ProtoMessage() {} func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[52] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4657,7 +4822,7 @@ func (x *Cw20Metadata) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20Metadata.ProtoReflect.Descriptor instead. func (*Cw20Metadata) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{52} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} } func (x *Cw20Metadata) GetTokenInfo() *Cw20TokenInfo { @@ -4693,7 +4858,7 @@ type Cw20TokenInfo struct { func (x *Cw20TokenInfo) Reset() { *x = Cw20TokenInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4706,7 +4871,7 @@ func (x *Cw20TokenInfo) String() string { func (*Cw20TokenInfo) ProtoMessage() {} func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[53] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4719,7 +4884,7 @@ func (x *Cw20TokenInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20TokenInfo.ProtoReflect.Descriptor instead. func (*Cw20TokenInfo) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{53} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} } func (x *Cw20TokenInfo) GetName() string { @@ -4769,7 +4934,7 @@ type Cw20MarketingInfo struct { func (x *Cw20MarketingInfo) Reset() { *x = Cw20MarketingInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4782,7 +4947,7 @@ func (x *Cw20MarketingInfo) String() string { func (*Cw20MarketingInfo) ProtoMessage() {} func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[54] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4795,7 +4960,7 @@ func (x *Cw20MarketingInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use Cw20MarketingInfo.ProtoReflect.Descriptor instead. func (*Cw20MarketingInfo) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{54} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} } func (x *Cw20MarketingInfo) GetProject() string { @@ -4838,7 +5003,7 @@ type GetWasmContractByAddressRequest struct { func (x *GetWasmContractByAddressRequest) Reset() { *x = GetWasmContractByAddressRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4851,7 +5016,7 @@ func (x *GetWasmContractByAddressRequest) String() string { func (*GetWasmContractByAddressRequest) ProtoMessage() {} func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[55] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4864,7 +5029,7 @@ func (x *GetWasmContractByAddressRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressRequest.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{55} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} } func (x *GetWasmContractByAddressRequest) GetContractAddress() string { @@ -4917,7 +5082,7 @@ type GetWasmContractByAddressResponse struct { func (x *GetWasmContractByAddressResponse) Reset() { *x = GetWasmContractByAddressResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4930,7 +5095,7 @@ func (x *GetWasmContractByAddressResponse) String() string { func (*GetWasmContractByAddressResponse) ProtoMessage() {} func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[56] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4943,7 +5108,7 @@ func (x *GetWasmContractByAddressResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetWasmContractByAddressResponse.ProtoReflect.Descriptor instead. func (*GetWasmContractByAddressResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{56} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} } func (x *GetWasmContractByAddressResponse) GetLabel() string { @@ -5078,7 +5243,7 @@ type GetCw20BalanceRequest struct { func (x *GetCw20BalanceRequest) Reset() { *x = GetCw20BalanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5091,7 +5256,7 @@ func (x *GetCw20BalanceRequest) String() string { func (*GetCw20BalanceRequest) ProtoMessage() {} func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[57] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5104,7 +5269,7 @@ func (x *GetCw20BalanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceRequest.ProtoReflect.Descriptor instead. func (*GetCw20BalanceRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{57} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} } func (x *GetCw20BalanceRequest) GetAddress() string { @@ -5132,7 +5297,7 @@ type GetCw20BalanceResponse struct { func (x *GetCw20BalanceResponse) Reset() { *x = GetCw20BalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5145,7 +5310,7 @@ func (x *GetCw20BalanceResponse) String() string { func (*GetCw20BalanceResponse) ProtoMessage() {} func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[58] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5158,7 +5323,7 @@ func (x *GetCw20BalanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCw20BalanceResponse.ProtoReflect.Descriptor instead. func (*GetCw20BalanceResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{58} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} } func (x *GetCw20BalanceResponse) GetField() []*WasmCw20Balance { @@ -5187,7 +5352,7 @@ type WasmCw20Balance struct { func (x *WasmCw20Balance) Reset() { *x = WasmCw20Balance{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5200,7 +5365,7 @@ func (x *WasmCw20Balance) String() string { func (*WasmCw20Balance) ProtoMessage() {} func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[59] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5213,7 +5378,7 @@ func (x *WasmCw20Balance) ProtoReflect() protoreflect.Message { // Deprecated: Use WasmCw20Balance.ProtoReflect.Descriptor instead. func (*WasmCw20Balance) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{59} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} } func (x *WasmCw20Balance) GetContractAddress() string { @@ -5263,7 +5428,7 @@ type RelayersRequest struct { func (x *RelayersRequest) Reset() { *x = RelayersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5276,7 +5441,7 @@ func (x *RelayersRequest) String() string { func (*RelayersRequest) ProtoMessage() {} func (x *RelayersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[60] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5289,7 +5454,7 @@ func (x *RelayersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersRequest.ProtoReflect.Descriptor instead. func (*RelayersRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{60} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} } func (x *RelayersRequest) GetMarketIDs() []string { @@ -5310,7 +5475,7 @@ type RelayersResponse struct { func (x *RelayersResponse) Reset() { *x = RelayersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5323,7 +5488,7 @@ func (x *RelayersResponse) String() string { func (*RelayersResponse) ProtoMessage() {} func (x *RelayersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[61] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5336,7 +5501,7 @@ func (x *RelayersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayersResponse.ProtoReflect.Descriptor instead. func (*RelayersResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{61} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} } func (x *RelayersResponse) GetField() []*RelayerMarkets { @@ -5360,7 +5525,7 @@ type RelayerMarkets struct { func (x *RelayerMarkets) Reset() { *x = RelayerMarkets{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5373,7 +5538,7 @@ func (x *RelayerMarkets) String() string { func (*RelayerMarkets) ProtoMessage() {} func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[62] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5386,7 +5551,7 @@ func (x *RelayerMarkets) ProtoReflect() protoreflect.Message { // Deprecated: Use RelayerMarkets.ProtoReflect.Descriptor instead. func (*RelayerMarkets) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{62} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} } func (x *RelayerMarkets) GetMarketId() string { @@ -5417,7 +5582,7 @@ type Relayer struct { func (x *Relayer) Reset() { *x = Relayer{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5430,7 +5595,7 @@ func (x *Relayer) String() string { func (*Relayer) ProtoMessage() {} func (x *Relayer) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[63] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5443,7 +5608,7 @@ func (x *Relayer) ProtoReflect() protoreflect.Message { // Deprecated: Use Relayer.ProtoReflect.Descriptor instead. func (*Relayer) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{63} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} } func (x *Relayer) GetName() string { @@ -5489,7 +5654,7 @@ type GetBankTransfersRequest struct { func (x *GetBankTransfersRequest) Reset() { *x = GetBankTransfersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5502,7 +5667,7 @@ func (x *GetBankTransfersRequest) String() string { func (*GetBankTransfersRequest) ProtoMessage() {} func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[64] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5515,7 +5680,7 @@ func (x *GetBankTransfersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersRequest.ProtoReflect.Descriptor instead. func (*GetBankTransfersRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{64} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} } func (x *GetBankTransfersRequest) GetSenders() []string { @@ -5600,7 +5765,7 @@ type GetBankTransfersResponse struct { func (x *GetBankTransfersResponse) Reset() { *x = GetBankTransfersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5613,7 +5778,7 @@ func (x *GetBankTransfersResponse) String() string { func (*GetBankTransfersResponse) ProtoMessage() {} func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[65] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5626,7 +5791,7 @@ func (x *GetBankTransfersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBankTransfersResponse.ProtoReflect.Descriptor instead. func (*GetBankTransfersResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{65} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} } func (x *GetBankTransfersResponse) GetPaging() *Paging { @@ -5660,7 +5825,7 @@ type BankTransfer struct { func (x *BankTransfer) Reset() { *x = BankTransfer{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5673,7 +5838,7 @@ func (x *BankTransfer) String() string { func (*BankTransfer) ProtoMessage() {} func (x *BankTransfer) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[66] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5686,7 +5851,7 @@ func (x *BankTransfer) ProtoReflect() protoreflect.Message { // Deprecated: Use BankTransfer.ProtoReflect.Descriptor instead. func (*BankTransfer) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{66} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} } func (x *BankTransfer) GetSender() string { @@ -5737,7 +5902,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5750,7 +5915,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[67] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5763,7 +5928,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{67} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} } func (x *Coin) GetDenom() string { @@ -5789,7 +5954,7 @@ type StreamTxsRequest struct { func (x *StreamTxsRequest) Reset() { *x = StreamTxsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5802,7 +5967,7 @@ func (x *StreamTxsRequest) String() string { func (*StreamTxsRequest) ProtoMessage() {} func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[68] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5815,7 +5980,7 @@ func (x *StreamTxsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsRequest.ProtoReflect.Descriptor instead. func (*StreamTxsRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{68} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} } type StreamTxsResponse struct { @@ -5840,7 +6005,7 @@ type StreamTxsResponse struct { func (x *StreamTxsResponse) Reset() { *x = StreamTxsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5853,7 +6018,7 @@ func (x *StreamTxsResponse) String() string { func (*StreamTxsResponse) ProtoMessage() {} func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[69] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5866,7 +6031,7 @@ func (x *StreamTxsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTxsResponse.ProtoReflect.Descriptor instead. func (*StreamTxsResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{69} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} } func (x *StreamTxsResponse) GetId() string { @@ -5948,7 +6113,7 @@ type StreamBlocksRequest struct { func (x *StreamBlocksRequest) Reset() { *x = StreamBlocksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5961,7 +6126,7 @@ func (x *StreamBlocksRequest) String() string { func (*StreamBlocksRequest) ProtoMessage() {} func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[70] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5974,7 +6139,7 @@ func (x *StreamBlocksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksRequest.ProtoReflect.Descriptor instead. func (*StreamBlocksRequest) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{70} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{72} } type StreamBlocksResponse struct { @@ -5996,7 +6161,7 @@ type StreamBlocksResponse struct { func (x *StreamBlocksResponse) Reset() { *x = StreamBlocksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6009,7 +6174,7 @@ func (x *StreamBlocksResponse) String() string { func (*StreamBlocksResponse) ProtoMessage() {} func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_explorer_rpc_proto_msgTypes[71] + mi := &file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6022,7 +6187,7 @@ func (x *StreamBlocksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamBlocksResponse.ProtoReflect.Descriptor instead. func (*StreamBlocksResponse) Descriptor() ([]byte, []int) { - return file_injective_explorer_rpc_proto_rawDescGZIP(), []int{71} + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP(), []int{73} } func (x *StreamBlocksResponse) GetHeight() uint64 { @@ -6088,158 +6253,225 @@ func (x *StreamBlocksResponse) GetTimestamp() string { return "" } -var File_injective_explorer_rpc_proto protoreflect.FileDescriptor +var File_goadesign_goagen_injective_explorer_rpc_proto protoreflect.FileDescriptor -var file_injective_explorer_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xc4, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 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, 0x16, 0x0a, 0x06, 0x62, 0x65, 0x66, - 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, - 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x89, 0x01, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 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, - 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, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, - 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, - 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, - 0x78, 0x74, 0x22, 0xab, 0x05, 0x0a, 0x0c, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x08, 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, 0x09, 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, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x67, 0x61, 0x73, - 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0b, 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, 0x47, 0x61, 0x73, 0x46, 0x65, 0x65, 0x52, 0x06, 0x67, 0x61, 0x73, 0x46, - 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, - 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0a, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x10, 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, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, - 0x65, 0x6d, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 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, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x6e, 0x69, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, - 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x16, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, - 0x22, 0x91, 0x01, 0x0a, 0x06, 0x47, 0x61, 0x73, 0x46, 0x65, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, +var file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, + 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x16, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x6f, + 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xc4, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x78, 0x73, 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, 0x16, 0x0a, 0x06, 0x62, 0x65, + 0x66, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, + 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 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, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x89, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 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, 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, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, + 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, + 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x65, 0x78, 0x74, 0x22, 0xab, 0x05, 0x0a, 0x0c, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 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, + 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, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 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, 0x09, + 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, 0x0a, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x07, 0x67, 0x61, + 0x73, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0b, 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, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 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, - 0x22, 0xa9, 0x01, 0x0a, 0x05, 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, 0x4d, - 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 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, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, 0x0a, - 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, 0x09, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, - 0x79, 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, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 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, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 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, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x61, 0x73, 0x46, 0x65, 0x65, 0x52, 0x06, 0x67, 0x61, 0x73, + 0x46, 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x35, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x78, + 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x41, 0x0a, + 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x10, 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, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x78, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 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, 0x13, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x12, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x6e, 0x69, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x67, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4c, 0x6f, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, + 0x73, 0x22, 0x91, 0x01, 0x0a, 0x06, 0x47, 0x61, 0x73, 0x46, 0x65, 0x65, 0x12, 0x3a, 0x0a, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 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, 0x54, 0x78, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 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, 0x22, 0x82, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 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, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, + 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3a, 0x0a, 0x0a, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 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, 0x22, 0xa9, 0x01, 0x0a, 0x05, 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, + 0x4d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 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, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x1a, 0x3d, + 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x77, 0x0a, + 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, + 0x62, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, + 0x65, 0x79, 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, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x78, 0x73, 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, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, + 0x73, 0x6b, 0x69, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, + 0x63, 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, 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, 0x54, 0x78, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x9b, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, + 0x78, 0x73, 0x56, 0x32, 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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x02, 0x74, + 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x68, 0x0a, + 0x18, 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, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 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, 0x54, 0x78, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 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, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x02, 0x74, 0x6f, 0x22, 0x82, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 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, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 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, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xad, 0x02, 0x0a, 0x09, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 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, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xad, 0x02, 0x0a, 0x09, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 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, 0x22, 0xa0, 0x02, 0x0a, 0x09, 0x54, 0x78, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 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, 0x21, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x75, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 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, 0x01, 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, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 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, @@ -6252,900 +6484,861 @@ var file_injective_explorer_rpc_proto_rawDesc = []byte{ 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, 0x22, 0xa0, 0x02, 0x0a, 0x09, - 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x50, 0x43, 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, 0x21, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 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, 0x01, 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, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcd, 0x02, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1b, 0x0a, 0x09, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, - 0x09, 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, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd3, 0x02, 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, 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, 0x0c, 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, 0x20, 0x0a, 0x0c, 0x74, - 0x78, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0a, 0x74, 0x78, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x6f, 0x67, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0c, - 0x20, 0x03, 0x28, 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 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, + 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x54, 0x78, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x12, 0x52, 0x08, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x54, 0x78, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x09, 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, 0x03, 0x74, 0x78, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd3, 0x02, 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, 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, 0x0c, + 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, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x6d, + 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x74, 0x78, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, + 0x67, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x12, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x49, 0x64, 0x73, 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, 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, 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, + 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, 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, 0x54, 0x78, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x2a, 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, 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, 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, + 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, + 0x2a, 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, 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 0xd1, 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, 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, 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, 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, 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, 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, + 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, 0xd1, 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, 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, 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, + 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, 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, + 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, 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, 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, 0x34, 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, 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, 0xb8, - 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, 0x32, 0xcf, 0x12, 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, 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, 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, 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x28, + 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, + 0x34, 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, 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, 0xb8, 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, 0x32, 0xc6, 0x13, 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, 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, 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, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 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, 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, 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, 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, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 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, 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, 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, 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, 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, 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, + 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, 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, + 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, 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, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 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, 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, 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, + 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, 0x57, 0x61, 0x73, 0x6d, 0x43, 0x6f, - 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x72, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x78, 0x73, 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, 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, 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, + 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, 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, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 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, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 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, + 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, 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, + 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, 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, 0x42, 0x1b, 0x5a, 0x19, 0x2f, + 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, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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, 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, 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 ( - file_injective_explorer_rpc_proto_rawDescOnce sync.Once - file_injective_explorer_rpc_proto_rawDescData = file_injective_explorer_rpc_proto_rawDesc + file_goadesign_goagen_injective_explorer_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData = file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc ) -func file_injective_explorer_rpc_proto_rawDescGZIP() []byte { - file_injective_explorer_rpc_proto_rawDescOnce.Do(func() { - file_injective_explorer_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_explorer_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_explorer_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_explorer_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData) }) - return file_injective_explorer_rpc_proto_rawDescData + return file_goadesign_goagen_injective_explorer_rpc_proto_rawDescData } -var file_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 73) -var file_injective_explorer_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 75) +var file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = []interface{}{ (*GetAccountTxsRequest)(nil), // 0: injective_explorer_rpc.GetAccountTxsRequest (*GetAccountTxsResponse)(nil), // 1: injective_explorer_rpc.GetAccountTxsResponse (*Paging)(nil), // 2: injective_explorer_rpc.Paging @@ -7156,175 +7349,180 @@ var file_injective_explorer_rpc_proto_goTypes = []interface{}{ (*Signature)(nil), // 7: injective_explorer_rpc.Signature (*GetContractTxsRequest)(nil), // 8: injective_explorer_rpc.GetContractTxsRequest (*GetContractTxsResponse)(nil), // 9: injective_explorer_rpc.GetContractTxsResponse - (*GetBlocksRequest)(nil), // 10: injective_explorer_rpc.GetBlocksRequest - (*GetBlocksResponse)(nil), // 11: injective_explorer_rpc.GetBlocksResponse - (*BlockInfo)(nil), // 12: injective_explorer_rpc.BlockInfo - (*TxDataRPC)(nil), // 13: injective_explorer_rpc.TxDataRPC - (*GetBlockRequest)(nil), // 14: injective_explorer_rpc.GetBlockRequest - (*GetBlockResponse)(nil), // 15: injective_explorer_rpc.GetBlockResponse - (*BlockDetailInfo)(nil), // 16: injective_explorer_rpc.BlockDetailInfo - (*TxData)(nil), // 17: injective_explorer_rpc.TxData - (*GetValidatorsRequest)(nil), // 18: injective_explorer_rpc.GetValidatorsRequest - (*GetValidatorsResponse)(nil), // 19: injective_explorer_rpc.GetValidatorsResponse - (*Validator)(nil), // 20: injective_explorer_rpc.Validator - (*ValidatorDescription)(nil), // 21: injective_explorer_rpc.ValidatorDescription - (*ValidatorUptime)(nil), // 22: injective_explorer_rpc.ValidatorUptime - (*SlashingEvent)(nil), // 23: injective_explorer_rpc.SlashingEvent - (*GetValidatorRequest)(nil), // 24: injective_explorer_rpc.GetValidatorRequest - (*GetValidatorResponse)(nil), // 25: injective_explorer_rpc.GetValidatorResponse - (*GetValidatorUptimeRequest)(nil), // 26: injective_explorer_rpc.GetValidatorUptimeRequest - (*GetValidatorUptimeResponse)(nil), // 27: injective_explorer_rpc.GetValidatorUptimeResponse - (*GetTxsRequest)(nil), // 28: injective_explorer_rpc.GetTxsRequest - (*GetTxsResponse)(nil), // 29: injective_explorer_rpc.GetTxsResponse - (*GetTxByTxHashRequest)(nil), // 30: injective_explorer_rpc.GetTxByTxHashRequest - (*GetTxByTxHashResponse)(nil), // 31: injective_explorer_rpc.GetTxByTxHashResponse - (*GetPeggyDepositTxsRequest)(nil), // 32: injective_explorer_rpc.GetPeggyDepositTxsRequest - (*GetPeggyDepositTxsResponse)(nil), // 33: injective_explorer_rpc.GetPeggyDepositTxsResponse - (*PeggyDepositTx)(nil), // 34: injective_explorer_rpc.PeggyDepositTx - (*GetPeggyWithdrawalTxsRequest)(nil), // 35: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - (*GetPeggyWithdrawalTxsResponse)(nil), // 36: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - (*PeggyWithdrawalTx)(nil), // 37: injective_explorer_rpc.PeggyWithdrawalTx - (*GetIBCTransferTxsRequest)(nil), // 38: injective_explorer_rpc.GetIBCTransferTxsRequest - (*GetIBCTransferTxsResponse)(nil), // 39: injective_explorer_rpc.GetIBCTransferTxsResponse - (*IBCTransferTx)(nil), // 40: injective_explorer_rpc.IBCTransferTx - (*GetWasmCodesRequest)(nil), // 41: injective_explorer_rpc.GetWasmCodesRequest - (*GetWasmCodesResponse)(nil), // 42: injective_explorer_rpc.GetWasmCodesResponse - (*WasmCode)(nil), // 43: injective_explorer_rpc.WasmCode - (*Checksum)(nil), // 44: injective_explorer_rpc.Checksum - (*ContractPermission)(nil), // 45: injective_explorer_rpc.ContractPermission - (*GetWasmCodeByIDRequest)(nil), // 46: injective_explorer_rpc.GetWasmCodeByIDRequest - (*GetWasmCodeByIDResponse)(nil), // 47: injective_explorer_rpc.GetWasmCodeByIDResponse - (*GetWasmContractsRequest)(nil), // 48: injective_explorer_rpc.GetWasmContractsRequest - (*GetWasmContractsResponse)(nil), // 49: injective_explorer_rpc.GetWasmContractsResponse - (*WasmContract)(nil), // 50: injective_explorer_rpc.WasmContract - (*ContractFund)(nil), // 51: injective_explorer_rpc.ContractFund - (*Cw20Metadata)(nil), // 52: injective_explorer_rpc.Cw20Metadata - (*Cw20TokenInfo)(nil), // 53: injective_explorer_rpc.Cw20TokenInfo - (*Cw20MarketingInfo)(nil), // 54: injective_explorer_rpc.Cw20MarketingInfo - (*GetWasmContractByAddressRequest)(nil), // 55: injective_explorer_rpc.GetWasmContractByAddressRequest - (*GetWasmContractByAddressResponse)(nil), // 56: injective_explorer_rpc.GetWasmContractByAddressResponse - (*GetCw20BalanceRequest)(nil), // 57: injective_explorer_rpc.GetCw20BalanceRequest - (*GetCw20BalanceResponse)(nil), // 58: injective_explorer_rpc.GetCw20BalanceResponse - (*WasmCw20Balance)(nil), // 59: injective_explorer_rpc.WasmCw20Balance - (*RelayersRequest)(nil), // 60: injective_explorer_rpc.RelayersRequest - (*RelayersResponse)(nil), // 61: injective_explorer_rpc.RelayersResponse - (*RelayerMarkets)(nil), // 62: injective_explorer_rpc.RelayerMarkets - (*Relayer)(nil), // 63: injective_explorer_rpc.Relayer - (*GetBankTransfersRequest)(nil), // 64: injective_explorer_rpc.GetBankTransfersRequest - (*GetBankTransfersResponse)(nil), // 65: injective_explorer_rpc.GetBankTransfersResponse - (*BankTransfer)(nil), // 66: injective_explorer_rpc.BankTransfer - (*Coin)(nil), // 67: injective_explorer_rpc.Coin - (*StreamTxsRequest)(nil), // 68: injective_explorer_rpc.StreamTxsRequest - (*StreamTxsResponse)(nil), // 69: injective_explorer_rpc.StreamTxsResponse - (*StreamBlocksRequest)(nil), // 70: injective_explorer_rpc.StreamBlocksRequest - (*StreamBlocksResponse)(nil), // 71: injective_explorer_rpc.StreamBlocksResponse - nil, // 72: injective_explorer_rpc.Event.AttributesEntry -} -var file_injective_explorer_rpc_proto_depIdxs = []int32{ + (*GetContractTxsV2Request)(nil), // 10: injective_explorer_rpc.GetContractTxsV2Request + (*GetContractTxsV2Response)(nil), // 11: injective_explorer_rpc.GetContractTxsV2Response + (*GetBlocksRequest)(nil), // 12: injective_explorer_rpc.GetBlocksRequest + (*GetBlocksResponse)(nil), // 13: injective_explorer_rpc.GetBlocksResponse + (*BlockInfo)(nil), // 14: injective_explorer_rpc.BlockInfo + (*TxDataRPC)(nil), // 15: injective_explorer_rpc.TxDataRPC + (*GetBlockRequest)(nil), // 16: injective_explorer_rpc.GetBlockRequest + (*GetBlockResponse)(nil), // 17: injective_explorer_rpc.GetBlockResponse + (*BlockDetailInfo)(nil), // 18: injective_explorer_rpc.BlockDetailInfo + (*TxData)(nil), // 19: injective_explorer_rpc.TxData + (*GetValidatorsRequest)(nil), // 20: injective_explorer_rpc.GetValidatorsRequest + (*GetValidatorsResponse)(nil), // 21: injective_explorer_rpc.GetValidatorsResponse + (*Validator)(nil), // 22: injective_explorer_rpc.Validator + (*ValidatorDescription)(nil), // 23: injective_explorer_rpc.ValidatorDescription + (*ValidatorUptime)(nil), // 24: injective_explorer_rpc.ValidatorUptime + (*SlashingEvent)(nil), // 25: injective_explorer_rpc.SlashingEvent + (*GetValidatorRequest)(nil), // 26: injective_explorer_rpc.GetValidatorRequest + (*GetValidatorResponse)(nil), // 27: injective_explorer_rpc.GetValidatorResponse + (*GetValidatorUptimeRequest)(nil), // 28: injective_explorer_rpc.GetValidatorUptimeRequest + (*GetValidatorUptimeResponse)(nil), // 29: injective_explorer_rpc.GetValidatorUptimeResponse + (*GetTxsRequest)(nil), // 30: injective_explorer_rpc.GetTxsRequest + (*GetTxsResponse)(nil), // 31: injective_explorer_rpc.GetTxsResponse + (*GetTxByTxHashRequest)(nil), // 32: injective_explorer_rpc.GetTxByTxHashRequest + (*GetTxByTxHashResponse)(nil), // 33: injective_explorer_rpc.GetTxByTxHashResponse + (*GetPeggyDepositTxsRequest)(nil), // 34: injective_explorer_rpc.GetPeggyDepositTxsRequest + (*GetPeggyDepositTxsResponse)(nil), // 35: injective_explorer_rpc.GetPeggyDepositTxsResponse + (*PeggyDepositTx)(nil), // 36: injective_explorer_rpc.PeggyDepositTx + (*GetPeggyWithdrawalTxsRequest)(nil), // 37: injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + (*GetPeggyWithdrawalTxsResponse)(nil), // 38: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + (*PeggyWithdrawalTx)(nil), // 39: injective_explorer_rpc.PeggyWithdrawalTx + (*GetIBCTransferTxsRequest)(nil), // 40: injective_explorer_rpc.GetIBCTransferTxsRequest + (*GetIBCTransferTxsResponse)(nil), // 41: injective_explorer_rpc.GetIBCTransferTxsResponse + (*IBCTransferTx)(nil), // 42: injective_explorer_rpc.IBCTransferTx + (*GetWasmCodesRequest)(nil), // 43: injective_explorer_rpc.GetWasmCodesRequest + (*GetWasmCodesResponse)(nil), // 44: injective_explorer_rpc.GetWasmCodesResponse + (*WasmCode)(nil), // 45: injective_explorer_rpc.WasmCode + (*Checksum)(nil), // 46: injective_explorer_rpc.Checksum + (*ContractPermission)(nil), // 47: injective_explorer_rpc.ContractPermission + (*GetWasmCodeByIDRequest)(nil), // 48: injective_explorer_rpc.GetWasmCodeByIDRequest + (*GetWasmCodeByIDResponse)(nil), // 49: injective_explorer_rpc.GetWasmCodeByIDResponse + (*GetWasmContractsRequest)(nil), // 50: injective_explorer_rpc.GetWasmContractsRequest + (*GetWasmContractsResponse)(nil), // 51: injective_explorer_rpc.GetWasmContractsResponse + (*WasmContract)(nil), // 52: injective_explorer_rpc.WasmContract + (*ContractFund)(nil), // 53: injective_explorer_rpc.ContractFund + (*Cw20Metadata)(nil), // 54: injective_explorer_rpc.Cw20Metadata + (*Cw20TokenInfo)(nil), // 55: injective_explorer_rpc.Cw20TokenInfo + (*Cw20MarketingInfo)(nil), // 56: injective_explorer_rpc.Cw20MarketingInfo + (*GetWasmContractByAddressRequest)(nil), // 57: injective_explorer_rpc.GetWasmContractByAddressRequest + (*GetWasmContractByAddressResponse)(nil), // 58: injective_explorer_rpc.GetWasmContractByAddressResponse + (*GetCw20BalanceRequest)(nil), // 59: injective_explorer_rpc.GetCw20BalanceRequest + (*GetCw20BalanceResponse)(nil), // 60: injective_explorer_rpc.GetCw20BalanceResponse + (*WasmCw20Balance)(nil), // 61: injective_explorer_rpc.WasmCw20Balance + (*RelayersRequest)(nil), // 62: injective_explorer_rpc.RelayersRequest + (*RelayersResponse)(nil), // 63: injective_explorer_rpc.RelayersResponse + (*RelayerMarkets)(nil), // 64: injective_explorer_rpc.RelayerMarkets + (*Relayer)(nil), // 65: injective_explorer_rpc.Relayer + (*GetBankTransfersRequest)(nil), // 66: injective_explorer_rpc.GetBankTransfersRequest + (*GetBankTransfersResponse)(nil), // 67: injective_explorer_rpc.GetBankTransfersResponse + (*BankTransfer)(nil), // 68: injective_explorer_rpc.BankTransfer + (*Coin)(nil), // 69: injective_explorer_rpc.Coin + (*StreamTxsRequest)(nil), // 70: injective_explorer_rpc.StreamTxsRequest + (*StreamTxsResponse)(nil), // 71: injective_explorer_rpc.StreamTxsResponse + (*StreamBlocksRequest)(nil), // 72: injective_explorer_rpc.StreamBlocksRequest + (*StreamBlocksResponse)(nil), // 73: injective_explorer_rpc.StreamBlocksResponse + nil, // 74: injective_explorer_rpc.Event.AttributesEntry +} +var file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = []int32{ 2, // 0: injective_explorer_rpc.GetAccountTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 1: injective_explorer_rpc.GetAccountTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData 4, // 2: injective_explorer_rpc.TxDetailData.gas_fee:type_name -> injective_explorer_rpc.GasFee 6, // 3: injective_explorer_rpc.TxDetailData.events:type_name -> injective_explorer_rpc.Event 7, // 4: injective_explorer_rpc.TxDetailData.signatures:type_name -> injective_explorer_rpc.Signature 5, // 5: injective_explorer_rpc.GasFee.amount:type_name -> injective_explorer_rpc.CosmosCoin - 72, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry + 74, // 6: injective_explorer_rpc.Event.attributes:type_name -> injective_explorer_rpc.Event.AttributesEntry 2, // 7: injective_explorer_rpc.GetContractTxsResponse.paging:type_name -> injective_explorer_rpc.Paging 3, // 8: injective_explorer_rpc.GetContractTxsResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 2, // 9: injective_explorer_rpc.GetBlocksResponse.paging:type_name -> injective_explorer_rpc.Paging - 12, // 10: injective_explorer_rpc.GetBlocksResponse.data:type_name -> injective_explorer_rpc.BlockInfo - 13, // 11: injective_explorer_rpc.BlockInfo.txs:type_name -> injective_explorer_rpc.TxDataRPC - 16, // 12: injective_explorer_rpc.GetBlockResponse.data:type_name -> injective_explorer_rpc.BlockDetailInfo - 17, // 13: injective_explorer_rpc.BlockDetailInfo.txs:type_name -> injective_explorer_rpc.TxData - 20, // 14: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator - 21, // 15: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription - 22, // 16: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime - 23, // 17: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent - 20, // 18: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator - 22, // 19: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime - 2, // 20: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging - 17, // 21: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData - 3, // 22: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData - 34, // 23: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx - 37, // 24: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx - 40, // 25: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx - 2, // 26: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging - 43, // 27: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode - 44, // 28: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum - 45, // 29: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission - 44, // 30: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum - 45, // 31: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission - 2, // 32: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging - 50, // 33: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract - 51, // 34: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund - 52, // 35: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 53, // 36: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo - 54, // 37: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo - 51, // 38: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund - 52, // 39: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 59, // 40: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance - 52, // 41: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata - 62, // 42: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets - 63, // 43: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer - 2, // 44: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging - 66, // 45: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer - 67, // 46: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin - 13, // 47: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC - 0, // 48: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest - 8, // 49: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest - 10, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest - 14, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest - 18, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest - 24, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest - 26, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest - 28, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest - 30, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest - 32, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest - 35, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest - 38, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest - 41, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest - 46, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest - 48, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest - 55, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest - 57, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest - 60, // 65: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest - 64, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest - 68, // 67: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest - 70, // 68: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest - 1, // 69: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse - 9, // 70: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse - 11, // 71: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse - 15, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse - 19, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse - 25, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse - 27, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse - 29, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse - 31, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse - 33, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse - 36, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse - 39, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse - 42, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse - 47, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse - 49, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse - 56, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse - 58, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse - 61, // 86: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse - 65, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse - 69, // 88: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse - 71, // 89: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse - 69, // [69:90] is the sub-list for method output_type - 48, // [48:69] is the sub-list for method input_type - 48, // [48:48] is the sub-list for extension type_name - 48, // [48:48] is the sub-list for extension extendee - 0, // [0:48] is the sub-list for field type_name -} - -func init() { file_injective_explorer_rpc_proto_init() } -func file_injective_explorer_rpc_proto_init() { - if File_injective_explorer_rpc_proto != nil { + 3, // 9: injective_explorer_rpc.GetContractTxsV2Response.data:type_name -> injective_explorer_rpc.TxDetailData + 2, // 10: injective_explorer_rpc.GetBlocksResponse.paging:type_name -> injective_explorer_rpc.Paging + 14, // 11: injective_explorer_rpc.GetBlocksResponse.data:type_name -> injective_explorer_rpc.BlockInfo + 15, // 12: injective_explorer_rpc.BlockInfo.txs:type_name -> injective_explorer_rpc.TxDataRPC + 18, // 13: injective_explorer_rpc.GetBlockResponse.data:type_name -> injective_explorer_rpc.BlockDetailInfo + 19, // 14: injective_explorer_rpc.BlockDetailInfo.txs:type_name -> injective_explorer_rpc.TxData + 22, // 15: injective_explorer_rpc.GetValidatorsResponse.data:type_name -> injective_explorer_rpc.Validator + 23, // 16: injective_explorer_rpc.Validator.description:type_name -> injective_explorer_rpc.ValidatorDescription + 24, // 17: injective_explorer_rpc.Validator.uptimes:type_name -> injective_explorer_rpc.ValidatorUptime + 25, // 18: injective_explorer_rpc.Validator.slashing_events:type_name -> injective_explorer_rpc.SlashingEvent + 22, // 19: injective_explorer_rpc.GetValidatorResponse.data:type_name -> injective_explorer_rpc.Validator + 24, // 20: injective_explorer_rpc.GetValidatorUptimeResponse.data:type_name -> injective_explorer_rpc.ValidatorUptime + 2, // 21: injective_explorer_rpc.GetTxsResponse.paging:type_name -> injective_explorer_rpc.Paging + 19, // 22: injective_explorer_rpc.GetTxsResponse.data:type_name -> injective_explorer_rpc.TxData + 3, // 23: injective_explorer_rpc.GetTxByTxHashResponse.data:type_name -> injective_explorer_rpc.TxDetailData + 36, // 24: injective_explorer_rpc.GetPeggyDepositTxsResponse.field:type_name -> injective_explorer_rpc.PeggyDepositTx + 39, // 25: injective_explorer_rpc.GetPeggyWithdrawalTxsResponse.field:type_name -> injective_explorer_rpc.PeggyWithdrawalTx + 42, // 26: injective_explorer_rpc.GetIBCTransferTxsResponse.field:type_name -> injective_explorer_rpc.IBCTransferTx + 2, // 27: injective_explorer_rpc.GetWasmCodesResponse.paging:type_name -> injective_explorer_rpc.Paging + 45, // 28: injective_explorer_rpc.GetWasmCodesResponse.data:type_name -> injective_explorer_rpc.WasmCode + 46, // 29: injective_explorer_rpc.WasmCode.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 30: injective_explorer_rpc.WasmCode.permission:type_name -> injective_explorer_rpc.ContractPermission + 46, // 31: injective_explorer_rpc.GetWasmCodeByIDResponse.checksum:type_name -> injective_explorer_rpc.Checksum + 47, // 32: injective_explorer_rpc.GetWasmCodeByIDResponse.permission:type_name -> injective_explorer_rpc.ContractPermission + 2, // 33: injective_explorer_rpc.GetWasmContractsResponse.paging:type_name -> injective_explorer_rpc.Paging + 52, // 34: injective_explorer_rpc.GetWasmContractsResponse.data:type_name -> injective_explorer_rpc.WasmContract + 53, // 35: injective_explorer_rpc.WasmContract.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 36: injective_explorer_rpc.WasmContract.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 55, // 37: injective_explorer_rpc.Cw20Metadata.token_info:type_name -> injective_explorer_rpc.Cw20TokenInfo + 56, // 38: injective_explorer_rpc.Cw20Metadata.marketing_info:type_name -> injective_explorer_rpc.Cw20MarketingInfo + 53, // 39: injective_explorer_rpc.GetWasmContractByAddressResponse.funds:type_name -> injective_explorer_rpc.ContractFund + 54, // 40: injective_explorer_rpc.GetWasmContractByAddressResponse.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 61, // 41: injective_explorer_rpc.GetCw20BalanceResponse.field:type_name -> injective_explorer_rpc.WasmCw20Balance + 54, // 42: injective_explorer_rpc.WasmCw20Balance.cw20_metadata:type_name -> injective_explorer_rpc.Cw20Metadata + 64, // 43: injective_explorer_rpc.RelayersResponse.field:type_name -> injective_explorer_rpc.RelayerMarkets + 65, // 44: injective_explorer_rpc.RelayerMarkets.relayers:type_name -> injective_explorer_rpc.Relayer + 2, // 45: injective_explorer_rpc.GetBankTransfersResponse.paging:type_name -> injective_explorer_rpc.Paging + 68, // 46: injective_explorer_rpc.GetBankTransfersResponse.data:type_name -> injective_explorer_rpc.BankTransfer + 69, // 47: injective_explorer_rpc.BankTransfer.amounts:type_name -> injective_explorer_rpc.Coin + 15, // 48: injective_explorer_rpc.StreamBlocksResponse.txs:type_name -> injective_explorer_rpc.TxDataRPC + 0, // 49: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:input_type -> injective_explorer_rpc.GetAccountTxsRequest + 8, // 50: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:input_type -> injective_explorer_rpc.GetContractTxsRequest + 10, // 51: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:input_type -> injective_explorer_rpc.GetContractTxsV2Request + 12, // 52: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:input_type -> injective_explorer_rpc.GetBlocksRequest + 16, // 53: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:input_type -> injective_explorer_rpc.GetBlockRequest + 20, // 54: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:input_type -> injective_explorer_rpc.GetValidatorsRequest + 26, // 55: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:input_type -> injective_explorer_rpc.GetValidatorRequest + 28, // 56: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:input_type -> injective_explorer_rpc.GetValidatorUptimeRequest + 30, // 57: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:input_type -> injective_explorer_rpc.GetTxsRequest + 32, // 58: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:input_type -> injective_explorer_rpc.GetTxByTxHashRequest + 34, // 59: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:input_type -> injective_explorer_rpc.GetPeggyDepositTxsRequest + 37, // 60: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:input_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsRequest + 40, // 61: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:input_type -> injective_explorer_rpc.GetIBCTransferTxsRequest + 43, // 62: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:input_type -> injective_explorer_rpc.GetWasmCodesRequest + 48, // 63: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:input_type -> injective_explorer_rpc.GetWasmCodeByIDRequest + 50, // 64: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:input_type -> injective_explorer_rpc.GetWasmContractsRequest + 57, // 65: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:input_type -> injective_explorer_rpc.GetWasmContractByAddressRequest + 59, // 66: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:input_type -> injective_explorer_rpc.GetCw20BalanceRequest + 62, // 67: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:input_type -> injective_explorer_rpc.RelayersRequest + 66, // 68: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:input_type -> injective_explorer_rpc.GetBankTransfersRequest + 70, // 69: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:input_type -> injective_explorer_rpc.StreamTxsRequest + 72, // 70: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:input_type -> injective_explorer_rpc.StreamBlocksRequest + 1, // 71: injective_explorer_rpc.InjectiveExplorerRPC.GetAccountTxs:output_type -> injective_explorer_rpc.GetAccountTxsResponse + 9, // 72: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxs:output_type -> injective_explorer_rpc.GetContractTxsResponse + 11, // 73: injective_explorer_rpc.InjectiveExplorerRPC.GetContractTxsV2:output_type -> injective_explorer_rpc.GetContractTxsV2Response + 13, // 74: injective_explorer_rpc.InjectiveExplorerRPC.GetBlocks:output_type -> injective_explorer_rpc.GetBlocksResponse + 17, // 75: injective_explorer_rpc.InjectiveExplorerRPC.GetBlock:output_type -> injective_explorer_rpc.GetBlockResponse + 21, // 76: injective_explorer_rpc.InjectiveExplorerRPC.GetValidators:output_type -> injective_explorer_rpc.GetValidatorsResponse + 27, // 77: injective_explorer_rpc.InjectiveExplorerRPC.GetValidator:output_type -> injective_explorer_rpc.GetValidatorResponse + 29, // 78: injective_explorer_rpc.InjectiveExplorerRPC.GetValidatorUptime:output_type -> injective_explorer_rpc.GetValidatorUptimeResponse + 31, // 79: injective_explorer_rpc.InjectiveExplorerRPC.GetTxs:output_type -> injective_explorer_rpc.GetTxsResponse + 33, // 80: injective_explorer_rpc.InjectiveExplorerRPC.GetTxByTxHash:output_type -> injective_explorer_rpc.GetTxByTxHashResponse + 35, // 81: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyDepositTxs:output_type -> injective_explorer_rpc.GetPeggyDepositTxsResponse + 38, // 82: injective_explorer_rpc.InjectiveExplorerRPC.GetPeggyWithdrawalTxs:output_type -> injective_explorer_rpc.GetPeggyWithdrawalTxsResponse + 41, // 83: injective_explorer_rpc.InjectiveExplorerRPC.GetIBCTransferTxs:output_type -> injective_explorer_rpc.GetIBCTransferTxsResponse + 44, // 84: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodes:output_type -> injective_explorer_rpc.GetWasmCodesResponse + 49, // 85: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmCodeByID:output_type -> injective_explorer_rpc.GetWasmCodeByIDResponse + 51, // 86: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContracts:output_type -> injective_explorer_rpc.GetWasmContractsResponse + 58, // 87: injective_explorer_rpc.InjectiveExplorerRPC.GetWasmContractByAddress:output_type -> injective_explorer_rpc.GetWasmContractByAddressResponse + 60, // 88: injective_explorer_rpc.InjectiveExplorerRPC.GetCw20Balance:output_type -> injective_explorer_rpc.GetCw20BalanceResponse + 63, // 89: injective_explorer_rpc.InjectiveExplorerRPC.Relayers:output_type -> injective_explorer_rpc.RelayersResponse + 67, // 90: injective_explorer_rpc.InjectiveExplorerRPC.GetBankTransfers:output_type -> injective_explorer_rpc.GetBankTransfersResponse + 71, // 91: injective_explorer_rpc.InjectiveExplorerRPC.StreamTxs:output_type -> injective_explorer_rpc.StreamTxsResponse + 73, // 92: injective_explorer_rpc.InjectiveExplorerRPC.StreamBlocks:output_type -> injective_explorer_rpc.StreamBlocksResponse + 71, // [71:93] is the sub-list for method output_type + 49, // [49:71] is the sub-list for method input_type + 49, // [49:49] is the sub-list for extension type_name + 49, // [49:49] is the sub-list for extension extendee + 0, // [0:49] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_explorer_rpc_proto_init() } +func file_goadesign_goagen_injective_explorer_rpc_proto_init() { + if File_goadesign_goagen_injective_explorer_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_explorer_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAccountTxsRequest); i { case 0: return &v.state @@ -7336,7 +7534,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetAccountTxsResponse); i { case 0: return &v.state @@ -7348,7 +7546,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Paging); i { case 0: return &v.state @@ -7360,7 +7558,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxDetailData); i { case 0: return &v.state @@ -7372,7 +7570,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GasFee); i { case 0: return &v.state @@ -7384,7 +7582,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CosmosCoin); i { case 0: return &v.state @@ -7396,7 +7594,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -7408,7 +7606,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Signature); i { case 0: return &v.state @@ -7420,7 +7618,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetContractTxsRequest); i { case 0: return &v.state @@ -7432,7 +7630,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetContractTxsResponse); i { case 0: return &v.state @@ -7444,7 +7642,31 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetContractTxsV2Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetContractTxsV2Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlocksRequest); i { case 0: return &v.state @@ -7456,7 +7678,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlocksResponse); i { case 0: return &v.state @@ -7468,7 +7690,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockInfo); i { case 0: return &v.state @@ -7480,7 +7702,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxDataRPC); i { case 0: return &v.state @@ -7492,7 +7714,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlockRequest); i { case 0: return &v.state @@ -7504,7 +7726,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBlockResponse); i { case 0: return &v.state @@ -7516,7 +7738,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlockDetailInfo); i { case 0: return &v.state @@ -7528,7 +7750,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TxData); i { case 0: return &v.state @@ -7540,7 +7762,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorsRequest); i { case 0: return &v.state @@ -7552,7 +7774,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorsResponse); i { case 0: return &v.state @@ -7564,7 +7786,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Validator); i { case 0: return &v.state @@ -7576,7 +7798,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorDescription); i { case 0: return &v.state @@ -7588,7 +7810,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorUptime); i { case 0: return &v.state @@ -7600,7 +7822,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SlashingEvent); i { case 0: return &v.state @@ -7612,7 +7834,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorRequest); i { case 0: return &v.state @@ -7624,7 +7846,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorResponse); i { case 0: return &v.state @@ -7636,7 +7858,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorUptimeRequest); i { case 0: return &v.state @@ -7648,7 +7870,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetValidatorUptimeResponse); i { case 0: return &v.state @@ -7660,7 +7882,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxsRequest); i { case 0: return &v.state @@ -7672,7 +7894,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxsResponse); i { case 0: return &v.state @@ -7684,7 +7906,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxByTxHashRequest); i { case 0: return &v.state @@ -7696,7 +7918,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTxByTxHashResponse); i { case 0: return &v.state @@ -7708,7 +7930,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyDepositTxsRequest); i { case 0: return &v.state @@ -7720,7 +7942,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyDepositTxsResponse); i { case 0: return &v.state @@ -7732,7 +7954,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeggyDepositTx); i { case 0: return &v.state @@ -7744,7 +7966,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyWithdrawalTxsRequest); i { case 0: return &v.state @@ -7756,7 +7978,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetPeggyWithdrawalTxsResponse); i { case 0: return &v.state @@ -7768,7 +7990,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeggyWithdrawalTx); i { case 0: return &v.state @@ -7780,7 +8002,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIBCTransferTxsRequest); i { case 0: return &v.state @@ -7792,7 +8014,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIBCTransferTxsResponse); i { case 0: return &v.state @@ -7804,7 +8026,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IBCTransferTx); i { case 0: return &v.state @@ -7816,7 +8038,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodesRequest); i { case 0: return &v.state @@ -7828,7 +8050,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodesResponse); i { case 0: return &v.state @@ -7840,7 +8062,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmCode); i { case 0: return &v.state @@ -7852,7 +8074,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Checksum); i { case 0: return &v.state @@ -7864,7 +8086,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractPermission); i { case 0: return &v.state @@ -7876,7 +8098,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodeByIDRequest); i { case 0: return &v.state @@ -7888,7 +8110,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmCodeByIDResponse); i { case 0: return &v.state @@ -7900,7 +8122,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractsRequest); i { case 0: return &v.state @@ -7912,7 +8134,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractsResponse); i { case 0: return &v.state @@ -7924,7 +8146,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmContract); i { case 0: return &v.state @@ -7936,7 +8158,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContractFund); i { case 0: return &v.state @@ -7948,7 +8170,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20Metadata); i { case 0: return &v.state @@ -7960,7 +8182,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20TokenInfo); i { case 0: return &v.state @@ -7972,7 +8194,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Cw20MarketingInfo); i { case 0: return &v.state @@ -7984,7 +8206,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractByAddressRequest); i { case 0: return &v.state @@ -7996,7 +8218,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWasmContractByAddressResponse); i { case 0: return &v.state @@ -8008,7 +8230,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCw20BalanceRequest); i { case 0: return &v.state @@ -8020,7 +8242,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCw20BalanceResponse); i { case 0: return &v.state @@ -8032,7 +8254,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WasmCw20Balance); i { case 0: return &v.state @@ -8044,7 +8266,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayersRequest); i { case 0: return &v.state @@ -8056,7 +8278,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayersResponse); i { case 0: return &v.state @@ -8068,7 +8290,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelayerMarkets); i { case 0: return &v.state @@ -8080,7 +8302,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Relayer); i { case 0: return &v.state @@ -8092,7 +8314,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBankTransfersRequest); i { case 0: return &v.state @@ -8104,7 +8326,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBankTransfersResponse); i { case 0: return &v.state @@ -8116,7 +8338,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BankTransfer); i { case 0: return &v.state @@ -8128,7 +8350,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state @@ -8140,7 +8362,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTxsRequest); i { case 0: return &v.state @@ -8152,7 +8374,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTxsResponse); i { case 0: return &v.state @@ -8164,7 +8386,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBlocksRequest); i { case 0: return &v.state @@ -8176,7 +8398,7 @@ func file_injective_explorer_rpc_proto_init() { return nil } } - file_injective_explorer_rpc_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamBlocksResponse); i { case 0: return &v.state @@ -8193,18 +8415,18 @@ func file_injective_explorer_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_explorer_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc, NumEnums: 0, - NumMessages: 73, + NumMessages: 75, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_explorer_rpc_proto_goTypes, - DependencyIndexes: file_injective_explorer_rpc_proto_depIdxs, - MessageInfos: file_injective_explorer_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_explorer_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_explorer_rpc_proto_msgTypes, }.Build() - File_injective_explorer_rpc_proto = out.File - file_injective_explorer_rpc_proto_rawDesc = nil - file_injective_explorer_rpc_proto_goTypes = nil - file_injective_explorer_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_explorer_rpc_proto = out.File + file_goadesign_goagen_injective_explorer_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_explorer_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_explorer_rpc_proto_depIdxs = nil } diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc_grpc.pb.go b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go similarity index 95% rename from exchange/explorer_rpc/pb/injective_explorer_rpc_grpc.pb.go rename to exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go index 86ed6d65..bbcb920f 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc_grpc.pb.go +++ b/exchange/explorer_rpc/pb/goadesign_goagen_injective_explorer_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_explorer_rpc.proto package injective_explorer_rpcpb @@ -22,6 +26,8 @@ type InjectiveExplorerRPCClient interface { GetAccountTxs(ctx context.Context, in *GetAccountTxsRequest, opts ...grpc.CallOption) (*GetAccountTxsResponse, error) // GetContractTxs returns contract-related transactions GetContractTxs(ctx context.Context, in *GetContractTxsRequest, opts ...grpc.CallOption) (*GetContractTxsResponse, error) + // GetContractTxs returns contract-related transactions + GetContractTxsV2(ctx context.Context, in *GetContractTxsV2Request, opts ...grpc.CallOption) (*GetContractTxsV2Response, error) // GetBlocks returns blocks based upon the request params GetBlocks(ctx context.Context, in *GetBlocksRequest, opts ...grpc.CallOption) (*GetBlocksResponse, error) // GetBlock returns block based upon the height or hash @@ -92,6 +98,15 @@ func (c *injectiveExplorerRPCClient) GetContractTxs(ctx context.Context, in *Get return out, nil } +func (c *injectiveExplorerRPCClient) GetContractTxsV2(ctx context.Context, in *GetContractTxsV2Request, opts ...grpc.CallOption) (*GetContractTxsV2Response, error) { + out := new(GetContractTxsV2Response) + err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveExplorerRPCClient) GetBlocks(ctx context.Context, in *GetBlocksRequest, opts ...grpc.CallOption) (*GetBlocksResponse, error) { out := new(GetBlocksResponse) err := c.cc.Invoke(ctx, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", in, out, opts...) @@ -317,6 +332,8 @@ type InjectiveExplorerRPCServer interface { GetAccountTxs(context.Context, *GetAccountTxsRequest) (*GetAccountTxsResponse, error) // GetContractTxs returns contract-related transactions GetContractTxs(context.Context, *GetContractTxsRequest) (*GetContractTxsResponse, error) + // GetContractTxs returns contract-related transactions + GetContractTxsV2(context.Context, *GetContractTxsV2Request) (*GetContractTxsV2Response, error) // GetBlocks returns blocks based upon the request params GetBlocks(context.Context, *GetBlocksRequest) (*GetBlocksResponse, error) // GetBlock returns block based upon the height or hash @@ -372,6 +389,9 @@ func (UnimplementedInjectiveExplorerRPCServer) GetAccountTxs(context.Context, *G func (UnimplementedInjectiveExplorerRPCServer) GetContractTxs(context.Context, *GetContractTxsRequest) (*GetContractTxsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetContractTxs not implemented") } +func (UnimplementedInjectiveExplorerRPCServer) GetContractTxsV2(context.Context, *GetContractTxsV2Request) (*GetContractTxsV2Response, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetContractTxsV2 not implemented") +} func (UnimplementedInjectiveExplorerRPCServer) GetBlocks(context.Context, *GetBlocksRequest) (*GetBlocksResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBlocks not implemented") } @@ -478,6 +498,24 @@ func _InjectiveExplorerRPC_GetContractTxs_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _InjectiveExplorerRPC_GetContractTxsV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetContractTxsV2Request) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveExplorerRPCServer).GetContractTxsV2(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveExplorerRPCServer).GetContractTxsV2(ctx, req.(*GetContractTxsV2Request)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveExplorerRPC_GetBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetBlocksRequest) if err := dec(in); err != nil { @@ -841,6 +879,10 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetContractTxs", Handler: _InjectiveExplorerRPC_GetContractTxs_Handler, }, + { + MethodName: "GetContractTxsV2", + Handler: _InjectiveExplorerRPC_GetContractTxsV2_Handler, + }, { MethodName: "GetBlocks", Handler: _InjectiveExplorerRPC_GetBlocks_Handler, @@ -922,5 +964,5 @@ var InjectiveExplorerRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_explorer_rpc.proto", + Metadata: "goadesign_goagen_injective_explorer_rpc.proto", } diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go index 0ffa21a9..06257030 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.pb.gw.go @@ -99,6 +99,40 @@ func local_request_InjectiveExplorerRPC_GetContractTxs_0(ctx context.Context, ma } +func request_InjectiveExplorerRPC_GetContractTxsV2_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetContractTxsV2Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetContractTxsV2(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveExplorerRPC_GetContractTxsV2_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveExplorerRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetContractTxsV2Request + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetContractTxsV2(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectiveExplorerRPC_GetBlocks_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveExplorerRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetBlocksRequest var metadata runtime.ServerMetadata @@ -739,20 +773,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetAccountTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetAccountTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -762,20 +798,47 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetContractTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxsV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := local_request_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveExplorerRPC_GetContractTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -785,20 +848,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetBlocks_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBlocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -808,20 +873,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetBlock_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetBlock_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBlock_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBlock_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -831,20 +898,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidators_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetValidators_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidators_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidators_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -854,20 +923,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidator_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetValidator_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidator_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidator_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -877,20 +948,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetValidatorUptime_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidatorUptime_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -900,20 +973,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -923,20 +998,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetTxByTxHash_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetTxByTxHash_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -946,20 +1023,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -969,20 +1048,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -992,20 +1073,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetIBCTransferTxs_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1015,20 +1098,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodes_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmCodes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1038,20 +1123,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodeByID_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmCodeByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1061,20 +1148,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContracts_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmContracts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1084,20 +1173,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContractByAddress_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1107,20 +1198,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetCw20Balance_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetCw20Balance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1130,20 +1223,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_Relayers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_Relayers_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_Relayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_Relayers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1153,20 +1248,22 @@ func RegisterInjectiveExplorerRPCHandlerServer(ctx context.Context, mux *runtime var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveExplorerRPC_GetBankTransfers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBankTransfers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1229,19 +1326,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetAccountTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetAccountTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetAccountTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetAccountTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1249,19 +1348,43 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetContractTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveExplorerRPC_GetContractTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveExplorerRPC_GetContractTxsV2_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetContractTxsV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := request_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveExplorerRPC_GetContractTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetContractTxsV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1269,19 +1392,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlocks")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetBlocks_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBlocks_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1289,19 +1414,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBlock")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetBlock_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetBlock_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBlock_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBlock_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1309,19 +1436,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidators")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetValidators_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetValidators_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidators_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidators_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1329,19 +1458,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidator")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetValidator_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetValidator_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidator_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidator_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1349,19 +1480,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetValidatorUptime")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetValidatorUptime_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetValidatorUptime_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetValidatorUptime_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1369,19 +1502,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1389,19 +1524,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetTxByTxHash")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetTxByTxHash_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetTxByTxHash_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetTxByTxHash_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1409,19 +1546,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyDepositTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetPeggyDepositTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1429,19 +1568,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetPeggyWithdrawalTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetPeggyWithdrawalTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1449,19 +1590,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetIBCTransferTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetIBCTransferTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetIBCTransferTxs_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1469,19 +1612,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetWasmCodes_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmCodes_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmCodes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1489,19 +1634,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmCodeByID")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetWasmCodeByID_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmCodeByID_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmCodeByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1509,19 +1656,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContracts")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetWasmContracts_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmContracts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmContracts_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1529,19 +1678,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetWasmContractByAddress")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetWasmContractByAddress_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetWasmContractByAddress_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1549,19 +1700,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetCw20Balance")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetCw20Balance_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetCw20Balance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetCw20Balance_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1569,19 +1722,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/Relayers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/Relayers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_Relayers_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_Relayers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_Relayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_Relayers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1589,19 +1744,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/GetBankTransfers")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_GetBankTransfers_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_GetBankTransfers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_GetBankTransfers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1609,19 +1766,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamTxs")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_StreamTxs_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_StreamTxs_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_StreamTxs_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_StreamTxs_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1629,19 +1788,21 @@ func RegisterInjectiveExplorerRPCHandlerClient(ctx context.Context, mux *runtime ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks", runtime.WithHTTPPathPattern("/injective_explorer_rpc.InjectiveExplorerRPC/StreamBlocks")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveExplorerRPC_StreamBlocks_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveExplorerRPC_StreamBlocks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveExplorerRPC_StreamBlocks_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveExplorerRPC_StreamBlocks_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1653,6 +1814,8 @@ var ( pattern_InjectiveExplorerRPC_GetContractTxs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetContractTxs"}, "")) + pattern_InjectiveExplorerRPC_GetContractTxsV2_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetContractTxsV2"}, "")) + pattern_InjectiveExplorerRPC_GetBlocks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetBlocks"}, "")) pattern_InjectiveExplorerRPC_GetBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_explorer_rpc.InjectiveExplorerRPC", "GetBlock"}, "")) @@ -1697,6 +1860,8 @@ var ( forward_InjectiveExplorerRPC_GetContractTxs_0 = runtime.ForwardResponseMessage + forward_InjectiveExplorerRPC_GetContractTxsV2_0 = runtime.ForwardResponseMessage + forward_InjectiveExplorerRPC_GetBlocks_0 = runtime.ForwardResponseMessage forward_InjectiveExplorerRPC_GetBlock_0 = runtime.ForwardResponseMessage diff --git a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto index a834b35e..077fc0bc 100644 --- a/exchange/explorer_rpc/pb/injective_explorer_rpc.proto +++ b/exchange/explorer_rpc/pb/injective_explorer_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveExplorerRPC protocol buffer definition // @@ -17,6 +17,8 @@ service InjectiveExplorerRPC { rpc GetAccountTxs (GetAccountTxsRequest) returns (GetAccountTxsResponse); // GetContractTxs returns contract-related transactions rpc GetContractTxs (GetContractTxsRequest) returns (GetContractTxsResponse); + // GetContractTxs returns contract-related transactions + rpc GetContractTxsV2 (GetContractTxsV2Request) returns (GetContractTxsV2Response); // GetBlocks returns blocks based upon the request params rpc GetBlocks (GetBlocksRequest) returns (GetBlocksResponse); // GetBlock returns block based upon the height or hash @@ -170,10 +172,33 @@ message GetContractTxsResponse { repeated TxDetailData data = 2; } +message GetContractTxsV2Request { + // Address of contract + string address = 1; + // Height of the block + uint64 height = 2; + // Unix timestamp (UTC) in milliseconds + sint64 from = 3; + // Unix timestamp (UTC) in milliseconds + sint64 to = 4; + sint32 limit = 5; + // Pagination token + string token = 6; +} + +message GetContractTxsV2Response { + repeated string next = 1; + repeated TxDetailData data = 2; +} + message GetBlocksRequest { uint64 before = 1; uint64 after = 2; sint32 limit = 3; + // Unix timestamp (UTC) in milliseconds + uint64 from = 4; + // Unix timestamp (UTC) in milliseconds + uint64 to = 5; } message GetBlocksResponse { diff --git a/exchange/health_rpc/pb/goadesign_goagen_health.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go new file mode 100644 index 00000000..1a3968ae --- /dev/null +++ b/exchange/health_rpc/pb/goadesign_goagen_health.pb.go @@ -0,0 +1,341 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// health protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.19.4 +// source: goadesign_goagen_health.proto + +package api_v1pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GetStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetStatusRequest) Reset() { + *x = GetStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_health_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusRequest) ProtoMessage() {} + +func (x *GetStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_health_proto_msgTypes[0] + 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 GetStatusRequest.ProtoReflect.Descriptor instead. +func (*GetStatusRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_health_proto_rawDescGZIP(), []int{0} +} + +type GetStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Status of the response. + S string `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` + // Error message. + Errmsg string `protobuf:"bytes,2,opt,name=errmsg,proto3" json:"errmsg,omitempty"` + Data *HealthStatus `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *GetStatusResponse) Reset() { + *x = GetStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_health_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusResponse) ProtoMessage() {} + +func (x *GetStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_health_proto_msgTypes[1] + 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 GetStatusResponse.ProtoReflect.Descriptor instead. +func (*GetStatusResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_health_proto_rawDescGZIP(), []int{1} +} + +func (x *GetStatusResponse) GetS() string { + if x != nil { + return x.S + } + return "" +} + +func (x *GetStatusResponse) GetErrmsg() string { + if x != nil { + return x.Errmsg + } + return "" +} + +func (x *GetStatusResponse) GetData() *HealthStatus { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetStatusResponse) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +// Status defines the structure for health information +type HealthStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Block height from local mongo exchange db. + LocalHeight int32 `protobuf:"zigzag32,1,opt,name=local_height,json=localHeight,proto3" json:"local_height,omitempty"` + // block timestamp from local mongo exchange db. + LocalTimestamp int32 `protobuf:"zigzag32,2,opt,name=local_timestamp,json=localTimestamp,proto3" json:"local_timestamp,omitempty"` + // block height from Horacle service. + HoracleHeight int32 `protobuf:"zigzag32,3,opt,name=horacle_height,json=horacleHeight,proto3" json:"horacle_height,omitempty"` + // block timestamp from Horacle service. + HoracleTimestamp int32 `protobuf:"zigzag32,4,opt,name=horacle_timestamp,json=horacleTimestamp,proto3" json:"horacle_timestamp,omitempty"` +} + +func (x *HealthStatus) Reset() { + *x = HealthStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_health_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthStatus) ProtoMessage() {} + +func (x *HealthStatus) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_health_proto_msgTypes[2] + 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 HealthStatus.ProtoReflect.Descriptor instead. +func (*HealthStatus) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_health_proto_rawDescGZIP(), []int{2} +} + +func (x *HealthStatus) GetLocalHeight() int32 { + if x != nil { + return x.LocalHeight + } + return 0 +} + +func (x *HealthStatus) GetLocalTimestamp() int32 { + if x != nil { + return x.LocalTimestamp + } + return 0 +} + +func (x *HealthStatus) GetHoracleHeight() int32 { + if x != nil { + return x.HoracleHeight + } + return 0 +} + +func (x *HealthStatus) GetHoracleTimestamp() int32 { + if x != nil { + return x.HoracleTimestamp + } + return 0 +} + +var File_goadesign_goagen_health_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_health_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x06, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7b, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x0b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, 0x68, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2b, 0x0a, 0x11, + 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x4a, 0x0a, 0x06, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_health_proto_rawDescOnce sync.Once + file_goadesign_goagen_health_proto_rawDescData = file_goadesign_goagen_health_proto_rawDesc +) + +func file_goadesign_goagen_health_proto_rawDescGZIP() []byte { + file_goadesign_goagen_health_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_health_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_health_proto_rawDescData) + }) + return file_goadesign_goagen_health_proto_rawDescData +} + +var file_goadesign_goagen_health_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_goadesign_goagen_health_proto_goTypes = []interface{}{ + (*GetStatusRequest)(nil), // 0: api.v1.GetStatusRequest + (*GetStatusResponse)(nil), // 1: api.v1.GetStatusResponse + (*HealthStatus)(nil), // 2: api.v1.HealthStatus +} +var file_goadesign_goagen_health_proto_depIdxs = []int32{ + 2, // 0: api.v1.GetStatusResponse.data:type_name -> api.v1.HealthStatus + 0, // 1: api.v1.Health.GetStatus:input_type -> api.v1.GetStatusRequest + 1, // 2: api.v1.Health.GetStatus:output_type -> api.v1.GetStatusResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_health_proto_init() } +func file_goadesign_goagen_health_proto_init() { + if File_goadesign_goagen_health_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_health_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_health_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_health_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HealthStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_health_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_health_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_health_proto_depIdxs, + MessageInfos: file_goadesign_goagen_health_proto_msgTypes, + }.Build() + File_goadesign_goagen_health_proto = out.File + file_goadesign_goagen_health_proto_rawDesc = nil + file_goadesign_goagen_health_proto_goTypes = nil + file_goadesign_goagen_health_proto_depIdxs = nil +} diff --git a/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go new file mode 100644 index 00000000..193c66cf --- /dev/null +++ b/exchange/health_rpc/pb/goadesign_goagen_health_grpc.pb.go @@ -0,0 +1,107 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_health.proto + +package api_v1pb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// HealthClient is the client API for Health service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type HealthClient interface { + // Get current backend health status + GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) +} + +type healthClient struct { + cc grpc.ClientConnInterface +} + +func NewHealthClient(cc grpc.ClientConnInterface) HealthClient { + return &healthClient{cc} +} + +func (c *healthClient) GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) { + out := new(GetStatusResponse) + err := c.cc.Invoke(ctx, "/api.v1.Health/GetStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HealthServer is the server API for Health service. +// All implementations must embed UnimplementedHealthServer +// for forward compatibility +type HealthServer interface { + // Get current backend health status + GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) + mustEmbedUnimplementedHealthServer() +} + +// UnimplementedHealthServer must be embedded to have forward compatible implementations. +type UnimplementedHealthServer struct { +} + +func (UnimplementedHealthServer) GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStatus not implemented") +} +func (UnimplementedHealthServer) mustEmbedUnimplementedHealthServer() {} + +// UnsafeHealthServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to HealthServer will +// result in compilation errors. +type UnsafeHealthServer interface { + mustEmbedUnimplementedHealthServer() +} + +func RegisterHealthServer(s grpc.ServiceRegistrar, srv HealthServer) { + s.RegisterService(&Health_ServiceDesc, srv) +} + +func _Health_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HealthServer).GetStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/api.v1.Health/GetStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HealthServer).GetStatus(ctx, req.(*GetStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Health_ServiceDesc is the grpc.ServiceDesc for Health service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Health_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "api.v1.Health", + HandlerType: (*HealthServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetStatus", + Handler: _Health_GetStatus_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "goadesign_goagen_health.proto", +} diff --git a/exchange/health_rpc/pb/health.pb.gw.go b/exchange/health_rpc/pb/health.pb.gw.go new file mode 100644 index 00000000..e52ca0e3 --- /dev/null +++ b/exchange/health_rpc/pb/health.pb.gw.go @@ -0,0 +1,171 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: health.proto + +/* +Package api_v1pb is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package api_v1pb + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +func request_Health_GetStatus_0(ctx context.Context, marshaler runtime.Marshaler, client HealthClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatusRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Health_GetStatus_0(ctx context.Context, marshaler runtime.Marshaler, server HealthServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStatusRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetStatus(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterHealthHandlerServer registers the http handlers for service Health to "mux". +// UnaryRPC :call HealthServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterHealthHandlerFromEndpoint instead. +func RegisterHealthHandlerServer(ctx context.Context, mux *runtime.ServeMux, server HealthServer) error { + + mux.Handle("POST", pattern_Health_GetStatus_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/api.v1.Health/GetStatus", runtime.WithHTTPPathPattern("/api.v1.Health/GetStatus")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Health_GetStatus_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Health_GetStatus_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterHealthHandlerFromEndpoint is same as RegisterHealthHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterHealthHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterHealthHandler(ctx, mux, conn) +} + +// RegisterHealthHandler registers the http handlers for service Health to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterHealthHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterHealthHandlerClient(ctx, mux, NewHealthClient(conn)) +} + +// RegisterHealthHandlerClient registers the http handlers for service Health +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "HealthClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "HealthClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "HealthClient" to call the correct interceptors. +func RegisterHealthHandlerClient(ctx context.Context, mux *runtime.ServeMux, client HealthClient) error { + + mux.Handle("POST", pattern_Health_GetStatus_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/api.v1.Health/GetStatus", runtime.WithHTTPPathPattern("/api.v1.Health/GetStatus")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Health_GetStatus_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Health_GetStatus_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_Health_GetStatus_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api.v1.Health", "GetStatus"}, "")) +) + +var ( + forward_Health_GetStatus_0 = runtime.ForwardResponseMessage +) diff --git a/exchange/health_rpc/pb/health.proto b/exchange/health_rpc/pb/health.proto new file mode 100644 index 00000000..0d503603 --- /dev/null +++ b/exchange/health_rpc/pb/health.proto @@ -0,0 +1,41 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// health protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +syntax = "proto3"; + +package api.v1; + +option go_package = "/api.v1pb"; + +// HealthAPI allows to check if backend data is up-to-date and reliable or not. +service Health { + // Get current backend health status + rpc GetStatus (GetStatusRequest) returns (GetStatusResponse); +} + +message GetStatusRequest { +} + +message GetStatusResponse { + // Status of the response. + string s = 1; + // Error message. + string errmsg = 2; + HealthStatus data = 3; + string status = 4; +} +// Status defines the structure for health information +message HealthStatus { + // Block height from local mongo exchange db. + sint32 local_height = 1; + // block timestamp from local mongo exchange db. + sint32 local_timestamp = 2; + // block height from Horacle service. + sint32 horacle_height = 3; + // block timestamp from Horacle service. + sint32 horacle_timestamp = 4; +} diff --git a/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go new file mode 100644 index 00000000..400542ac --- /dev/null +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc.pb.go @@ -0,0 +1,993 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectiveInsuranceRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.19.4 +// source: goadesign_goagen_injective_insurance_rpc.proto + +package injective_insurance_rpcpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type FundsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FundsRequest) Reset() { + *x = FundsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundsRequest) ProtoMessage() {} + +func (x *FundsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[0] + 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 FundsRequest.ProtoReflect.Descriptor instead. +func (*FundsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{0} +} + +type FundsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Funds []*InsuranceFund `protobuf:"bytes,1,rep,name=funds,proto3" json:"funds,omitempty"` +} + +func (x *FundsResponse) Reset() { + *x = FundsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundsResponse) ProtoMessage() {} + +func (x *FundsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[1] + 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 FundsResponse.ProtoReflect.Descriptor instead. +func (*FundsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *FundsResponse) GetFunds() []*InsuranceFund { + if x != nil { + return x.Funds + } + return nil +} + +type InsuranceFund struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ticker of the derivative market. + MarketTicker string `protobuf:"bytes,1,opt,name=market_ticker,json=marketTicker,proto3" json:"market_ticker,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // Coin denom used for the underwriting of the insurance fund. + DepositDenom string `protobuf:"bytes,3,opt,name=deposit_denom,json=depositDenom,proto3" json:"deposit_denom,omitempty"` + // Pool token denom + PoolTokenDenom string `protobuf:"bytes,4,opt,name=pool_token_denom,json=poolTokenDenom,proto3" json:"pool_token_denom,omitempty"` + // Redemption notice period duration in seconds. + RedemptionNoticePeriodDuration int64 `protobuf:"zigzag64,5,opt,name=redemption_notice_period_duration,json=redemptionNoticePeriodDuration,proto3" json:"redemption_notice_period_duration,omitempty"` + Balance string `protobuf:"bytes,6,opt,name=balance,proto3" json:"balance,omitempty"` + TotalShare string `protobuf:"bytes,7,opt,name=total_share,json=totalShare,proto3" json:"total_share,omitempty"` + // Oracle base currency + OracleBase string `protobuf:"bytes,8,opt,name=oracle_base,json=oracleBase,proto3" json:"oracle_base,omitempty"` + // Oracle quote currency + OracleQuote string `protobuf:"bytes,9,opt,name=oracle_quote,json=oracleQuote,proto3" json:"oracle_quote,omitempty"` + // Oracle Type + OracleType string `protobuf:"bytes,10,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` + // Defines the expiry, if any + Expiry int64 `protobuf:"zigzag64,11,opt,name=expiry,proto3" json:"expiry,omitempty"` + // Token metadata for the deposit asset, only for Ethereum-based assets + DepositTokenMeta *TokenMeta `protobuf:"bytes,12,opt,name=deposit_token_meta,json=depositTokenMeta,proto3" json:"deposit_token_meta,omitempty"` +} + +func (x *InsuranceFund) Reset() { + *x = InsuranceFund{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InsuranceFund) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InsuranceFund) ProtoMessage() {} + +func (x *InsuranceFund) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[2] + 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 InsuranceFund.ProtoReflect.Descriptor instead. +func (*InsuranceFund) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *InsuranceFund) GetMarketTicker() string { + if x != nil { + return x.MarketTicker + } + return "" +} + +func (x *InsuranceFund) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *InsuranceFund) GetDepositDenom() string { + if x != nil { + return x.DepositDenom + } + return "" +} + +func (x *InsuranceFund) GetPoolTokenDenom() string { + if x != nil { + return x.PoolTokenDenom + } + return "" +} + +func (x *InsuranceFund) GetRedemptionNoticePeriodDuration() int64 { + if x != nil { + return x.RedemptionNoticePeriodDuration + } + return 0 +} + +func (x *InsuranceFund) GetBalance() string { + if x != nil { + return x.Balance + } + return "" +} + +func (x *InsuranceFund) GetTotalShare() string { + if x != nil { + return x.TotalShare + } + return "" +} + +func (x *InsuranceFund) GetOracleBase() string { + if x != nil { + return x.OracleBase + } + return "" +} + +func (x *InsuranceFund) GetOracleQuote() string { + if x != nil { + return x.OracleQuote + } + return "" +} + +func (x *InsuranceFund) GetOracleType() string { + if x != nil { + return x.OracleType + } + return "" +} + +func (x *InsuranceFund) GetExpiry() int64 { + if x != nil { + return x.Expiry + } + return 0 +} + +func (x *InsuranceFund) GetDepositTokenMeta() *TokenMeta { + if x != nil { + return x.DepositTokenMeta + } + return nil +} + +type TokenMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Token full name + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Token Ethereum contract address + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // Token symbol short name + Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` + // URL to the logo image + Logo string `protobuf:"bytes,4,opt,name=logo,proto3" json:"logo,omitempty"` + // Token decimals + Decimals int32 `protobuf:"zigzag32,5,opt,name=decimals,proto3" json:"decimals,omitempty"` + // Token metadata fetched timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` +} + +func (x *TokenMeta) Reset() { + *x = TokenMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokenMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokenMeta) ProtoMessage() {} + +func (x *TokenMeta) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[3] + 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 TokenMeta.ProtoReflect.Descriptor instead. +func (*TokenMeta) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *TokenMeta) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TokenMeta) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *TokenMeta) GetSymbol() string { + if x != nil { + return x.Symbol + } + return "" +} + +func (x *TokenMeta) GetLogo() string { + if x != nil { + return x.Logo + } + return "" +} + +func (x *TokenMeta) GetDecimals() int32 { + if x != nil { + return x.Decimals + } + return 0 +} + +func (x *TokenMeta) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +type FundRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // denom of insurance fund + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` +} + +func (x *FundRequest) Reset() { + *x = FundRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundRequest) ProtoMessage() {} + +func (x *FundRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[4] + 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 FundRequest.ProtoReflect.Descriptor instead. +func (*FundRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *FundRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +type FundResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The insurance fund corresponding to the provided token denom + Fund *InsuranceFund `protobuf:"bytes,1,opt,name=fund,proto3" json:"fund,omitempty"` +} + +func (x *FundResponse) Reset() { + *x = FundResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FundResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FundResponse) ProtoMessage() {} + +func (x *FundResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[5] + 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 FundResponse.ProtoReflect.Descriptor instead. +func (*FundResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{5} +} + +func (x *FundResponse) GetFund() *InsuranceFund { + if x != nil { + return x.Fund + } + return nil +} + +type RedemptionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address of the redemption owner + Redeemer string `protobuf:"bytes,1,opt,name=redeemer,proto3" json:"redeemer,omitempty"` + // Denom of the insurance pool token. + RedemptionDenom string `protobuf:"bytes,2,opt,name=redemption_denom,json=redemptionDenom,proto3" json:"redemption_denom,omitempty"` + // Status of the redemption. Either pending or disbursed. + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *RedemptionsRequest) Reset() { + *x = RedemptionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedemptionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedemptionsRequest) ProtoMessage() {} + +func (x *RedemptionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[6] + 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 RedemptionsRequest.ProtoReflect.Descriptor instead. +func (*RedemptionsRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *RedemptionsRequest) GetRedeemer() string { + if x != nil { + return x.Redeemer + } + return "" +} + +func (x *RedemptionsRequest) GetRedemptionDenom() string { + if x != nil { + return x.RedemptionDenom + } + return "" +} + +func (x *RedemptionsRequest) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +type RedemptionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RedemptionSchedules []*RedemptionSchedule `protobuf:"bytes,1,rep,name=redemption_schedules,json=redemptionSchedules,proto3" json:"redemption_schedules,omitempty"` +} + +func (x *RedemptionsResponse) Reset() { + *x = RedemptionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedemptionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedemptionsResponse) ProtoMessage() {} + +func (x *RedemptionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[7] + 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 RedemptionsResponse.ProtoReflect.Descriptor instead. +func (*RedemptionsResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *RedemptionsResponse) GetRedemptionSchedules() []*RedemptionSchedule { + if x != nil { + return x.RedemptionSchedules + } + return nil +} + +type RedemptionSchedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Redemption ID. + RedemptionId uint64 `protobuf:"varint,1,opt,name=redemption_id,json=redemptionId,proto3" json:"redemption_id,omitempty"` + // Status of the redemption. Either pending or disbursed. + Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + // Account address of the redemption owner + Redeemer string `protobuf:"bytes,3,opt,name=redeemer,proto3" json:"redeemer,omitempty"` + // Claimable redemption time in seconds + ClaimableRedemptionTime int64 `protobuf:"zigzag64,4,opt,name=claimable_redemption_time,json=claimableRedemptionTime,proto3" json:"claimable_redemption_time,omitempty"` + // Amount of pool tokens being redeemed. + RedemptionAmount string `protobuf:"bytes,5,opt,name=redemption_amount,json=redemptionAmount,proto3" json:"redemption_amount,omitempty"` + // Pool token denom being redeemed. + RedemptionDenom string `protobuf:"bytes,6,opt,name=redemption_denom,json=redemptionDenom,proto3" json:"redemption_denom,omitempty"` + // Redemption request time in unix milliseconds. + RequestedAt int64 `protobuf:"zigzag64,7,opt,name=requested_at,json=requestedAt,proto3" json:"requested_at,omitempty"` + // Amount of quote tokens disbursed + DisbursedAmount string `protobuf:"bytes,8,opt,name=disbursed_amount,json=disbursedAmount,proto3" json:"disbursed_amount,omitempty"` + // Denom of the quote tokens disbursed + DisbursedDenom string `protobuf:"bytes,9,opt,name=disbursed_denom,json=disbursedDenom,proto3" json:"disbursed_denom,omitempty"` + // Redemption disbursement time in unix milliseconds. + DisbursedAt int64 `protobuf:"zigzag64,10,opt,name=disbursed_at,json=disbursedAt,proto3" json:"disbursed_at,omitempty"` +} + +func (x *RedemptionSchedule) Reset() { + *x = RedemptionSchedule{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RedemptionSchedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RedemptionSchedule) ProtoMessage() {} + +func (x *RedemptionSchedule) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[8] + 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 RedemptionSchedule.ProtoReflect.Descriptor instead. +func (*RedemptionSchedule) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *RedemptionSchedule) GetRedemptionId() uint64 { + if x != nil { + return x.RedemptionId + } + return 0 +} + +func (x *RedemptionSchedule) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *RedemptionSchedule) GetRedeemer() string { + if x != nil { + return x.Redeemer + } + return "" +} + +func (x *RedemptionSchedule) GetClaimableRedemptionTime() int64 { + if x != nil { + return x.ClaimableRedemptionTime + } + return 0 +} + +func (x *RedemptionSchedule) GetRedemptionAmount() string { + if x != nil { + return x.RedemptionAmount + } + return "" +} + +func (x *RedemptionSchedule) GetRedemptionDenom() string { + if x != nil { + return x.RedemptionDenom + } + return "" +} + +func (x *RedemptionSchedule) GetRequestedAt() int64 { + if x != nil { + return x.RequestedAt + } + return 0 +} + +func (x *RedemptionSchedule) GetDisbursedAmount() string { + if x != nil { + return x.DisbursedAmount + } + return "" +} + +func (x *RedemptionSchedule) GetDisbursedDenom() string { + if x != nil { + return x.DisbursedDenom + } + return "" +} + +func (x *RedemptionSchedule) GetDisbursedAt() int64 { + if x != nil { + return x.DisbursedAt + } + return 0 +} + +var File_goadesign_goagen_injective_insurance_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_insurance_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, + 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x17, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, + 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x75, 0x6e, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x0d, 0x46, 0x75, 0x6e, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x75, + 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, + 0x64, 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x22, 0xf5, 0x03, 0x0a, 0x0d, 0x49, 0x6e, 0x73, + 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 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, 0x23, 0x0a, 0x0d, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x6f, + 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x49, 0x0a, 0x21, 0x72, + 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x1e, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x42, 0x61, + 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, + 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x50, + 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x10, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 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, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, + 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, + 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x23, 0x0a, 0x0b, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x49, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x04, + 0x66, 0x75, 0x6e, 0x64, 0x22, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x75, 0x0a, 0x13, 0x52, 0x65, 0x64, + 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5e, 0x0a, 0x14, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x13, 0x72, 0x65, 0x64, + 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, + 0x22, 0x9b, 0x03, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x65, 0x6d, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, + 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, + 0x12, 0x3a, 0x0a, 0x19, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, + 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x12, 0x52, 0x17, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, + 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x64, + 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x62, 0x75, + 0x72, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x5f, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, + 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x41, 0x74, 0x32, 0xae, + 0x02, 0x0a, 0x15, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x75, + 0x72, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x50, 0x43, 0x12, 0x56, 0x0a, 0x05, 0x46, 0x75, 0x6e, 0x64, + 0x73, 0x12, 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x53, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x64, 0x65, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x1c, 0x5a, 0x1a, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, + 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_injective_insurance_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_insurance_rpc_proto_rawDescData = file_goadesign_goagen_injective_insurance_rpc_proto_rawDesc +) + +func file_goadesign_goagen_injective_insurance_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_insurance_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_insurance_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_insurance_rpc_proto_rawDescData) + }) + return file_goadesign_goagen_injective_insurance_rpc_proto_rawDescData +} + +var file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_goadesign_goagen_injective_insurance_rpc_proto_goTypes = []interface{}{ + (*FundsRequest)(nil), // 0: injective_insurance_rpc.FundsRequest + (*FundsResponse)(nil), // 1: injective_insurance_rpc.FundsResponse + (*InsuranceFund)(nil), // 2: injective_insurance_rpc.InsuranceFund + (*TokenMeta)(nil), // 3: injective_insurance_rpc.TokenMeta + (*FundRequest)(nil), // 4: injective_insurance_rpc.FundRequest + (*FundResponse)(nil), // 5: injective_insurance_rpc.FundResponse + (*RedemptionsRequest)(nil), // 6: injective_insurance_rpc.RedemptionsRequest + (*RedemptionsResponse)(nil), // 7: injective_insurance_rpc.RedemptionsResponse + (*RedemptionSchedule)(nil), // 8: injective_insurance_rpc.RedemptionSchedule +} +var file_goadesign_goagen_injective_insurance_rpc_proto_depIdxs = []int32{ + 2, // 0: injective_insurance_rpc.FundsResponse.funds:type_name -> injective_insurance_rpc.InsuranceFund + 3, // 1: injective_insurance_rpc.InsuranceFund.deposit_token_meta:type_name -> injective_insurance_rpc.TokenMeta + 2, // 2: injective_insurance_rpc.FundResponse.fund:type_name -> injective_insurance_rpc.InsuranceFund + 8, // 3: injective_insurance_rpc.RedemptionsResponse.redemption_schedules:type_name -> injective_insurance_rpc.RedemptionSchedule + 0, // 4: injective_insurance_rpc.InjectiveInsuranceRPC.Funds:input_type -> injective_insurance_rpc.FundsRequest + 4, // 5: injective_insurance_rpc.InjectiveInsuranceRPC.Fund:input_type -> injective_insurance_rpc.FundRequest + 6, // 6: injective_insurance_rpc.InjectiveInsuranceRPC.Redemptions:input_type -> injective_insurance_rpc.RedemptionsRequest + 1, // 7: injective_insurance_rpc.InjectiveInsuranceRPC.Funds:output_type -> injective_insurance_rpc.FundsResponse + 5, // 8: injective_insurance_rpc.InjectiveInsuranceRPC.Fund:output_type -> injective_insurance_rpc.FundResponse + 7, // 9: injective_insurance_rpc.InjectiveInsuranceRPC.Redemptions:output_type -> injective_insurance_rpc.RedemptionsResponse + 7, // [7:10] is the sub-list for method output_type + 4, // [4:7] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_insurance_rpc_proto_init() } +func file_goadesign_goagen_injective_insurance_rpc_proto_init() { + if File_goadesign_goagen_injective_insurance_rpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsuranceFund); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FundResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedemptionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedemptionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RedemptionSchedule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_injective_insurance_rpc_proto_rawDesc, + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_injective_insurance_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_insurance_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_insurance_rpc_proto_msgTypes, + }.Build() + File_goadesign_goagen_injective_insurance_rpc_proto = out.File + file_goadesign_goagen_injective_insurance_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_insurance_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_insurance_rpc_proto_depIdxs = nil +} diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc_grpc.pb.go b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go similarity index 76% rename from exchange/insurance_rpc/pb/injective_insurance_rpc_grpc.pb.go rename to exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go index c2da7f7a..5a87cd1a 100644 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc_grpc.pb.go +++ b/exchange/insurance_rpc/pb/goadesign_goagen_injective_insurance_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_insurance_rpc.proto package injective_insurance_rpcpb @@ -20,6 +24,8 @@ const _ = grpc.SupportPackageIsVersion7 type InjectiveInsuranceRPCClient interface { // Funds lists all insurance funds. Funds(ctx context.Context, in *FundsRequest, opts ...grpc.CallOption) (*FundsResponse, error) + // Funds returns an insurance fund for a given insurance fund token denom. + Fund(ctx context.Context, in *FundRequest, opts ...grpc.CallOption) (*FundResponse, error) // PendingRedemptions lists all pending redemptions according to a filter Redemptions(ctx context.Context, in *RedemptionsRequest, opts ...grpc.CallOption) (*RedemptionsResponse, error) } @@ -41,6 +47,15 @@ func (c *injectiveInsuranceRPCClient) Funds(ctx context.Context, in *FundsReques return out, nil } +func (c *injectiveInsuranceRPCClient) Fund(ctx context.Context, in *FundRequest, opts ...grpc.CallOption) (*FundResponse, error) { + out := new(FundResponse) + err := c.cc.Invoke(ctx, "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectiveInsuranceRPCClient) Redemptions(ctx context.Context, in *RedemptionsRequest, opts ...grpc.CallOption) (*RedemptionsResponse, error) { out := new(RedemptionsResponse) err := c.cc.Invoke(ctx, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", in, out, opts...) @@ -56,6 +71,8 @@ func (c *injectiveInsuranceRPCClient) Redemptions(ctx context.Context, in *Redem type InjectiveInsuranceRPCServer interface { // Funds lists all insurance funds. Funds(context.Context, *FundsRequest) (*FundsResponse, error) + // Funds returns an insurance fund for a given insurance fund token denom. + Fund(context.Context, *FundRequest) (*FundResponse, error) // PendingRedemptions lists all pending redemptions according to a filter Redemptions(context.Context, *RedemptionsRequest) (*RedemptionsResponse, error) mustEmbedUnimplementedInjectiveInsuranceRPCServer() @@ -68,6 +85,9 @@ type UnimplementedInjectiveInsuranceRPCServer struct { func (UnimplementedInjectiveInsuranceRPCServer) Funds(context.Context, *FundsRequest) (*FundsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Funds not implemented") } +func (UnimplementedInjectiveInsuranceRPCServer) Fund(context.Context, *FundRequest) (*FundResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Fund not implemented") +} func (UnimplementedInjectiveInsuranceRPCServer) Redemptions(context.Context, *RedemptionsRequest) (*RedemptionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Redemptions not implemented") } @@ -102,6 +122,24 @@ func _InjectiveInsuranceRPC_Funds_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _InjectiveInsuranceRPC_Fund_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FundRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectiveInsuranceRPCServer).Fund(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectiveInsuranceRPCServer).Fund(ctx, req.(*FundRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectiveInsuranceRPC_Redemptions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RedemptionsRequest) if err := dec(in); err != nil { @@ -131,11 +169,15 @@ var InjectiveInsuranceRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "Funds", Handler: _InjectiveInsuranceRPC_Funds_Handler, }, + { + MethodName: "Fund", + Handler: _InjectiveInsuranceRPC_Fund_Handler, + }, { MethodName: "Redemptions", Handler: _InjectiveInsuranceRPC_Redemptions_Handler, }, }, Streams: []grpc.StreamDesc{}, - Metadata: "injective_insurance_rpc.proto", + Metadata: "goadesign_goagen_injective_insurance_rpc.proto", } diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.go b/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.go deleted file mode 100644 index 6e52b6d8..00000000 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.go +++ /dev/null @@ -1,854 +0,0 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. -// -// InjectiveInsuranceRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: injective_insurance_rpc.proto - -package injective_insurance_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type FundsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *FundsRequest) Reset() { - *x = FundsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundsRequest) ProtoMessage() {} - -func (x *FundsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[0] - 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 FundsRequest.ProtoReflect.Descriptor instead. -func (*FundsRequest) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{0} -} - -type FundsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Funds []*InsuranceFund `protobuf:"bytes,1,rep,name=funds,proto3" json:"funds,omitempty"` -} - -func (x *FundsResponse) Reset() { - *x = FundsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FundsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FundsResponse) ProtoMessage() {} - -func (x *FundsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[1] - 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 FundsResponse.ProtoReflect.Descriptor instead. -func (*FundsResponse) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *FundsResponse) GetFunds() []*InsuranceFund { - if x != nil { - return x.Funds - } - return nil -} - -type InsuranceFund struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Ticker of the derivative market. - MarketTicker string `protobuf:"bytes,1,opt,name=market_ticker,json=marketTicker,proto3" json:"market_ticker,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // Coin denom used for the underwriting of the insurance fund. - DepositDenom string `protobuf:"bytes,3,opt,name=deposit_denom,json=depositDenom,proto3" json:"deposit_denom,omitempty"` - // Pool token denom - PoolTokenDenom string `protobuf:"bytes,4,opt,name=pool_token_denom,json=poolTokenDenom,proto3" json:"pool_token_denom,omitempty"` - // Redemption notice period duration in seconds. - RedemptionNoticePeriodDuration int64 `protobuf:"zigzag64,5,opt,name=redemption_notice_period_duration,json=redemptionNoticePeriodDuration,proto3" json:"redemption_notice_period_duration,omitempty"` - Balance string `protobuf:"bytes,6,opt,name=balance,proto3" json:"balance,omitempty"` - TotalShare string `protobuf:"bytes,7,opt,name=total_share,json=totalShare,proto3" json:"total_share,omitempty"` - // Oracle base currency - OracleBase string `protobuf:"bytes,8,opt,name=oracle_base,json=oracleBase,proto3" json:"oracle_base,omitempty"` - // Oracle quote currency - OracleQuote string `protobuf:"bytes,9,opt,name=oracle_quote,json=oracleQuote,proto3" json:"oracle_quote,omitempty"` - // Oracle Type - OracleType string `protobuf:"bytes,10,opt,name=oracle_type,json=oracleType,proto3" json:"oracle_type,omitempty"` - // Defines the expiry, if any - Expiry int64 `protobuf:"zigzag64,11,opt,name=expiry,proto3" json:"expiry,omitempty"` - // Token metadata for the deposit asset, only for Ethereum-based assets - DepositTokenMeta *TokenMeta `protobuf:"bytes,12,opt,name=deposit_token_meta,json=depositTokenMeta,proto3" json:"deposit_token_meta,omitempty"` -} - -func (x *InsuranceFund) Reset() { - *x = InsuranceFund{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InsuranceFund) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InsuranceFund) ProtoMessage() {} - -func (x *InsuranceFund) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[2] - 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 InsuranceFund.ProtoReflect.Descriptor instead. -func (*InsuranceFund) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *InsuranceFund) GetMarketTicker() string { - if x != nil { - return x.MarketTicker - } - return "" -} - -func (x *InsuranceFund) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *InsuranceFund) GetDepositDenom() string { - if x != nil { - return x.DepositDenom - } - return "" -} - -func (x *InsuranceFund) GetPoolTokenDenom() string { - if x != nil { - return x.PoolTokenDenom - } - return "" -} - -func (x *InsuranceFund) GetRedemptionNoticePeriodDuration() int64 { - if x != nil { - return x.RedemptionNoticePeriodDuration - } - return 0 -} - -func (x *InsuranceFund) GetBalance() string { - if x != nil { - return x.Balance - } - return "" -} - -func (x *InsuranceFund) GetTotalShare() string { - if x != nil { - return x.TotalShare - } - return "" -} - -func (x *InsuranceFund) GetOracleBase() string { - if x != nil { - return x.OracleBase - } - return "" -} - -func (x *InsuranceFund) GetOracleQuote() string { - if x != nil { - return x.OracleQuote - } - return "" -} - -func (x *InsuranceFund) GetOracleType() string { - if x != nil { - return x.OracleType - } - return "" -} - -func (x *InsuranceFund) GetExpiry() int64 { - if x != nil { - return x.Expiry - } - return 0 -} - -func (x *InsuranceFund) GetDepositTokenMeta() *TokenMeta { - if x != nil { - return x.DepositTokenMeta - } - return nil -} - -type TokenMeta struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Token full name - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Token Ethereum contract address - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` - // Token symbol short name - Symbol string `protobuf:"bytes,3,opt,name=symbol,proto3" json:"symbol,omitempty"` - // URL to the logo image - Logo string `protobuf:"bytes,4,opt,name=logo,proto3" json:"logo,omitempty"` - // Token decimals - Decimals int32 `protobuf:"zigzag32,5,opt,name=decimals,proto3" json:"decimals,omitempty"` - // Token metadata fetched timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *TokenMeta) Reset() { - *x = TokenMeta{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TokenMeta) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TokenMeta) ProtoMessage() {} - -func (x *TokenMeta) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[3] - 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 TokenMeta.ProtoReflect.Descriptor instead. -func (*TokenMeta) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *TokenMeta) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *TokenMeta) GetAddress() string { - if x != nil { - return x.Address - } - return "" -} - -func (x *TokenMeta) GetSymbol() string { - if x != nil { - return x.Symbol - } - return "" -} - -func (x *TokenMeta) GetLogo() string { - if x != nil { - return x.Logo - } - return "" -} - -func (x *TokenMeta) GetDecimals() int32 { - if x != nil { - return x.Decimals - } - return 0 -} - -func (x *TokenMeta) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -type RedemptionsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address of the redemption owner - Redeemer string `protobuf:"bytes,1,opt,name=redeemer,proto3" json:"redeemer,omitempty"` - // Denom of the insurance pool token. - RedemptionDenom string `protobuf:"bytes,2,opt,name=redemption_denom,json=redemptionDenom,proto3" json:"redemption_denom,omitempty"` - // Status of the redemption. Either pending or disbursed. - Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` -} - -func (x *RedemptionsRequest) Reset() { - *x = RedemptionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RedemptionsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RedemptionsRequest) ProtoMessage() {} - -func (x *RedemptionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[4] - 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 RedemptionsRequest.ProtoReflect.Descriptor instead. -func (*RedemptionsRequest) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{4} -} - -func (x *RedemptionsRequest) GetRedeemer() string { - if x != nil { - return x.Redeemer - } - return "" -} - -func (x *RedemptionsRequest) GetRedemptionDenom() string { - if x != nil { - return x.RedemptionDenom - } - return "" -} - -func (x *RedemptionsRequest) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -type RedemptionsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - RedemptionSchedules []*RedemptionSchedule `protobuf:"bytes,1,rep,name=redemption_schedules,json=redemptionSchedules,proto3" json:"redemption_schedules,omitempty"` -} - -func (x *RedemptionsResponse) Reset() { - *x = RedemptionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RedemptionsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RedemptionsResponse) ProtoMessage() {} - -func (x *RedemptionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[5] - 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 RedemptionsResponse.ProtoReflect.Descriptor instead. -func (*RedemptionsResponse) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{5} -} - -func (x *RedemptionsResponse) GetRedemptionSchedules() []*RedemptionSchedule { - if x != nil { - return x.RedemptionSchedules - } - return nil -} - -type RedemptionSchedule struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Redemption ID. - RedemptionId uint64 `protobuf:"varint,1,opt,name=redemption_id,json=redemptionId,proto3" json:"redemption_id,omitempty"` - // Status of the redemption. Either pending or disbursed. - Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` - // Account address of the redemption owner - Redeemer string `protobuf:"bytes,3,opt,name=redeemer,proto3" json:"redeemer,omitempty"` - // Claimable redemption time in seconds - ClaimableRedemptionTime int64 `protobuf:"zigzag64,4,opt,name=claimable_redemption_time,json=claimableRedemptionTime,proto3" json:"claimable_redemption_time,omitempty"` - // Amount of pool tokens being redeemed. - RedemptionAmount string `protobuf:"bytes,5,opt,name=redemption_amount,json=redemptionAmount,proto3" json:"redemption_amount,omitempty"` - // Pool token denom being redeemed. - RedemptionDenom string `protobuf:"bytes,6,opt,name=redemption_denom,json=redemptionDenom,proto3" json:"redemption_denom,omitempty"` - // Redemption request time in unix milliseconds. - RequestedAt int64 `protobuf:"zigzag64,7,opt,name=requested_at,json=requestedAt,proto3" json:"requested_at,omitempty"` - // Amount of quote tokens disbursed - DisbursedAmount string `protobuf:"bytes,8,opt,name=disbursed_amount,json=disbursedAmount,proto3" json:"disbursed_amount,omitempty"` - // Denom of the quote tokens disbursed - DisbursedDenom string `protobuf:"bytes,9,opt,name=disbursed_denom,json=disbursedDenom,proto3" json:"disbursed_denom,omitempty"` - // Redemption disbursement time in unix milliseconds. - DisbursedAt int64 `protobuf:"zigzag64,10,opt,name=disbursed_at,json=disbursedAt,proto3" json:"disbursed_at,omitempty"` -} - -func (x *RedemptionSchedule) Reset() { - *x = RedemptionSchedule{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_insurance_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RedemptionSchedule) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RedemptionSchedule) ProtoMessage() {} - -func (x *RedemptionSchedule) ProtoReflect() protoreflect.Message { - mi := &file_injective_insurance_rpc_proto_msgTypes[6] - 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 RedemptionSchedule.ProtoReflect.Descriptor instead. -func (*RedemptionSchedule) Descriptor() ([]byte, []int) { - return file_injective_insurance_rpc_proto_rawDescGZIP(), []int{6} -} - -func (x *RedemptionSchedule) GetRedemptionId() uint64 { - if x != nil { - return x.RedemptionId - } - return 0 -} - -func (x *RedemptionSchedule) GetStatus() string { - if x != nil { - return x.Status - } - return "" -} - -func (x *RedemptionSchedule) GetRedeemer() string { - if x != nil { - return x.Redeemer - } - return "" -} - -func (x *RedemptionSchedule) GetClaimableRedemptionTime() int64 { - if x != nil { - return x.ClaimableRedemptionTime - } - return 0 -} - -func (x *RedemptionSchedule) GetRedemptionAmount() string { - if x != nil { - return x.RedemptionAmount - } - return "" -} - -func (x *RedemptionSchedule) GetRedemptionDenom() string { - if x != nil { - return x.RedemptionDenom - } - return "" -} - -func (x *RedemptionSchedule) GetRequestedAt() int64 { - if x != nil { - return x.RequestedAt - } - return 0 -} - -func (x *RedemptionSchedule) GetDisbursedAmount() string { - if x != nil { - return x.DisbursedAmount - } - return "" -} - -func (x *RedemptionSchedule) GetDisbursedDenom() string { - if x != nil { - return x.DisbursedDenom - } - return "" -} - -func (x *RedemptionSchedule) GetDisbursedAt() int64 { - if x != nil { - return x.DisbursedAt - } - return 0 -} - -var File_injective_insurance_rpc_proto protoreflect.FileDescriptor - -var file_injective_insurance_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1d, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x17, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, - 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x75, 0x6e, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x0d, 0x46, 0x75, 0x6e, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x66, 0x75, 0x6e, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x64, - 0x52, 0x05, 0x66, 0x75, 0x6e, 0x64, 0x73, 0x22, 0xf5, 0x03, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x75, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x72, 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, 0x23, 0x0a, 0x0d, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x28, 0x0a, 0x10, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x6f, 0x6c, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x49, 0x0a, 0x21, 0x72, 0x65, - 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x1e, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x42, 0x61, 0x73, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x51, - 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x50, 0x0a, - 0x12, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x10, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x22, - 0xa0, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 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, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, - 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, - 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x22, 0x73, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x65, - 0x65, 0x6d, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x65, - 0x65, 0x6d, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x75, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x65, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, - 0x0a, 0x14, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, - 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x13, 0x72, 0x65, 0x64, 0x65, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x22, 0x9b, - 0x03, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, - 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x64, 0x65, 0x65, 0x6d, 0x65, 0x72, 0x12, 0x3a, - 0x0a, 0x19, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x17, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x64, 0x65, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, - 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x65, 0x6d, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, - 0x65, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x62, 0x75, - 0x72, 0x73, 0x65, 0x64, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x62, 0x75, 0x72, 0x73, 0x65, 0x64, 0x41, 0x74, 0x32, 0xd9, 0x01, 0x0a, - 0x15, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x73, 0x75, 0x72, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x50, 0x43, 0x12, 0x56, 0x0a, 0x05, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x12, - 0x25, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, - 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, - 0x0a, 0x0b, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1c, 0x5a, 0x1a, 0x2f, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x75, 0x72, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_injective_insurance_rpc_proto_rawDescOnce sync.Once - file_injective_insurance_rpc_proto_rawDescData = file_injective_insurance_rpc_proto_rawDesc -) - -func file_injective_insurance_rpc_proto_rawDescGZIP() []byte { - file_injective_insurance_rpc_proto_rawDescOnce.Do(func() { - file_injective_insurance_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_insurance_rpc_proto_rawDescData) - }) - return file_injective_insurance_rpc_proto_rawDescData -} - -var file_injective_insurance_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 7) -var file_injective_insurance_rpc_proto_goTypes = []interface{}{ - (*FundsRequest)(nil), // 0: injective_insurance_rpc.FundsRequest - (*FundsResponse)(nil), // 1: injective_insurance_rpc.FundsResponse - (*InsuranceFund)(nil), // 2: injective_insurance_rpc.InsuranceFund - (*TokenMeta)(nil), // 3: injective_insurance_rpc.TokenMeta - (*RedemptionsRequest)(nil), // 4: injective_insurance_rpc.RedemptionsRequest - (*RedemptionsResponse)(nil), // 5: injective_insurance_rpc.RedemptionsResponse - (*RedemptionSchedule)(nil), // 6: injective_insurance_rpc.RedemptionSchedule -} -var file_injective_insurance_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_insurance_rpc.FundsResponse.funds:type_name -> injective_insurance_rpc.InsuranceFund - 3, // 1: injective_insurance_rpc.InsuranceFund.deposit_token_meta:type_name -> injective_insurance_rpc.TokenMeta - 6, // 2: injective_insurance_rpc.RedemptionsResponse.redemption_schedules:type_name -> injective_insurance_rpc.RedemptionSchedule - 0, // 3: injective_insurance_rpc.InjectiveInsuranceRPC.Funds:input_type -> injective_insurance_rpc.FundsRequest - 4, // 4: injective_insurance_rpc.InjectiveInsuranceRPC.Redemptions:input_type -> injective_insurance_rpc.RedemptionsRequest - 1, // 5: injective_insurance_rpc.InjectiveInsuranceRPC.Funds:output_type -> injective_insurance_rpc.FundsResponse - 5, // 6: injective_insurance_rpc.InjectiveInsuranceRPC.Redemptions:output_type -> injective_insurance_rpc.RedemptionsResponse - 5, // [5:7] is the sub-list for method output_type - 3, // [3:5] 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 -} - -func init() { file_injective_insurance_rpc_proto_init() } -func file_injective_insurance_rpc_proto_init() { - if File_injective_insurance_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_injective_insurance_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FundsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InsuranceFund); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TokenMeta); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedemptionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedemptionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_insurance_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedemptionSchedule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_insurance_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 7, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_injective_insurance_rpc_proto_goTypes, - DependencyIndexes: file_injective_insurance_rpc_proto_depIdxs, - MessageInfos: file_injective_insurance_rpc_proto_msgTypes, - }.Build() - File_injective_insurance_rpc_proto = out.File - file_injective_insurance_rpc_proto_rawDesc = nil - file_injective_insurance_rpc_proto_goTypes = nil - file_injective_insurance_rpc_proto_depIdxs = nil -} diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go b/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go index 54821ee5..eab9eda7 100644 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go +++ b/exchange/insurance_rpc/pb/injective_insurance_rpc.pb.gw.go @@ -65,6 +65,40 @@ func local_request_InjectiveInsuranceRPC_Funds_0(ctx context.Context, marshaler } +func request_InjectiveInsuranceRPC_Fund_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveInsuranceRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq FundRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.Fund(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectiveInsuranceRPC_Fund_0(ctx context.Context, marshaler runtime.Marshaler, server InjectiveInsuranceRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq FundRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.Fund(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectiveInsuranceRPC_Redemptions_0(ctx context.Context, marshaler runtime.Marshaler, client InjectiveInsuranceRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RedemptionsRequest var metadata runtime.ServerMetadata @@ -111,20 +145,47 @@ func RegisterInjectiveInsuranceRPCHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveInsuranceRPC_Funds_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveInsuranceRPC_Funds_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveInsuranceRPC_Funds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveInsuranceRPC_Fund_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Fund")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := local_request_InjectiveInsuranceRPC_Fund_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveInsuranceRPC_Funds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveInsuranceRPC_Fund_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -134,20 +195,22 @@ func RegisterInjectiveInsuranceRPCHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveInsuranceRPC_Redemptions_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveInsuranceRPC_Redemptions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -196,19 +259,43 @@ func RegisterInjectiveInsuranceRPCHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Funds", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Funds")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveInsuranceRPC_Funds_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveInsuranceRPC_Funds_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectiveInsuranceRPC_Funds_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectiveInsuranceRPC_Fund_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Fund", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Fund")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := request_InjectiveInsuranceRPC_Fund_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectiveInsuranceRPC_Funds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveInsuranceRPC_Fund_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -216,19 +303,21 @@ func RegisterInjectiveInsuranceRPCHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions", runtime.WithHTTPPathPattern("/injective_insurance_rpc.InjectiveInsuranceRPC/Redemptions")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveInsuranceRPC_Redemptions_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveInsuranceRPC_Redemptions_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveInsuranceRPC_Redemptions_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -238,11 +327,15 @@ func RegisterInjectiveInsuranceRPCHandlerClient(ctx context.Context, mux *runtim var ( pattern_InjectiveInsuranceRPC_Funds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Funds"}, "")) + pattern_InjectiveInsuranceRPC_Fund_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Fund"}, "")) + pattern_InjectiveInsuranceRPC_Redemptions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_insurance_rpc.InjectiveInsuranceRPC", "Redemptions"}, "")) ) var ( forward_InjectiveInsuranceRPC_Funds_0 = runtime.ForwardResponseMessage + forward_InjectiveInsuranceRPC_Fund_0 = runtime.ForwardResponseMessage + forward_InjectiveInsuranceRPC_Redemptions_0 = runtime.ForwardResponseMessage ) diff --git a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto index c340aba8..b670ddea 100644 --- a/exchange/insurance_rpc/pb/injective_insurance_rpc.proto +++ b/exchange/insurance_rpc/pb/injective_insurance_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveInsuranceRPC protocol buffer definition // @@ -15,6 +15,8 @@ option go_package = "/injective_insurance_rpcpb"; service InjectiveInsuranceRPC { // Funds lists all insurance funds. rpc Funds (FundsRequest) returns (FundsResponse); + // Funds returns an insurance fund for a given insurance fund token denom. + rpc Fund (FundRequest) returns (FundResponse); // PendingRedemptions lists all pending redemptions according to a filter rpc Redemptions (RedemptionsRequest) returns (RedemptionsResponse); } @@ -66,6 +68,16 @@ message TokenMeta { sint64 updated_at = 6; } +message FundRequest { + // denom of insurance fund + string denom = 1; +} + +message FundResponse { + // The insurance fund corresponding to the provided token denom + InsuranceFund fund = 1; +} + message RedemptionsRequest { // Account address of the redemption owner string redeemer = 1; diff --git a/exchange/meta_rpc/pb/injective_meta_rpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go similarity index 60% rename from exchange/meta_rpc/pb/injective_meta_rpc.pb.go rename to exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go index 24d9b61a..e6f93ea1 100644 --- a/exchange/meta_rpc/pb/injective_meta_rpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveMetaRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_meta_rpc.proto +// source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb @@ -36,7 +36,7 @@ type PingRequest struct { func (x *PingRequest) Reset() { *x = PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49,7 +49,7 @@ func (x *PingRequest) String() string { func (*PingRequest) ProtoMessage() {} func (x *PingRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62,7 +62,7 @@ func (x *PingRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PingRequest.ProtoReflect.Descriptor instead. func (*PingRequest) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{0} } type PingResponse struct { @@ -74,7 +74,7 @@ type PingResponse struct { func (x *PingResponse) Reset() { *x = PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -87,7 +87,7 @@ func (x *PingResponse) String() string { func (*PingResponse) ProtoMessage() {} func (x *PingResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100,7 +100,7 @@ func (x *PingResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PingResponse.ProtoReflect.Descriptor instead. func (*PingResponse) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{1} } type VersionRequest struct { @@ -112,7 +112,7 @@ type VersionRequest struct { func (x *VersionRequest) Reset() { *x = VersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -125,7 +125,7 @@ func (x *VersionRequest) String() string { func (*VersionRequest) ProtoMessage() {} func (x *VersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -138,7 +138,7 @@ func (x *VersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead. func (*VersionRequest) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{2} } type VersionResponse struct { @@ -155,7 +155,7 @@ type VersionResponse struct { func (x *VersionResponse) Reset() { *x = VersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -168,7 +168,7 @@ func (x *VersionResponse) String() string { func (*VersionResponse) ProtoMessage() {} func (x *VersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -181,7 +181,7 @@ func (x *VersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use VersionResponse.ProtoReflect.Descriptor instead. func (*VersionResponse) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{3} } func (x *VersionResponse) GetVersion() string { @@ -210,7 +210,7 @@ type InfoRequest struct { func (x *InfoRequest) Reset() { *x = InfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -223,7 +223,7 @@ func (x *InfoRequest) String() string { func (*InfoRequest) ProtoMessage() {} func (x *InfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -236,7 +236,7 @@ func (x *InfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InfoRequest.ProtoReflect.Descriptor instead. func (*InfoRequest) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{4} } func (x *InfoRequest) GetTimestamp() int64 { @@ -266,7 +266,7 @@ type InfoResponse struct { func (x *InfoResponse) Reset() { *x = InfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -279,7 +279,7 @@ func (x *InfoResponse) String() string { func (*InfoResponse) ProtoMessage() {} func (x *InfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -292,7 +292,7 @@ func (x *InfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use InfoResponse.ProtoReflect.Descriptor instead. func (*InfoResponse) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{5} } func (x *InfoResponse) GetTimestamp() int64 { @@ -339,7 +339,7 @@ type StreamKeepaliveRequest struct { func (x *StreamKeepaliveRequest) Reset() { *x = StreamKeepaliveRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -352,7 +352,7 @@ func (x *StreamKeepaliveRequest) String() string { func (*StreamKeepaliveRequest) ProtoMessage() {} func (x *StreamKeepaliveRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -365,7 +365,7 @@ func (x *StreamKeepaliveRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamKeepaliveRequest.ProtoReflect.Descriptor instead. func (*StreamKeepaliveRequest) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{6} } type StreamKeepaliveResponse struct { @@ -384,7 +384,7 @@ type StreamKeepaliveResponse struct { func (x *StreamKeepaliveResponse) Reset() { *x = StreamKeepaliveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -397,7 +397,7 @@ func (x *StreamKeepaliveResponse) String() string { func (*StreamKeepaliveResponse) ProtoMessage() {} func (x *StreamKeepaliveResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -410,7 +410,7 @@ func (x *StreamKeepaliveResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamKeepaliveResponse.ProtoReflect.Descriptor instead. func (*StreamKeepaliveResponse) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{7} } func (x *StreamKeepaliveResponse) GetEvent() string { @@ -445,7 +445,7 @@ type TokenMetadataRequest struct { func (x *TokenMetadataRequest) Reset() { *x = TokenMetadataRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -458,7 +458,7 @@ func (x *TokenMetadataRequest) String() string { func (*TokenMetadataRequest) ProtoMessage() {} func (x *TokenMetadataRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -471,7 +471,7 @@ func (x *TokenMetadataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetadataRequest.ProtoReflect.Descriptor instead. func (*TokenMetadataRequest) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{8} } func (x *TokenMetadataRequest) GetDenoms() []string { @@ -493,7 +493,7 @@ type TokenMetadataResponse struct { func (x *TokenMetadataResponse) Reset() { *x = TokenMetadataResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -506,7 +506,7 @@ func (x *TokenMetadataResponse) String() string { func (*TokenMetadataResponse) ProtoMessage() {} func (x *TokenMetadataResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -519,7 +519,7 @@ func (x *TokenMetadataResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetadataResponse.ProtoReflect.Descriptor instead. func (*TokenMetadataResponse) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{9} } func (x *TokenMetadataResponse) GetTokens() []*TokenMetadataElement { @@ -553,7 +553,7 @@ type TokenMetadataElement struct { func (x *TokenMetadataElement) Reset() { *x = TokenMetadataElement{} if protoimpl.UnsafeEnabled { - mi := &file_injective_meta_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -566,7 +566,7 @@ func (x *TokenMetadataElement) String() string { func (*TokenMetadataElement) ProtoMessage() {} func (x *TokenMetadataElement) ProtoReflect() protoreflect.Message { - mi := &file_injective_meta_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -579,7 +579,7 @@ func (x *TokenMetadataElement) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMetadataElement.ProtoReflect.Descriptor instead. func (*TokenMetadataElement) Descriptor() ([]byte, []int) { - return file_injective_meta_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP(), []int{10} } func (x *TokenMetadataElement) GetEthereumAddress() string { @@ -631,123 +631,124 @@ func (x *TokenMetadataElement) GetLogo() string { return "" } -var File_injective_meta_rpc_proto protoreflect.FileDescriptor - -var file_injective_meta_rpc_proto_rawDesc = []byte{ - 0x0a, 0x18, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x0d, - 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, - 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x0a, - 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xab, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, - 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x1a, 0x38, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, - 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2b, 0x0a, - 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, +var File_goadesign_goagen_injective_meta_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_meta_rpc_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x22, + 0x0d, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, + 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, + 0x0a, 0x0e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, + 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x1a, 0x38, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, + 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2b, + 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xfc, 0x01, 0x0a, 0x0c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xfc, 0x01, 0x0a, 0x0c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x1a, - 0x38, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, - 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x2e, 0x0a, 0x14, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x59, 0x0a, 0x15, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, - 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x67, 0x65, 0x63, 0x6b, - 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x69, 0x6e, - 0x67, 0x65, 0x63, 0x6b, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, - 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x32, 0xd0, 0x03, 0x0a, 0x10, 0x49, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x50, 0x43, 0x12, 0x49, - 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, + 0x1a, 0x38, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x70, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x77, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x2e, 0x0a, 0x14, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x22, 0x59, 0x0a, 0x15, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x40, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x65, 0x75, 0x6d, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x69, 0x6e, 0x67, 0x65, 0x63, + 0x6b, 0x6f, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x69, + 0x6e, 0x67, 0x65, 0x63, 0x6b, 0x6f, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, + 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x32, 0xd0, 0x03, 0x0a, 0x10, 0x49, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x50, 0x43, 0x12, + 0x49, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x69, 0x6e, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, - 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, + 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, - 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x64, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, + 0x15, 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_injective_meta_rpc_proto_rawDescOnce sync.Once - file_injective_meta_rpc_proto_rawDescData = file_injective_meta_rpc_proto_rawDesc + file_goadesign_goagen_injective_meta_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_meta_rpc_proto_rawDescData = file_goadesign_goagen_injective_meta_rpc_proto_rawDesc ) -func file_injective_meta_rpc_proto_rawDescGZIP() []byte { - file_injective_meta_rpc_proto_rawDescOnce.Do(func() { - file_injective_meta_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_meta_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_meta_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_meta_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_meta_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_meta_rpc_proto_rawDescData) }) - return file_injective_meta_rpc_proto_rawDescData + return file_goadesign_goagen_injective_meta_rpc_proto_rawDescData } -var file_injective_meta_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 13) -var file_injective_meta_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_meta_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_goadesign_goagen_injective_meta_rpc_proto_goTypes = []interface{}{ (*PingRequest)(nil), // 0: injective_meta_rpc.PingRequest (*PingResponse)(nil), // 1: injective_meta_rpc.PingResponse (*VersionRequest)(nil), // 2: injective_meta_rpc.VersionRequest @@ -762,7 +763,7 @@ var file_injective_meta_rpc_proto_goTypes = []interface{}{ nil, // 11: injective_meta_rpc.VersionResponse.BuildEntry nil, // 12: injective_meta_rpc.InfoResponse.BuildEntry } -var file_injective_meta_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_meta_rpc_proto_depIdxs = []int32{ 11, // 0: injective_meta_rpc.VersionResponse.build:type_name -> injective_meta_rpc.VersionResponse.BuildEntry 12, // 1: injective_meta_rpc.InfoResponse.build:type_name -> injective_meta_rpc.InfoResponse.BuildEntry 10, // 2: injective_meta_rpc.TokenMetadataResponse.tokens:type_name -> injective_meta_rpc.TokenMetadataElement @@ -783,13 +784,13 @@ var file_injective_meta_rpc_proto_depIdxs = []int32{ 0, // [0:3] is the sub-list for field type_name } -func init() { file_injective_meta_rpc_proto_init() } -func file_injective_meta_rpc_proto_init() { - if File_injective_meta_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_meta_rpc_proto_init() } +func file_goadesign_goagen_injective_meta_rpc_proto_init() { + if File_goadesign_goagen_injective_meta_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_meta_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PingRequest); i { case 0: return &v.state @@ -801,7 +802,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PingResponse); i { case 0: return &v.state @@ -813,7 +814,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VersionRequest); i { case 0: return &v.state @@ -825,7 +826,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VersionResponse); i { case 0: return &v.state @@ -837,7 +838,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoRequest); i { case 0: return &v.state @@ -849,7 +850,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InfoResponse); i { case 0: return &v.state @@ -861,7 +862,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamKeepaliveRequest); i { case 0: return &v.state @@ -873,7 +874,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamKeepaliveResponse); i { case 0: return &v.state @@ -885,7 +886,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMetadataRequest); i { case 0: return &v.state @@ -897,7 +898,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMetadataResponse); i { case 0: return &v.state @@ -909,7 +910,7 @@ func file_injective_meta_rpc_proto_init() { return nil } } - file_injective_meta_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_meta_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMetadataElement); i { case 0: return &v.state @@ -926,18 +927,18 @@ func file_injective_meta_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_meta_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_meta_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 13, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_meta_rpc_proto_goTypes, - DependencyIndexes: file_injective_meta_rpc_proto_depIdxs, - MessageInfos: file_injective_meta_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_meta_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_meta_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_meta_rpc_proto_msgTypes, }.Build() - File_injective_meta_rpc_proto = out.File - file_injective_meta_rpc_proto_rawDesc = nil - file_injective_meta_rpc_proto_goTypes = nil - file_injective_meta_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_meta_rpc_proto = out.File + file_goadesign_goagen_injective_meta_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_meta_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_meta_rpc_proto_depIdxs = nil } diff --git a/exchange/meta_rpc/pb/injective_meta_rpc_grpc.pb.go b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go similarity index 98% rename from exchange/meta_rpc/pb/injective_meta_rpc_grpc.pb.go rename to exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go index d1e1ab5b..3266ca1a 100644 --- a/exchange/meta_rpc/pb/injective_meta_rpc_grpc.pb.go +++ b/exchange/meta_rpc/pb/goadesign_goagen_injective_meta_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_meta_rpc.proto package injective_meta_rpcpb @@ -281,5 +285,5 @@ var InjectiveMetaRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_meta_rpc.proto", + Metadata: "goadesign_goagen_injective_meta_rpc.proto", } diff --git a/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go b/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go index ee142b89..00df0503 100644 --- a/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go +++ b/exchange/meta_rpc/pb/injective_meta_rpc.pb.gw.go @@ -204,20 +204,22 @@ func RegisterInjectiveMetaRPCHandlerServer(ctx context.Context, mux *runtime.Ser var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveMetaRPC_Ping_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveMetaRPC_Ping_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Ping_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Ping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -227,20 +229,22 @@ func RegisterInjectiveMetaRPCHandlerServer(ctx context.Context, mux *runtime.Ser var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveMetaRPC_Version_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveMetaRPC_Version_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Version_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Version_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -250,20 +254,22 @@ func RegisterInjectiveMetaRPCHandlerServer(ctx context.Context, mux *runtime.Ser var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveMetaRPC_Info_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveMetaRPC_Info_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Info_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Info_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -280,20 +286,22 @@ func RegisterInjectiveMetaRPCHandlerServer(ctx context.Context, mux *runtime.Ser var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveMetaRPC_TokenMetadata_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_TokenMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -342,19 +350,21 @@ func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.Ser ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Ping", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Ping")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveMetaRPC_Ping_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveMetaRPC_Ping_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Ping_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Ping_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -362,19 +372,21 @@ func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.Ser ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Version", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Version")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveMetaRPC_Version_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveMetaRPC_Version_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Version_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Version_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -382,19 +394,21 @@ func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.Ser ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/Info", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/Info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveMetaRPC_Info_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveMetaRPC_Info_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_Info_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_Info_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -402,19 +416,21 @@ func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.Ser ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/StreamKeepalive")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveMetaRPC_StreamKeepalive_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveMetaRPC_StreamKeepalive_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_StreamKeepalive_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_StreamKeepalive_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -422,19 +438,21 @@ func RegisterInjectiveMetaRPCHandlerClient(ctx context.Context, mux *runtime.Ser ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata", runtime.WithHTTPPathPattern("/injective_meta_rpc.InjectiveMetaRPC/TokenMetadata")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveMetaRPC_TokenMetadata_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveMetaRPC_TokenMetadata_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveMetaRPC_TokenMetadata_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/meta_rpc/pb/injective_meta_rpc.proto b/exchange/meta_rpc/pb/injective_meta_rpc.proto index ed6001d3..87f2e718 100644 --- a/exchange/meta_rpc/pb/injective_meta_rpc.proto +++ b/exchange/meta_rpc/pb/injective_meta_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveMetaRPC protocol buffer definition // diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go similarity index 59% rename from exchange/oracle_rpc/pb/injective_oracle_rpc.pb.go rename to exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go index 0a61a950..3308dfee 100644 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveOracleRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_oracle_rpc.proto +// source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb @@ -36,7 +36,7 @@ type OracleListRequest struct { func (x *OracleListRequest) Reset() { *x = OracleListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49,7 +49,7 @@ func (x *OracleListRequest) String() string { func (*OracleListRequest) ProtoMessage() {} func (x *OracleListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62,7 +62,7 @@ func (x *OracleListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OracleListRequest.ProtoReflect.Descriptor instead. func (*OracleListRequest) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{0} } type OracleListResponse struct { @@ -76,7 +76,7 @@ type OracleListResponse struct { func (x *OracleListResponse) Reset() { *x = OracleListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -89,7 +89,7 @@ func (x *OracleListResponse) String() string { func (*OracleListResponse) ProtoMessage() {} func (x *OracleListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102,7 +102,7 @@ func (x *OracleListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OracleListResponse.ProtoReflect.Descriptor instead. func (*OracleListResponse) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{1} } func (x *OracleListResponse) GetOracles() []*Oracle { @@ -132,7 +132,7 @@ type Oracle struct { func (x *Oracle) Reset() { *x = Oracle{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -145,7 +145,7 @@ func (x *Oracle) String() string { func (*Oracle) ProtoMessage() {} func (x *Oracle) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -158,7 +158,7 @@ func (x *Oracle) ProtoReflect() protoreflect.Message { // Deprecated: Use Oracle.ProtoReflect.Descriptor instead. func (*Oracle) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{2} } func (x *Oracle) GetSymbol() string { @@ -214,7 +214,7 @@ type PriceRequest struct { func (x *PriceRequest) Reset() { *x = PriceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -227,7 +227,7 @@ func (x *PriceRequest) String() string { func (*PriceRequest) ProtoMessage() {} func (x *PriceRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -240,7 +240,7 @@ func (x *PriceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceRequest.ProtoReflect.Descriptor instead. func (*PriceRequest) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{3} } func (x *PriceRequest) GetBaseSymbol() string { @@ -283,7 +283,7 @@ type PriceResponse struct { func (x *PriceResponse) Reset() { *x = PriceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -296,7 +296,7 @@ func (x *PriceResponse) String() string { func (*PriceResponse) ProtoMessage() {} func (x *PriceResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -309,7 +309,7 @@ func (x *PriceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceResponse.ProtoReflect.Descriptor instead. func (*PriceResponse) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{4} } func (x *PriceResponse) GetPrice() string { @@ -335,7 +335,7 @@ type StreamPricesRequest struct { func (x *StreamPricesRequest) Reset() { *x = StreamPricesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -348,7 +348,7 @@ func (x *StreamPricesRequest) String() string { func (*StreamPricesRequest) ProtoMessage() {} func (x *StreamPricesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -361,7 +361,7 @@ func (x *StreamPricesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesRequest.ProtoReflect.Descriptor instead. func (*StreamPricesRequest) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{5} } func (x *StreamPricesRequest) GetBaseSymbol() string { @@ -399,7 +399,7 @@ type StreamPricesResponse struct { func (x *StreamPricesResponse) Reset() { *x = StreamPricesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -412,7 +412,7 @@ func (x *StreamPricesResponse) String() string { func (*StreamPricesResponse) ProtoMessage() {} func (x *StreamPricesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -425,7 +425,7 @@ func (x *StreamPricesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesResponse.ProtoReflect.Descriptor instead. func (*StreamPricesResponse) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{6} } func (x *StreamPricesResponse) GetPrice() string { @@ -454,7 +454,7 @@ type StreamPricesByMarketsRequest struct { func (x *StreamPricesByMarketsRequest) Reset() { *x = StreamPricesByMarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -467,7 +467,7 @@ func (x *StreamPricesByMarketsRequest) String() string { func (*StreamPricesByMarketsRequest) ProtoMessage() {} func (x *StreamPricesByMarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -480,7 +480,7 @@ func (x *StreamPricesByMarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesByMarketsRequest.ProtoReflect.Descriptor instead. func (*StreamPricesByMarketsRequest) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{7} } func (x *StreamPricesByMarketsRequest) GetMarketIds() []string { @@ -506,7 +506,7 @@ type StreamPricesByMarketsResponse struct { func (x *StreamPricesByMarketsResponse) Reset() { *x = StreamPricesByMarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_oracle_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -519,7 +519,7 @@ func (x *StreamPricesByMarketsResponse) String() string { func (*StreamPricesByMarketsResponse) ProtoMessage() {} func (x *StreamPricesByMarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_oracle_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -532,7 +532,7 @@ func (x *StreamPricesByMarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPricesByMarketsResponse.ProtoReflect.Descriptor instead. func (*StreamPricesByMarketsResponse) Descriptor() ([]byte, []int) { - return file_injective_oracle_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP(), []int{8} } func (x *StreamPricesByMarketsResponse) GetPrice() string { @@ -556,111 +556,112 @@ func (x *StreamPricesByMarketsResponse) GetMarketId() string { return "" } -var File_injective_oracle_rpc_proto protoreflect.FileDescriptor - -var file_injective_oracle_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1a, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, - 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x22, 0x13, 0x0a, 0x11, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x12, 0x4f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x07, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x6f, 0x72, - 0x61, 0x63, 0x6c, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x61, 0x63, 0x6c, 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, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, +var File_goadesign_goagen_injective_oracle_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, + 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x22, 0x13, 0x0a, 0x11, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x12, 0x4f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, + 0x0a, 0x07, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x52, 0x07, 0x6f, + 0x72, 0x61, 0x63, 0x6c, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x4f, 0x72, 0x61, 0x63, 0x6c, + 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, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, + 0x0b, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, + 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, + 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, + 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, + 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, + 0x63, 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x25, 0x0a, 0x0d, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x52, 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, 0x22, 0x7a, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x74, 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, - 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, - 0x69, 0x63, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x73, 0x65, 0x53, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x73, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x72, 0x61, 0x63, - 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x61, - 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x53, 0x63, - 0x61, 0x6c, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x25, 0x0a, 0x0d, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x52, 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, - 0x22, 0x7a, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, - 0x73, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x6f, 0x74, - 0x65, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 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, 0x3d, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, + 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, + 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, 0x63, 0x65, 0x73, 0x52, 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, 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, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1d, 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, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x70, 0x0a, 0x1d, 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, 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, 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, 0xb5, 0x03, 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, 0x61, 0x63, 0x6c, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, - 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x50, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x73, 0x12, 0x29, 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, 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, + 0x73, 0x52, 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, 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, 0xb5, 0x03, 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, 0x61, 0x63, + 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x4f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, 0x6c, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x63, + 0x6c, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x73, 0x12, 0x29, 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, 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, } var ( - file_injective_oracle_rpc_proto_rawDescOnce sync.Once - file_injective_oracle_rpc_proto_rawDescData = file_injective_oracle_rpc_proto_rawDesc + file_goadesign_goagen_injective_oracle_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_oracle_rpc_proto_rawDescData = file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc ) -func file_injective_oracle_rpc_proto_rawDescGZIP() []byte { - file_injective_oracle_rpc_proto_rawDescOnce.Do(func() { - file_injective_oracle_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_oracle_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_oracle_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_oracle_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_oracle_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_oracle_rpc_proto_rawDescData) }) - return file_injective_oracle_rpc_proto_rawDescData + return file_goadesign_goagen_injective_oracle_rpc_proto_rawDescData } -var file_injective_oracle_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_injective_oracle_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_goadesign_goagen_injective_oracle_rpc_proto_goTypes = []interface{}{ (*OracleListRequest)(nil), // 0: injective_oracle_rpc.OracleListRequest (*OracleListResponse)(nil), // 1: injective_oracle_rpc.OracleListResponse (*Oracle)(nil), // 2: injective_oracle_rpc.Oracle @@ -671,7 +672,7 @@ var file_injective_oracle_rpc_proto_goTypes = []interface{}{ (*StreamPricesByMarketsRequest)(nil), // 7: injective_oracle_rpc.StreamPricesByMarketsRequest (*StreamPricesByMarketsResponse)(nil), // 8: injective_oracle_rpc.StreamPricesByMarketsResponse } -var file_injective_oracle_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_oracle_rpc_proto_depIdxs = []int32{ 2, // 0: injective_oracle_rpc.OracleListResponse.oracles:type_name -> injective_oracle_rpc.Oracle 0, // 1: injective_oracle_rpc.InjectiveOracleRPC.OracleList:input_type -> injective_oracle_rpc.OracleListRequest 3, // 2: injective_oracle_rpc.InjectiveOracleRPC.Price:input_type -> injective_oracle_rpc.PriceRequest @@ -688,13 +689,13 @@ var file_injective_oracle_rpc_proto_depIdxs = []int32{ 0, // [0:1] is the sub-list for field type_name } -func init() { file_injective_oracle_rpc_proto_init() } -func file_injective_oracle_rpc_proto_init() { - if File_injective_oracle_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_oracle_rpc_proto_init() } +func file_goadesign_goagen_injective_oracle_rpc_proto_init() { + if File_goadesign_goagen_injective_oracle_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_oracle_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OracleListRequest); i { case 0: return &v.state @@ -706,7 +707,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OracleListResponse); i { case 0: return &v.state @@ -718,7 +719,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Oracle); i { case 0: return &v.state @@ -730,7 +731,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceRequest); i { case 0: return &v.state @@ -742,7 +743,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceResponse); i { case 0: return &v.state @@ -754,7 +755,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPricesRequest); i { case 0: return &v.state @@ -766,7 +767,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPricesResponse); i { case 0: return &v.state @@ -778,7 +779,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPricesByMarketsRequest); i { case 0: return &v.state @@ -790,7 +791,7 @@ func file_injective_oracle_rpc_proto_init() { return nil } } - file_injective_oracle_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPricesByMarketsResponse); i { case 0: return &v.state @@ -807,18 +808,18 @@ func file_injective_oracle_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_oracle_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 9, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_oracle_rpc_proto_goTypes, - DependencyIndexes: file_injective_oracle_rpc_proto_depIdxs, - MessageInfos: file_injective_oracle_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_oracle_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_oracle_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_oracle_rpc_proto_msgTypes, }.Build() - File_injective_oracle_rpc_proto = out.File - file_injective_oracle_rpc_proto_rawDesc = nil - file_injective_oracle_rpc_proto_goTypes = nil - file_injective_oracle_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_oracle_rpc_proto = out.File + file_goadesign_goagen_injective_oracle_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_oracle_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_oracle_rpc_proto_depIdxs = nil } diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc_grpc.pb.go b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go similarity index 98% rename from exchange/oracle_rpc/pb/injective_oracle_rpc_grpc.pb.go rename to exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go index 169bec13..4c24eee8 100644 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc_grpc.pb.go +++ b/exchange/oracle_rpc/pb/goadesign_goagen_injective_oracle_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_oracle_rpc.proto package injective_oracle_rpcpb @@ -270,5 +274,5 @@ var InjectiveOracleRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_oracle_rpc.proto", + Metadata: "goadesign_goagen_injective_oracle_rpc.proto", } diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go b/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go index 10332f0e..6880d0ca 100644 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go +++ b/exchange/oracle_rpc/pb/injective_oracle_rpc.pb.gw.go @@ -161,20 +161,22 @@ func RegisterInjectiveOracleRPCHandlerServer(ctx context.Context, mux *runtime.S var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveOracleRPC_OracleList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveOracleRPC_OracleList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_OracleList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_OracleList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -184,20 +186,22 @@ func RegisterInjectiveOracleRPCHandlerServer(ctx context.Context, mux *runtime.S var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveOracleRPC_Price_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveOracleRPC_Price_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_Price_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_Price_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -260,19 +264,21 @@ func RegisterInjectiveOracleRPCHandlerClient(ctx context.Context, mux *runtime.S ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/OracleList", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/OracleList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveOracleRPC_OracleList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveOracleRPC_OracleList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_OracleList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_OracleList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -280,19 +286,21 @@ func RegisterInjectiveOracleRPCHandlerClient(ctx context.Context, mux *runtime.S ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/Price", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/Price")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveOracleRPC_Price_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveOracleRPC_Price_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_Price_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_Price_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -300,19 +308,21 @@ func RegisterInjectiveOracleRPCHandlerClient(ctx context.Context, mux *runtime.S ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPrices")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveOracleRPC_StreamPrices_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveOracleRPC_StreamPrices_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_StreamPrices_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_StreamPrices_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -320,19 +330,21 @@ func RegisterInjectiveOracleRPCHandlerClient(ctx context.Context, mux *runtime.S ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets", runtime.WithHTTPPathPattern("/injective_oracle_rpc.InjectiveOracleRPC/StreamPricesByMarkets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveOracleRPC_StreamPricesByMarkets_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveOracleRPC_StreamPricesByMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveOracleRPC_StreamPricesByMarkets_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveOracleRPC_StreamPricesByMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/oracle_rpc/pb/injective_oracle_rpc.proto b/exchange/oracle_rpc/pb/injective_oracle_rpc.proto index 8f190dd9..7185b66e 100644 --- a/exchange/oracle_rpc/pb/injective_oracle_rpc.proto +++ b/exchange/oracle_rpc/pb/injective_oracle_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveOracleRPC protocol buffer definition // diff --git a/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go new file mode 100644 index 00000000..4a6d0331 --- /dev/null +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc.pb.go @@ -0,0 +1,1534 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectivePortfolioRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v3.19.4 +// source: goadesign_goagen_injective_portfolio_rpc.proto + +package injective_portfolio_rpcpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TokenHoldersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Denom of the token + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + // Cursor for pagination + Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"` + Limit int32 `protobuf:"zigzag32,3,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *TokenHoldersRequest) Reset() { + *x = TokenHoldersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokenHoldersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokenHoldersRequest) ProtoMessage() {} + +func (x *TokenHoldersRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[0] + 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 TokenHoldersRequest.ProtoReflect.Descriptor instead. +func (*TokenHoldersRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{0} +} + +func (x *TokenHoldersRequest) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *TokenHoldersRequest) GetCursor() string { + if x != nil { + return x.Cursor + } + return "" +} + +func (x *TokenHoldersRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +type TokenHoldersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Holders []*Holder `protobuf:"bytes,1,rep,name=holders,proto3" json:"holders,omitempty"` + // Next cursors for pagination + NextCursors []string `protobuf:"bytes,2,rep,name=next_cursors,json=nextCursors,proto3" json:"next_cursors,omitempty"` +} + +func (x *TokenHoldersResponse) Reset() { + *x = TokenHoldersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokenHoldersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokenHoldersResponse) ProtoMessage() {} + +func (x *TokenHoldersResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[1] + 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 TokenHoldersResponse.ProtoReflect.Descriptor instead. +func (*TokenHoldersResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *TokenHoldersResponse) GetHolders() []*Holder { + if x != nil { + return x.Holders + } + return nil +} + +func (x *TokenHoldersResponse) GetNextCursors() []string { + if x != nil { + return x.NextCursors + } + return nil +} + +type Holder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address for the holder + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // The balance of the holder + Balance string `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance,omitempty"` +} + +func (x *Holder) Reset() { + *x = Holder{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Holder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Holder) ProtoMessage() {} + +func (x *Holder) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[2] + 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 Holder.ProtoReflect.Descriptor instead. +func (*Holder) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *Holder) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *Holder) GetBalance() string { + if x != nil { + return x.Balance + } + return "" +} + +type AccountPortfolioRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *AccountPortfolioRequest) Reset() { + *x = AccountPortfolioRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolioRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolioRequest) ProtoMessage() {} + +func (x *AccountPortfolioRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[3] + 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 AccountPortfolioRequest.ProtoReflect.Descriptor instead. +func (*AccountPortfolioRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *AccountPortfolioRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type AccountPortfolioResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The portfolio of this account + Portfolio *Portfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` +} + +func (x *AccountPortfolioResponse) Reset() { + *x = AccountPortfolioResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolioResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolioResponse) ProtoMessage() {} + +func (x *AccountPortfolioResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[4] + 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 AccountPortfolioResponse.ProtoReflect.Descriptor instead. +func (*AccountPortfolioResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *AccountPortfolioResponse) GetPortfolio() *Portfolio { + if x != nil { + return x.Portfolio + } + return nil +} + +type Portfolio struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account's portfolio address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Account available bank balances + BankBalances []*Coin `protobuf:"bytes,2,rep,name=bank_balances,json=bankBalances,proto3" json:"bank_balances,omitempty"` + // Subaccounts list + Subaccounts []*SubaccountBalanceV2 `protobuf:"bytes,3,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` + // All positions for all subaccounts, with unrealized PNL + PositionsWithUpnl []*PositionsWithUPNL `protobuf:"bytes,4,rep,name=positions_with_upnl,json=positionsWithUpnl,proto3" json:"positions_with_upnl,omitempty"` +} + +func (x *Portfolio) Reset() { + *x = Portfolio{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Portfolio) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Portfolio) ProtoMessage() {} + +func (x *Portfolio) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[5] + 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 Portfolio.ProtoReflect.Descriptor instead. +func (*Portfolio) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{5} +} + +func (x *Portfolio) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *Portfolio) GetBankBalances() []*Coin { + if x != nil { + return x.BankBalances + } + return nil +} + +func (x *Portfolio) GetSubaccounts() []*SubaccountBalanceV2 { + if x != nil { + return x.Subaccounts + } + return nil +} + +func (x *Portfolio) GetPositionsWithUpnl() []*PositionsWithUPNL { + if x != nil { + return x.PositionsWithUpnl + } + return nil +} + +type Coin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Denom of the coin + Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *Coin) Reset() { + *x = Coin{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Coin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Coin) ProtoMessage() {} + +func (x *Coin) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[6] + 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 Coin.ProtoReflect.Descriptor instead. +func (*Coin) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *Coin) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *Coin) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +type SubaccountBalanceV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Related subaccount ID + SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Coin denom on the chain. + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + Deposit *SubaccountDeposit `protobuf:"bytes,3,opt,name=deposit,proto3" json:"deposit,omitempty"` +} + +func (x *SubaccountBalanceV2) Reset() { + *x = SubaccountBalanceV2{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountBalanceV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountBalanceV2) ProtoMessage() {} + +func (x *SubaccountBalanceV2) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[7] + 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 SubaccountBalanceV2.ProtoReflect.Descriptor instead. +func (*SubaccountBalanceV2) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *SubaccountBalanceV2) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *SubaccountBalanceV2) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *SubaccountBalanceV2) GetDeposit() *SubaccountDeposit { + if x != nil { + return x.Deposit + } + return nil +} + +type SubaccountDeposit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` + AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` +} + +func (x *SubaccountDeposit) Reset() { + *x = SubaccountDeposit{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubaccountDeposit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubaccountDeposit) ProtoMessage() {} + +func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[8] + 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 SubaccountDeposit.ProtoReflect.Descriptor instead. +func (*SubaccountDeposit) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *SubaccountDeposit) GetTotalBalance() string { + if x != nil { + return x.TotalBalance + } + return "" +} + +func (x *SubaccountDeposit) GetAvailableBalance() string { + if x != nil { + return x.AvailableBalance + } + return "" +} + +type PositionsWithUPNL struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Position *DerivativePosition `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` + // Unrealized PNL + UnrealizedPnl string `protobuf:"bytes,2,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` +} + +func (x *PositionsWithUPNL) Reset() { + *x = PositionsWithUPNL{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PositionsWithUPNL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PositionsWithUPNL) ProtoMessage() {} + +func (x *PositionsWithUPNL) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[9] + 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 PositionsWithUPNL.ProtoReflect.Descriptor instead. +func (*PositionsWithUPNL) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{9} +} + +func (x *PositionsWithUPNL) GetPosition() *DerivativePosition { + if x != nil { + return x.Position + } + return nil +} + +func (x *PositionsWithUPNL) GetUnrealizedPnl() string { + if x != nil { + return x.UnrealizedPnl + } + return "" +} + +type DerivativePosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Ticker of the derivative market + Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` + // Derivative Market ID + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // The subaccountId that the position belongs to + SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Direction of the position + Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` + // Quantity of the position + Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` + // Price of the position + EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` + // Margin of the position + Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` + // LiquidationPrice of the position + LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` + // MarkPrice of the position + MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` + // Aggregate Quantity of the Reduce Only orders associated with the position + AggregateReduceOnlyQuantity string `protobuf:"bytes,11,opt,name=aggregate_reduce_only_quantity,json=aggregateReduceOnlyQuantity,proto3" json:"aggregate_reduce_only_quantity,omitempty"` + // Position updated timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Position created timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` +} + +func (x *DerivativePosition) Reset() { + *x = DerivativePosition{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DerivativePosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DerivativePosition) ProtoMessage() {} + +func (x *DerivativePosition) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[10] + 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 DerivativePosition.ProtoReflect.Descriptor instead. +func (*DerivativePosition) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *DerivativePosition) GetTicker() string { + if x != nil { + return x.Ticker + } + return "" +} + +func (x *DerivativePosition) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *DerivativePosition) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *DerivativePosition) GetDirection() string { + if x != nil { + return x.Direction + } + return "" +} + +func (x *DerivativePosition) GetQuantity() string { + if x != nil { + return x.Quantity + } + return "" +} + +func (x *DerivativePosition) GetEntryPrice() string { + if x != nil { + return x.EntryPrice + } + return "" +} + +func (x *DerivativePosition) GetMargin() string { + if x != nil { + return x.Margin + } + return "" +} + +func (x *DerivativePosition) GetLiquidationPrice() string { + if x != nil { + return x.LiquidationPrice + } + return "" +} + +func (x *DerivativePosition) GetMarkPrice() string { + if x != nil { + return x.MarkPrice + } + return "" +} + +func (x *DerivativePosition) GetAggregateReduceOnlyQuantity() string { + if x != nil { + return x.AggregateReduceOnlyQuantity + } + return "" +} + +func (x *DerivativePosition) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *DerivativePosition) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +type AccountPortfolioBalancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Account address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` +} + +func (x *AccountPortfolioBalancesRequest) Reset() { + *x = AccountPortfolioBalancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolioBalancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolioBalancesRequest) ProtoMessage() {} + +func (x *AccountPortfolioBalancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_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 AccountPortfolioBalancesRequest.ProtoReflect.Descriptor instead. +func (*AccountPortfolioBalancesRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *AccountPortfolioBalancesRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +type AccountPortfolioBalancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The portfolio balances of this account + Portfolio *PortfolioBalances `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` +} + +func (x *AccountPortfolioBalancesResponse) Reset() { + *x = AccountPortfolioBalancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountPortfolioBalancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountPortfolioBalancesResponse) ProtoMessage() {} + +func (x *AccountPortfolioBalancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_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 AccountPortfolioBalancesResponse.ProtoReflect.Descriptor instead. +func (*AccountPortfolioBalancesResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{12} +} + +func (x *AccountPortfolioBalancesResponse) GetPortfolio() *PortfolioBalances { + if x != nil { + return x.Portfolio + } + return nil +} + +type PortfolioBalances struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account's portfolio address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Account available bank balances + BankBalances []*Coin `protobuf:"bytes,2,rep,name=bank_balances,json=bankBalances,proto3" json:"bank_balances,omitempty"` + // Subaccounts list + Subaccounts []*SubaccountBalanceV2 `protobuf:"bytes,3,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` +} + +func (x *PortfolioBalances) Reset() { + *x = PortfolioBalances{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PortfolioBalances) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortfolioBalances) ProtoMessage() {} + +func (x *PortfolioBalances) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[13] + 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 PortfolioBalances.ProtoReflect.Descriptor instead. +func (*PortfolioBalances) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{13} +} + +func (x *PortfolioBalances) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *PortfolioBalances) GetBankBalances() []*Coin { + if x != nil { + return x.BankBalances + } + return nil +} + +func (x *PortfolioBalances) GetSubaccounts() []*SubaccountBalanceV2 { + if x != nil { + return x.Subaccounts + } + return nil +} + +type StreamAccountPortfolioRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The account's portfolio address + AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Related subaccount ID + SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *StreamAccountPortfolioRequest) Reset() { + *x = StreamAccountPortfolioRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountPortfolioRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountPortfolioRequest) ProtoMessage() {} + +func (x *StreamAccountPortfolioRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[14] + 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 StreamAccountPortfolioRequest.ProtoReflect.Descriptor instead. +func (*StreamAccountPortfolioRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{14} +} + +func (x *StreamAccountPortfolioRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *StreamAccountPortfolioRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *StreamAccountPortfolioRequest) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type StreamAccountPortfolioResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // type of portfolio entry + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // denom of portfolio entry + Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` + // amount of portfolio entry + Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + // subaccount id of portfolio entry + SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Operation timestamp in UNIX millis. + Timestamp int64 `protobuf:"zigzag64,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` +} + +func (x *StreamAccountPortfolioResponse) Reset() { + *x = StreamAccountPortfolioResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAccountPortfolioResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAccountPortfolioResponse) ProtoMessage() {} + +func (x *StreamAccountPortfolioResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[15] + 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 StreamAccountPortfolioResponse.ProtoReflect.Descriptor instead. +func (*StreamAccountPortfolioResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP(), []int{15} +} + +func (x *StreamAccountPortfolioResponse) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *StreamAccountPortfolioResponse) GetDenom() string { + if x != nil { + return x.Denom + } + return "" +} + +func (x *StreamAccountPortfolioResponse) GetAmount() string { + if x != nil { + return x.Amount + } + return "" +} + +func (x *StreamAccountPortfolioResponse) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *StreamAccountPortfolioResponse) GetTimestamp() int64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +var File_goadesign_goagen_injective_portfolio_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x17, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x59, 0x0a, 0x13, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 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, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x22, 0x74, 0x0a, 0x14, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x07, + 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x07, + 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6e, + 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x48, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x42, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x18, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xa4, 0x02, 0x0a, 0x09, 0x50, 0x6f, + 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x50, 0x4e, 0x4c, 0x52, 0x11, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x70, 0x6e, 0x6c, + 0x22, 0x34, 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, 0x22, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 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, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x44, 0x0a, 0x07, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x22, + 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x50, 0x4e, 0x4c, 0x12, 0x47, 0x0a, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, + 0x6f, 0x6c, 0x69, 0x6f, 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, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x22, 0xb0, 0x03, 0x0a, + 0x12, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x71, + 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x1e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, + 0x4a, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6c, 0x0a, 0x20, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x48, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x09, + 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x50, 0x6f, + 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, + 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, + 0x62, 0x61, 0x6e, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, + 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x52, + 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x81, 0x01, 0x0a, + 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, + 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 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, 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, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0x9d, 0x04, 0x0a, 0x15, 0x49, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, + 0x50, 0x43, 0x12, 0x6b, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x48, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x16, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, + 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, + 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1c, 0x5a, 0x1a, 0x2f, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, + 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescData = file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc +) + +func file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescData) + }) + return file_goadesign_goagen_injective_portfolio_rpc_proto_rawDescData +} + +var file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_goadesign_goagen_injective_portfolio_rpc_proto_goTypes = []interface{}{ + (*TokenHoldersRequest)(nil), // 0: injective_portfolio_rpc.TokenHoldersRequest + (*TokenHoldersResponse)(nil), // 1: injective_portfolio_rpc.TokenHoldersResponse + (*Holder)(nil), // 2: injective_portfolio_rpc.Holder + (*AccountPortfolioRequest)(nil), // 3: injective_portfolio_rpc.AccountPortfolioRequest + (*AccountPortfolioResponse)(nil), // 4: injective_portfolio_rpc.AccountPortfolioResponse + (*Portfolio)(nil), // 5: injective_portfolio_rpc.Portfolio + (*Coin)(nil), // 6: injective_portfolio_rpc.Coin + (*SubaccountBalanceV2)(nil), // 7: injective_portfolio_rpc.SubaccountBalanceV2 + (*SubaccountDeposit)(nil), // 8: injective_portfolio_rpc.SubaccountDeposit + (*PositionsWithUPNL)(nil), // 9: injective_portfolio_rpc.PositionsWithUPNL + (*DerivativePosition)(nil), // 10: injective_portfolio_rpc.DerivativePosition + (*AccountPortfolioBalancesRequest)(nil), // 11: injective_portfolio_rpc.AccountPortfolioBalancesRequest + (*AccountPortfolioBalancesResponse)(nil), // 12: injective_portfolio_rpc.AccountPortfolioBalancesResponse + (*PortfolioBalances)(nil), // 13: injective_portfolio_rpc.PortfolioBalances + (*StreamAccountPortfolioRequest)(nil), // 14: injective_portfolio_rpc.StreamAccountPortfolioRequest + (*StreamAccountPortfolioResponse)(nil), // 15: injective_portfolio_rpc.StreamAccountPortfolioResponse +} +var file_goadesign_goagen_injective_portfolio_rpc_proto_depIdxs = []int32{ + 2, // 0: injective_portfolio_rpc.TokenHoldersResponse.holders:type_name -> injective_portfolio_rpc.Holder + 5, // 1: injective_portfolio_rpc.AccountPortfolioResponse.portfolio:type_name -> injective_portfolio_rpc.Portfolio + 6, // 2: injective_portfolio_rpc.Portfolio.bank_balances:type_name -> injective_portfolio_rpc.Coin + 7, // 3: injective_portfolio_rpc.Portfolio.subaccounts:type_name -> injective_portfolio_rpc.SubaccountBalanceV2 + 9, // 4: injective_portfolio_rpc.Portfolio.positions_with_upnl:type_name -> injective_portfolio_rpc.PositionsWithUPNL + 8, // 5: injective_portfolio_rpc.SubaccountBalanceV2.deposit:type_name -> injective_portfolio_rpc.SubaccountDeposit + 10, // 6: injective_portfolio_rpc.PositionsWithUPNL.position:type_name -> injective_portfolio_rpc.DerivativePosition + 13, // 7: injective_portfolio_rpc.AccountPortfolioBalancesResponse.portfolio:type_name -> injective_portfolio_rpc.PortfolioBalances + 6, // 8: injective_portfolio_rpc.PortfolioBalances.bank_balances:type_name -> injective_portfolio_rpc.Coin + 7, // 9: injective_portfolio_rpc.PortfolioBalances.subaccounts:type_name -> injective_portfolio_rpc.SubaccountBalanceV2 + 0, // 10: injective_portfolio_rpc.InjectivePortfolioRPC.TokenHolders:input_type -> injective_portfolio_rpc.TokenHoldersRequest + 3, // 11: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolio:input_type -> injective_portfolio_rpc.AccountPortfolioRequest + 11, // 12: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolioBalances:input_type -> injective_portfolio_rpc.AccountPortfolioBalancesRequest + 14, // 13: injective_portfolio_rpc.InjectivePortfolioRPC.StreamAccountPortfolio:input_type -> injective_portfolio_rpc.StreamAccountPortfolioRequest + 1, // 14: injective_portfolio_rpc.InjectivePortfolioRPC.TokenHolders:output_type -> injective_portfolio_rpc.TokenHoldersResponse + 4, // 15: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolio:output_type -> injective_portfolio_rpc.AccountPortfolioResponse + 12, // 16: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolioBalances:output_type -> injective_portfolio_rpc.AccountPortfolioBalancesResponse + 15, // 17: injective_portfolio_rpc.InjectivePortfolioRPC.StreamAccountPortfolio:output_type -> injective_portfolio_rpc.StreamAccountPortfolioResponse + 14, // [14:18] is the sub-list for method output_type + 10, // [10:14] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_portfolio_rpc_proto_init() } +func file_goadesign_goagen_injective_portfolio_rpc_proto_init() { + if File_goadesign_goagen_injective_portfolio_rpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenHoldersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenHoldersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Holder); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolioRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolioResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Portfolio); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Coin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountBalanceV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubaccountDeposit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PositionsWithUPNL); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DerivativePosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolioBalancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountPortfolioBalancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PortfolioBalances); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountPortfolioRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAccountPortfolioResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_injective_portfolio_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_portfolio_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_portfolio_rpc_proto_msgTypes, + }.Build() + File_goadesign_goagen_injective_portfolio_rpc_proto = out.File + file_goadesign_goagen_injective_portfolio_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_portfolio_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_portfolio_rpc_proto_depIdxs = nil +} diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc_grpc.pb.go b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go similarity index 82% rename from exchange/portfolio_rpc/pb/injective_portfolio_rpc_grpc.pb.go rename to exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go index e2346487..86b88e4d 100644 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc_grpc.pb.go +++ b/exchange/portfolio_rpc/pb/goadesign_goagen_injective_portfolio_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_portfolio_rpc.proto package injective_portfolio_rpcpb @@ -18,6 +22,8 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type InjectivePortfolioRPCClient interface { + // Provide a list of addresses holding a specific token + TokenHolders(ctx context.Context, in *TokenHoldersRequest, opts ...grpc.CallOption) (*TokenHoldersResponse, error) // Provide the account's portfolio AccountPortfolio(ctx context.Context, in *AccountPortfolioRequest, opts ...grpc.CallOption) (*AccountPortfolioResponse, error) // Provide the account's portfolio balances @@ -34,6 +40,15 @@ func NewInjectivePortfolioRPCClient(cc grpc.ClientConnInterface) InjectivePortfo return &injectivePortfolioRPCClient{cc} } +func (c *injectivePortfolioRPCClient) TokenHolders(ctx context.Context, in *TokenHoldersRequest, opts ...grpc.CallOption) (*TokenHoldersResponse, error) { + out := new(TokenHoldersResponse) + err := c.cc.Invoke(ctx, "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *injectivePortfolioRPCClient) AccountPortfolio(ctx context.Context, in *AccountPortfolioRequest, opts ...grpc.CallOption) (*AccountPortfolioResponse, error) { out := new(AccountPortfolioResponse) err := c.cc.Invoke(ctx, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", in, out, opts...) @@ -88,6 +103,8 @@ func (x *injectivePortfolioRPCStreamAccountPortfolioClient) Recv() (*StreamAccou // All implementations must embed UnimplementedInjectivePortfolioRPCServer // for forward compatibility type InjectivePortfolioRPCServer interface { + // Provide a list of addresses holding a specific token + TokenHolders(context.Context, *TokenHoldersRequest) (*TokenHoldersResponse, error) // Provide the account's portfolio AccountPortfolio(context.Context, *AccountPortfolioRequest) (*AccountPortfolioResponse, error) // Provide the account's portfolio balances @@ -101,6 +118,9 @@ type InjectivePortfolioRPCServer interface { type UnimplementedInjectivePortfolioRPCServer struct { } +func (UnimplementedInjectivePortfolioRPCServer) TokenHolders(context.Context, *TokenHoldersRequest) (*TokenHoldersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TokenHolders not implemented") +} func (UnimplementedInjectivePortfolioRPCServer) AccountPortfolio(context.Context, *AccountPortfolioRequest) (*AccountPortfolioResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AccountPortfolio not implemented") } @@ -123,6 +143,24 @@ func RegisterInjectivePortfolioRPCServer(s grpc.ServiceRegistrar, srv InjectiveP s.RegisterService(&InjectivePortfolioRPC_ServiceDesc, srv) } +func _InjectivePortfolioRPC_TokenHolders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TokenHoldersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(InjectivePortfolioRPCServer).TokenHolders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(InjectivePortfolioRPCServer).TokenHolders(ctx, req.(*TokenHoldersRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _InjectivePortfolioRPC_AccountPortfolio_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AccountPortfolioRequest) if err := dec(in); err != nil { @@ -187,6 +225,10 @@ var InjectivePortfolioRPC_ServiceDesc = grpc.ServiceDesc{ ServiceName: "injective_portfolio_rpc.InjectivePortfolioRPC", HandlerType: (*InjectivePortfolioRPCServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "TokenHolders", + Handler: _InjectivePortfolioRPC_TokenHolders_Handler, + }, { MethodName: "AccountPortfolio", Handler: _InjectivePortfolioRPC_AccountPortfolio_Handler, @@ -203,5 +245,5 @@ var InjectivePortfolioRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_portfolio_rpc.proto", + Metadata: "goadesign_goagen_injective_portfolio_rpc.proto", } diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.go b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.go deleted file mode 100644 index cc9a6daa..00000000 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.go +++ /dev/null @@ -1,1289 +0,0 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. -// -// InjectivePortfolioRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: injective_portfolio_rpc.proto - -package injective_portfolio_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type AccountPortfolioRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *AccountPortfolioRequest) Reset() { - *x = AccountPortfolioRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolioRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolioRequest) ProtoMessage() {} - -func (x *AccountPortfolioRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[0] - 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 AccountPortfolioRequest.ProtoReflect.Descriptor instead. -func (*AccountPortfolioRequest) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{0} -} - -func (x *AccountPortfolioRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type AccountPortfolioResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The portfolio of this account - Portfolio *Portfolio `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` -} - -func (x *AccountPortfolioResponse) Reset() { - *x = AccountPortfolioResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolioResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolioResponse) ProtoMessage() {} - -func (x *AccountPortfolioResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[1] - 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 AccountPortfolioResponse.ProtoReflect.Descriptor instead. -func (*AccountPortfolioResponse) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *AccountPortfolioResponse) GetPortfolio() *Portfolio { - if x != nil { - return x.Portfolio - } - return nil -} - -type Portfolio struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Account available bank balances - BankBalances []*Coin `protobuf:"bytes,2,rep,name=bank_balances,json=bankBalances,proto3" json:"bank_balances,omitempty"` - // Subaccounts list - Subaccounts []*SubaccountBalanceV2 `protobuf:"bytes,3,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` - // All positions for all subaccounts, with unrealized PNL - PositionsWithUpnl []*PositionsWithUPNL `protobuf:"bytes,4,rep,name=positions_with_upnl,json=positionsWithUpnl,proto3" json:"positions_with_upnl,omitempty"` -} - -func (x *Portfolio) Reset() { - *x = Portfolio{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Portfolio) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Portfolio) ProtoMessage() {} - -func (x *Portfolio) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[2] - 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 Portfolio.ProtoReflect.Descriptor instead. -func (*Portfolio) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *Portfolio) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *Portfolio) GetBankBalances() []*Coin { - if x != nil { - return x.BankBalances - } - return nil -} - -func (x *Portfolio) GetSubaccounts() []*SubaccountBalanceV2 { - if x != nil { - return x.Subaccounts - } - return nil -} - -func (x *Portfolio) GetPositionsWithUpnl() []*PositionsWithUPNL { - if x != nil { - return x.PositionsWithUpnl - } - return nil -} - -type Coin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Denom of the coin - Denom string `protobuf:"bytes,1,opt,name=denom,proto3" json:"denom,omitempty"` - Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` -} - -func (x *Coin) Reset() { - *x = Coin{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Coin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Coin) ProtoMessage() {} - -func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[3] - 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 Coin.ProtoReflect.Descriptor instead. -func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *Coin) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *Coin) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -type SubaccountBalanceV2 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Related subaccount ID - SubaccountId string `protobuf:"bytes,1,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Coin denom on the chain. - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - Deposit *SubaccountDeposit `protobuf:"bytes,3,opt,name=deposit,proto3" json:"deposit,omitempty"` -} - -func (x *SubaccountBalanceV2) Reset() { - *x = SubaccountBalanceV2{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountBalanceV2) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountBalanceV2) ProtoMessage() {} - -func (x *SubaccountBalanceV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[4] - 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 SubaccountBalanceV2.ProtoReflect.Descriptor instead. -func (*SubaccountBalanceV2) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{4} -} - -func (x *SubaccountBalanceV2) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *SubaccountBalanceV2) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *SubaccountBalanceV2) GetDeposit() *SubaccountDeposit { - if x != nil { - return x.Deposit - } - return nil -} - -type SubaccountDeposit struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TotalBalance string `protobuf:"bytes,1,opt,name=total_balance,json=totalBalance,proto3" json:"total_balance,omitempty"` - AvailableBalance string `protobuf:"bytes,2,opt,name=available_balance,json=availableBalance,proto3" json:"available_balance,omitempty"` -} - -func (x *SubaccountDeposit) Reset() { - *x = SubaccountDeposit{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SubaccountDeposit) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SubaccountDeposit) ProtoMessage() {} - -func (x *SubaccountDeposit) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[5] - 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 SubaccountDeposit.ProtoReflect.Descriptor instead. -func (*SubaccountDeposit) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{5} -} - -func (x *SubaccountDeposit) GetTotalBalance() string { - if x != nil { - return x.TotalBalance - } - return "" -} - -func (x *SubaccountDeposit) GetAvailableBalance() string { - if x != nil { - return x.AvailableBalance - } - return "" -} - -type PositionsWithUPNL struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Position *DerivativePosition `protobuf:"bytes,1,opt,name=position,proto3" json:"position,omitempty"` - // Unrealized PNL - UnrealizedPnl string `protobuf:"bytes,2,opt,name=unrealized_pnl,json=unrealizedPnl,proto3" json:"unrealized_pnl,omitempty"` -} - -func (x *PositionsWithUPNL) Reset() { - *x = PositionsWithUPNL{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PositionsWithUPNL) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PositionsWithUPNL) ProtoMessage() {} - -func (x *PositionsWithUPNL) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[6] - 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 PositionsWithUPNL.ProtoReflect.Descriptor instead. -func (*PositionsWithUPNL) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{6} -} - -func (x *PositionsWithUPNL) GetPosition() *DerivativePosition { - if x != nil { - return x.Position - } - return nil -} - -func (x *PositionsWithUPNL) GetUnrealizedPnl() string { - if x != nil { - return x.UnrealizedPnl - } - return "" -} - -type DerivativePosition struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Ticker of the derivative market - Ticker string `protobuf:"bytes,1,opt,name=ticker,proto3" json:"ticker,omitempty"` - // Derivative Market ID - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // The subaccountId that the position belongs to - SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Direction of the position - Direction string `protobuf:"bytes,4,opt,name=direction,proto3" json:"direction,omitempty"` - // Quantity of the position - Quantity string `protobuf:"bytes,5,opt,name=quantity,proto3" json:"quantity,omitempty"` - // Price of the position - EntryPrice string `protobuf:"bytes,6,opt,name=entry_price,json=entryPrice,proto3" json:"entry_price,omitempty"` - // Margin of the position - Margin string `protobuf:"bytes,7,opt,name=margin,proto3" json:"margin,omitempty"` - // LiquidationPrice of the position - LiquidationPrice string `protobuf:"bytes,8,opt,name=liquidation_price,json=liquidationPrice,proto3" json:"liquidation_price,omitempty"` - // MarkPrice of the position - MarkPrice string `protobuf:"bytes,9,opt,name=mark_price,json=markPrice,proto3" json:"mark_price,omitempty"` - // Aggregate Quantity of the Reduce Only orders associated with the position - AggregateReduceOnlyQuantity string `protobuf:"bytes,11,opt,name=aggregate_reduce_only_quantity,json=aggregateReduceOnlyQuantity,proto3" json:"aggregate_reduce_only_quantity,omitempty"` - // Position updated timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,12,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - // Position created timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,13,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` -} - -func (x *DerivativePosition) Reset() { - *x = DerivativePosition{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DerivativePosition) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DerivativePosition) ProtoMessage() {} - -func (x *DerivativePosition) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[7] - 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 DerivativePosition.ProtoReflect.Descriptor instead. -func (*DerivativePosition) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{7} -} - -func (x *DerivativePosition) GetTicker() string { - if x != nil { - return x.Ticker - } - return "" -} - -func (x *DerivativePosition) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *DerivativePosition) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *DerivativePosition) GetDirection() string { - if x != nil { - return x.Direction - } - return "" -} - -func (x *DerivativePosition) GetQuantity() string { - if x != nil { - return x.Quantity - } - return "" -} - -func (x *DerivativePosition) GetEntryPrice() string { - if x != nil { - return x.EntryPrice - } - return "" -} - -func (x *DerivativePosition) GetMargin() string { - if x != nil { - return x.Margin - } - return "" -} - -func (x *DerivativePosition) GetLiquidationPrice() string { - if x != nil { - return x.LiquidationPrice - } - return "" -} - -func (x *DerivativePosition) GetMarkPrice() string { - if x != nil { - return x.MarkPrice - } - return "" -} - -func (x *DerivativePosition) GetAggregateReduceOnlyQuantity() string { - if x != nil { - return x.AggregateReduceOnlyQuantity - } - return "" -} - -func (x *DerivativePosition) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -func (x *DerivativePosition) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -type AccountPortfolioBalancesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Account address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` -} - -func (x *AccountPortfolioBalancesRequest) Reset() { - *x = AccountPortfolioBalancesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolioBalancesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolioBalancesRequest) ProtoMessage() {} - -func (x *AccountPortfolioBalancesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[8] - 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 AccountPortfolioBalancesRequest.ProtoReflect.Descriptor instead. -func (*AccountPortfolioBalancesRequest) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{8} -} - -func (x *AccountPortfolioBalancesRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -type AccountPortfolioBalancesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The portfolio balances of this account - Portfolio *PortfolioBalances `protobuf:"bytes,1,opt,name=portfolio,proto3" json:"portfolio,omitempty"` -} - -func (x *AccountPortfolioBalancesResponse) Reset() { - *x = AccountPortfolioBalancesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountPortfolioBalancesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountPortfolioBalancesResponse) ProtoMessage() {} - -func (x *AccountPortfolioBalancesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[9] - 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 AccountPortfolioBalancesResponse.ProtoReflect.Descriptor instead. -func (*AccountPortfolioBalancesResponse) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{9} -} - -func (x *AccountPortfolioBalancesResponse) GetPortfolio() *PortfolioBalances { - if x != nil { - return x.Portfolio - } - return nil -} - -type PortfolioBalances struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Account available bank balances - BankBalances []*Coin `protobuf:"bytes,2,rep,name=bank_balances,json=bankBalances,proto3" json:"bank_balances,omitempty"` - // Subaccounts list - Subaccounts []*SubaccountBalanceV2 `protobuf:"bytes,3,rep,name=subaccounts,proto3" json:"subaccounts,omitempty"` -} - -func (x *PortfolioBalances) Reset() { - *x = PortfolioBalances{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PortfolioBalances) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PortfolioBalances) ProtoMessage() {} - -func (x *PortfolioBalances) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_rpc_proto_msgTypes[10] - 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 PortfolioBalances.ProtoReflect.Descriptor instead. -func (*PortfolioBalances) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{10} -} - -func (x *PortfolioBalances) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *PortfolioBalances) GetBankBalances() []*Coin { - if x != nil { - return x.BankBalances - } - return nil -} - -func (x *PortfolioBalances) GetSubaccounts() []*SubaccountBalanceV2 { - if x != nil { - return x.Subaccounts - } - return nil -} - -type StreamAccountPortfolioRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The account's portfolio address - AccountAddress string `protobuf:"bytes,1,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Related subaccount ID - SubaccountId string `protobuf:"bytes,2,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` -} - -func (x *StreamAccountPortfolioRequest) Reset() { - *x = StreamAccountPortfolioRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountPortfolioRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountPortfolioRequest) ProtoMessage() {} - -func (x *StreamAccountPortfolioRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_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 StreamAccountPortfolioRequest.ProtoReflect.Descriptor instead. -func (*StreamAccountPortfolioRequest) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{11} -} - -func (x *StreamAccountPortfolioRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *StreamAccountPortfolioRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *StreamAccountPortfolioRequest) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -type StreamAccountPortfolioResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // type of portfolio entry - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // denom of portfolio entry - Denom string `protobuf:"bytes,2,opt,name=denom,proto3" json:"denom,omitempty"` - // amount of portfolio entry - Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` - // subaccount id of portfolio entry - SubaccountId string `protobuf:"bytes,4,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Operation timestamp in UNIX millis. - Timestamp int64 `protobuf:"zigzag64,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"` -} - -func (x *StreamAccountPortfolioResponse) Reset() { - *x = StreamAccountPortfolioResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_portfolio_rpc_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StreamAccountPortfolioResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StreamAccountPortfolioResponse) ProtoMessage() {} - -func (x *StreamAccountPortfolioResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_portfolio_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 StreamAccountPortfolioResponse.ProtoReflect.Descriptor instead. -func (*StreamAccountPortfolioResponse) Descriptor() ([]byte, []int) { - return file_injective_portfolio_rpc_proto_rawDescGZIP(), []int{12} -} - -func (x *StreamAccountPortfolioResponse) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *StreamAccountPortfolioResponse) GetDenom() string { - if x != nil { - return x.Denom - } - return "" -} - -func (x *StreamAccountPortfolioResponse) GetAmount() string { - if x != nil { - return x.Amount - } - return "" -} - -func (x *StreamAccountPortfolioResponse) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *StreamAccountPortfolioResponse) GetTimestamp() int64 { - if x != nil { - return x.Timestamp - } - return 0 -} - -var File_injective_portfolio_rpc_proto protoreflect.FileDescriptor - -var file_injective_portfolio_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1d, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x17, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x22, 0x42, 0x0a, 0x17, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x18, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xa4, 0x02, 0x0a, 0x09, 0x50, - 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x13, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x70, 0x6e, 0x6c, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x50, 0x4e, 0x4c, 0x52, 0x11, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x70, 0x6e, - 0x6c, 0x22, 0x34, 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, 0x22, 0x96, 0x01, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, 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, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x44, 0x0a, 0x07, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x22, 0x65, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x50, 0x4e, 0x4c, 0x12, 0x47, 0x0a, - 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, - 0x66, 0x6f, 0x6c, 0x69, 0x6f, 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, 0x25, 0x0a, 0x0e, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, - 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x70, 0x6e, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x75, 0x6e, 0x72, 0x65, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6e, 0x6c, 0x22, 0xb0, 0x03, - 0x0a, 0x12, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 0x64, 0x18, 0x02, 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, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x67, 0x69, - 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x6c, 0x69, 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, - 0x71, 0x75, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, - 0x1e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, - 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x4a, 0x0a, 0x1f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x6c, 0x0a, 0x20, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x48, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6f, - 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x09, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x50, - 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x62, 0x61, 0x6e, - 0x6b, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, - 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4e, 0x0a, - 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x32, - 0x52, 0x0b, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x81, 0x01, - 0x0a, 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 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, 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, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x32, 0xb0, 0x03, 0x0a, 0x15, 0x49, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, - 0x52, 0x50, 0x43, 0x12, 0x77, 0x0a, 0x10, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, - 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x18, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, - 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, - 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x12, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x66, 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x6f, 0x6c, - 0x69, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x1c, 0x5a, 0x1a, - 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x66, - 0x6f, 0x6c, 0x69, 0x6f, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_injective_portfolio_rpc_proto_rawDescOnce sync.Once - file_injective_portfolio_rpc_proto_rawDescData = file_injective_portfolio_rpc_proto_rawDesc -) - -func file_injective_portfolio_rpc_proto_rawDescGZIP() []byte { - file_injective_portfolio_rpc_proto_rawDescOnce.Do(func() { - file_injective_portfolio_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_portfolio_rpc_proto_rawDescData) - }) - return file_injective_portfolio_rpc_proto_rawDescData -} - -var file_injective_portfolio_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 13) -var file_injective_portfolio_rpc_proto_goTypes = []interface{}{ - (*AccountPortfolioRequest)(nil), // 0: injective_portfolio_rpc.AccountPortfolioRequest - (*AccountPortfolioResponse)(nil), // 1: injective_portfolio_rpc.AccountPortfolioResponse - (*Portfolio)(nil), // 2: injective_portfolio_rpc.Portfolio - (*Coin)(nil), // 3: injective_portfolio_rpc.Coin - (*SubaccountBalanceV2)(nil), // 4: injective_portfolio_rpc.SubaccountBalanceV2 - (*SubaccountDeposit)(nil), // 5: injective_portfolio_rpc.SubaccountDeposit - (*PositionsWithUPNL)(nil), // 6: injective_portfolio_rpc.PositionsWithUPNL - (*DerivativePosition)(nil), // 7: injective_portfolio_rpc.DerivativePosition - (*AccountPortfolioBalancesRequest)(nil), // 8: injective_portfolio_rpc.AccountPortfolioBalancesRequest - (*AccountPortfolioBalancesResponse)(nil), // 9: injective_portfolio_rpc.AccountPortfolioBalancesResponse - (*PortfolioBalances)(nil), // 10: injective_portfolio_rpc.PortfolioBalances - (*StreamAccountPortfolioRequest)(nil), // 11: injective_portfolio_rpc.StreamAccountPortfolioRequest - (*StreamAccountPortfolioResponse)(nil), // 12: injective_portfolio_rpc.StreamAccountPortfolioResponse -} -var file_injective_portfolio_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_portfolio_rpc.AccountPortfolioResponse.portfolio:type_name -> injective_portfolio_rpc.Portfolio - 3, // 1: injective_portfolio_rpc.Portfolio.bank_balances:type_name -> injective_portfolio_rpc.Coin - 4, // 2: injective_portfolio_rpc.Portfolio.subaccounts:type_name -> injective_portfolio_rpc.SubaccountBalanceV2 - 6, // 3: injective_portfolio_rpc.Portfolio.positions_with_upnl:type_name -> injective_portfolio_rpc.PositionsWithUPNL - 5, // 4: injective_portfolio_rpc.SubaccountBalanceV2.deposit:type_name -> injective_portfolio_rpc.SubaccountDeposit - 7, // 5: injective_portfolio_rpc.PositionsWithUPNL.position:type_name -> injective_portfolio_rpc.DerivativePosition - 10, // 6: injective_portfolio_rpc.AccountPortfolioBalancesResponse.portfolio:type_name -> injective_portfolio_rpc.PortfolioBalances - 3, // 7: injective_portfolio_rpc.PortfolioBalances.bank_balances:type_name -> injective_portfolio_rpc.Coin - 4, // 8: injective_portfolio_rpc.PortfolioBalances.subaccounts:type_name -> injective_portfolio_rpc.SubaccountBalanceV2 - 0, // 9: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolio:input_type -> injective_portfolio_rpc.AccountPortfolioRequest - 8, // 10: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolioBalances:input_type -> injective_portfolio_rpc.AccountPortfolioBalancesRequest - 11, // 11: injective_portfolio_rpc.InjectivePortfolioRPC.StreamAccountPortfolio:input_type -> injective_portfolio_rpc.StreamAccountPortfolioRequest - 1, // 12: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolio:output_type -> injective_portfolio_rpc.AccountPortfolioResponse - 9, // 13: injective_portfolio_rpc.InjectivePortfolioRPC.AccountPortfolioBalances:output_type -> injective_portfolio_rpc.AccountPortfolioBalancesResponse - 12, // 14: injective_portfolio_rpc.InjectivePortfolioRPC.StreamAccountPortfolio:output_type -> injective_portfolio_rpc.StreamAccountPortfolioResponse - 12, // [12:15] is the sub-list for method output_type - 9, // [9:12] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name -} - -func init() { file_injective_portfolio_rpc_proto_init() } -func file_injective_portfolio_rpc_proto_init() { - if File_injective_portfolio_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_injective_portfolio_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolioRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolioResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Portfolio); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Coin); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountBalanceV2); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubaccountDeposit); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PositionsWithUPNL); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DerivativePosition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolioBalancesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountPortfolioBalancesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PortfolioBalances); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountPortfolioRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_portfolio_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamAccountPortfolioResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_portfolio_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 13, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_injective_portfolio_rpc_proto_goTypes, - DependencyIndexes: file_injective_portfolio_rpc_proto_depIdxs, - MessageInfos: file_injective_portfolio_rpc_proto_msgTypes, - }.Build() - File_injective_portfolio_rpc_proto = out.File - file_injective_portfolio_rpc_proto_rawDesc = nil - file_injective_portfolio_rpc_proto_goTypes = nil - file_injective_portfolio_rpc_proto_depIdxs = nil -} diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go index 6dd15a45..4277c8ee 100644 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go +++ b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.pb.gw.go @@ -31,6 +31,40 @@ var _ = runtime.String var _ = utilities.NewDoubleArray var _ = metadata.Join +func request_InjectivePortfolioRPC_TokenHolders_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq TokenHoldersRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.TokenHolders(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_InjectivePortfolioRPC_TokenHolders_0(ctx context.Context, marshaler runtime.Marshaler, server InjectivePortfolioRPCServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq TokenHoldersRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.TokenHolders(ctx, &protoReq) + return msg, metadata, err + +} + func request_InjectivePortfolioRPC_AccountPortfolio_0(ctx context.Context, marshaler runtime.Marshaler, client InjectivePortfolioRPCClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq AccountPortfolioRequest var metadata runtime.ServerMetadata @@ -130,26 +164,53 @@ func request_InjectivePortfolioRPC_StreamAccountPortfolio_0(ctx context.Context, // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInjectivePortfolioRPCHandlerFromEndpoint instead. func RegisterInjectivePortfolioRPCHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InjectivePortfolioRPCServer) error { - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_InjectivePortfolioRPC_TokenHolders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolio_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectivePortfolioRPC_AccountPortfolio_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -159,20 +220,22 @@ func RegisterInjectivePortfolioRPCHandlerServer(ctx context.Context, mux *runtim var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolioBalances_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -224,23 +287,47 @@ func RegisterInjectivePortfolioRPCHandler(ctx context.Context, mux *runtime.Serv // "InjectivePortfolioRPCClient" to call the correct interceptors. func RegisterInjectivePortfolioRPCHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InjectivePortfolioRPCClient) error { - mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_InjectivePortfolioRPC_TokenHolders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/TokenHolders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectivePortfolioRPC_AccountPortfolio_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_InjectivePortfolioRPC_TokenHolders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_InjectivePortfolioRPC_AccountPortfolio_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolio")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } + resp, md, err := request_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } - forward_InjectivePortfolioRPC_AccountPortfolio_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectivePortfolioRPC_AccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -248,19 +335,21 @@ func RegisterInjectivePortfolioRPCHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/AccountPortfolioBalances")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectivePortfolioRPC_AccountPortfolioBalances_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectivePortfolioRPC_AccountPortfolioBalances_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -268,19 +357,21 @@ func RegisterInjectivePortfolioRPCHandlerClient(ctx context.Context, mux *runtim ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio", runtime.WithHTTPPathPattern("/injective_portfolio_rpc.InjectivePortfolioRPC/StreamAccountPortfolio")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectivePortfolioRPC_StreamAccountPortfolio_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectivePortfolioRPC_StreamAccountPortfolio_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectivePortfolioRPC_StreamAccountPortfolio_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectivePortfolioRPC_StreamAccountPortfolio_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -288,6 +379,8 @@ func RegisterInjectivePortfolioRPCHandlerClient(ctx context.Context, mux *runtim } var ( + pattern_InjectivePortfolioRPC_TokenHolders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "TokenHolders"}, "")) + pattern_InjectivePortfolioRPC_AccountPortfolio_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "AccountPortfolio"}, "")) pattern_InjectivePortfolioRPC_AccountPortfolioBalances_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"injective_portfolio_rpc.InjectivePortfolioRPC", "AccountPortfolioBalances"}, "")) @@ -296,6 +389,8 @@ var ( ) var ( + forward_InjectivePortfolioRPC_TokenHolders_0 = runtime.ForwardResponseMessage + forward_InjectivePortfolioRPC_AccountPortfolio_0 = runtime.ForwardResponseMessage forward_InjectivePortfolioRPC_AccountPortfolioBalances_0 = runtime.ForwardResponseMessage diff --git a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto index 9c56cbdc..df98146b 100644 --- a/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto +++ b/exchange/portfolio_rpc/pb/injective_portfolio_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectivePortfolioRPC protocol buffer definition // @@ -13,6 +13,8 @@ option go_package = "/injective_portfolio_rpcpb"; // InjectivePortfolioRPC defines gRPC API of Exchange Portfolio provider. service InjectivePortfolioRPC { + // Provide a list of addresses holding a specific token + rpc TokenHolders (TokenHoldersRequest) returns (TokenHoldersResponse); // Provide the account's portfolio rpc AccountPortfolio (AccountPortfolioRequest) returns (AccountPortfolioResponse); // Provide the account's portfolio balances @@ -21,6 +23,27 @@ service InjectivePortfolioRPC { rpc StreamAccountPortfolio (StreamAccountPortfolioRequest) returns (stream StreamAccountPortfolioResponse); } +message TokenHoldersRequest { + // Denom of the token + string denom = 1; + // Cursor for pagination + string cursor = 2; + sint32 limit = 3; +} + +message TokenHoldersResponse { + repeated Holder holders = 1; + // Next cursors for pagination + repeated string next_cursors = 2; +} + +message Holder { + // Account address for the holder + string account_address = 1; + // The balance of the holder + string balance = 2; +} + message AccountPortfolioRequest { // Account address string account_address = 1; diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go similarity index 66% rename from exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.go rename to exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go index f09e57fd..e42a27b8 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc.pb.go @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveSpotExchangeRPC protocol buffer definition // @@ -9,7 +9,7 @@ // versions: // protoc-gen-go v1.30.0 // protoc v3.19.4 -// source: injective_spot_exchange_rpc.proto +// source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb @@ -44,7 +44,7 @@ type MarketsRequest struct { func (x *MarketsRequest) Reset() { *x = MarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -57,7 +57,7 @@ func (x *MarketsRequest) String() string { func (*MarketsRequest) ProtoMessage() {} func (x *MarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[0] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70,7 +70,7 @@ func (x *MarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketsRequest.ProtoReflect.Descriptor instead. func (*MarketsRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{0} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{0} } func (x *MarketsRequest) GetMarketStatus() string { @@ -113,7 +113,7 @@ type MarketsResponse struct { func (x *MarketsResponse) Reset() { *x = MarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -126,7 +126,7 @@ func (x *MarketsResponse) String() string { func (*MarketsResponse) ProtoMessage() {} func (x *MarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[1] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -139,7 +139,7 @@ func (x *MarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketsResponse.ProtoReflect.Descriptor instead. func (*MarketsResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{1} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{1} } func (x *MarketsResponse) GetMarkets() []*SpotMarketInfo { @@ -179,12 +179,14 @@ type SpotMarketInfo struct { MinPriceTickSize string `protobuf:"bytes,11,opt,name=min_price_tick_size,json=minPriceTickSize,proto3" json:"min_price_tick_size,omitempty"` // Defines the minimum required tick size for the order's quantity MinQuantityTickSize string `protobuf:"bytes,12,opt,name=min_quantity_tick_size,json=minQuantityTickSize,proto3" json:"min_quantity_tick_size,omitempty"` + // Minimum notional value for the market + MinNotional string `protobuf:"bytes,13,opt,name=min_notional,json=minNotional,proto3" json:"min_notional,omitempty"` } func (x *SpotMarketInfo) Reset() { *x = SpotMarketInfo{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -197,7 +199,7 @@ func (x *SpotMarketInfo) String() string { func (*SpotMarketInfo) ProtoMessage() {} func (x *SpotMarketInfo) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[2] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -210,7 +212,7 @@ func (x *SpotMarketInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SpotMarketInfo.ProtoReflect.Descriptor instead. func (*SpotMarketInfo) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{2} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{2} } func (x *SpotMarketInfo) GetMarketId() string { @@ -297,6 +299,13 @@ func (x *SpotMarketInfo) GetMinQuantityTickSize() string { return "" } +func (x *SpotMarketInfo) GetMinNotional() string { + if x != nil { + return x.MinNotional + } + return "" +} + type TokenMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -319,7 +328,7 @@ type TokenMeta struct { func (x *TokenMeta) Reset() { *x = TokenMeta{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -332,7 +341,7 @@ func (x *TokenMeta) String() string { func (*TokenMeta) ProtoMessage() {} func (x *TokenMeta) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[3] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -345,7 +354,7 @@ func (x *TokenMeta) ProtoReflect() protoreflect.Message { // Deprecated: Use TokenMeta.ProtoReflect.Descriptor instead. func (*TokenMeta) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{3} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{3} } func (x *TokenMeta) GetName() string { @@ -402,7 +411,7 @@ type MarketRequest struct { func (x *MarketRequest) Reset() { *x = MarketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -415,7 +424,7 @@ func (x *MarketRequest) String() string { func (*MarketRequest) ProtoMessage() {} func (x *MarketRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[4] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -428,7 +437,7 @@ func (x *MarketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketRequest.ProtoReflect.Descriptor instead. func (*MarketRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{4} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{4} } func (x *MarketRequest) GetMarketId() string { @@ -450,7 +459,7 @@ type MarketResponse struct { func (x *MarketResponse) Reset() { *x = MarketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -463,7 +472,7 @@ func (x *MarketResponse) String() string { func (*MarketResponse) ProtoMessage() {} func (x *MarketResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[5] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -476,7 +485,7 @@ func (x *MarketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketResponse.ProtoReflect.Descriptor instead. func (*MarketResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{5} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{5} } func (x *MarketResponse) GetMarket() *SpotMarketInfo { @@ -498,7 +507,7 @@ type StreamMarketsRequest struct { func (x *StreamMarketsRequest) Reset() { *x = StreamMarketsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -511,7 +520,7 @@ func (x *StreamMarketsRequest) String() string { func (*StreamMarketsRequest) ProtoMessage() {} func (x *StreamMarketsRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[6] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -524,7 +533,7 @@ func (x *StreamMarketsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamMarketsRequest.ProtoReflect.Descriptor instead. func (*StreamMarketsRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{6} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{6} } func (x *StreamMarketsRequest) GetMarketIds() []string { @@ -550,7 +559,7 @@ type StreamMarketsResponse struct { func (x *StreamMarketsResponse) Reset() { *x = StreamMarketsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -563,7 +572,7 @@ func (x *StreamMarketsResponse) String() string { func (*StreamMarketsResponse) ProtoMessage() {} func (x *StreamMarketsResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[7] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -576,7 +585,7 @@ func (x *StreamMarketsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamMarketsResponse.ProtoReflect.Descriptor instead. func (*StreamMarketsResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{7} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{7} } func (x *StreamMarketsResponse) GetMarket() *SpotMarketInfo { @@ -612,7 +621,7 @@ type OrderbookV2Request struct { func (x *OrderbookV2Request) Reset() { *x = OrderbookV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -625,7 +634,7 @@ func (x *OrderbookV2Request) String() string { func (*OrderbookV2Request) ProtoMessage() {} func (x *OrderbookV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[8] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -638,7 +647,7 @@ func (x *OrderbookV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookV2Request.ProtoReflect.Descriptor instead. func (*OrderbookV2Request) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{8} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{8} } func (x *OrderbookV2Request) GetMarketId() string { @@ -660,7 +669,7 @@ type OrderbookV2Response struct { func (x *OrderbookV2Response) Reset() { *x = OrderbookV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -673,7 +682,7 @@ func (x *OrderbookV2Response) String() string { func (*OrderbookV2Response) ProtoMessage() {} func (x *OrderbookV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[9] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -686,7 +695,7 @@ func (x *OrderbookV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookV2Response.ProtoReflect.Descriptor instead. func (*OrderbookV2Response) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{9} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{9} } func (x *OrderbookV2Response) GetOrderbook() *SpotLimitOrderbookV2 { @@ -714,7 +723,7 @@ type SpotLimitOrderbookV2 struct { func (x *SpotLimitOrderbookV2) Reset() { *x = SpotLimitOrderbookV2{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -727,7 +736,7 @@ func (x *SpotLimitOrderbookV2) String() string { func (*SpotLimitOrderbookV2) ProtoMessage() {} func (x *SpotLimitOrderbookV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[10] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -740,7 +749,7 @@ func (x *SpotLimitOrderbookV2) ProtoReflect() protoreflect.Message { // Deprecated: Use SpotLimitOrderbookV2.ProtoReflect.Descriptor instead. func (*SpotLimitOrderbookV2) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{10} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{10} } func (x *SpotLimitOrderbookV2) GetBuys() []*PriceLevel { @@ -787,7 +796,7 @@ type PriceLevel struct { func (x *PriceLevel) Reset() { *x = PriceLevel{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -800,7 +809,7 @@ func (x *PriceLevel) String() string { func (*PriceLevel) ProtoMessage() {} func (x *PriceLevel) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[11] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -813,7 +822,7 @@ func (x *PriceLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceLevel.ProtoReflect.Descriptor instead. func (*PriceLevel) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{11} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{11} } func (x *PriceLevel) GetPrice() string { @@ -849,7 +858,7 @@ type OrderbooksV2Request struct { func (x *OrderbooksV2Request) Reset() { *x = OrderbooksV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -862,7 +871,7 @@ func (x *OrderbooksV2Request) String() string { func (*OrderbooksV2Request) ProtoMessage() {} func (x *OrderbooksV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[12] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -875,7 +884,7 @@ func (x *OrderbooksV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbooksV2Request.ProtoReflect.Descriptor instead. func (*OrderbooksV2Request) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{12} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{12} } func (x *OrderbooksV2Request) GetMarketIds() []string { @@ -896,7 +905,7 @@ type OrderbooksV2Response struct { func (x *OrderbooksV2Response) Reset() { *x = OrderbooksV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -909,7 +918,7 @@ func (x *OrderbooksV2Response) String() string { func (*OrderbooksV2Response) ProtoMessage() {} func (x *OrderbooksV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[13] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -922,7 +931,7 @@ func (x *OrderbooksV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbooksV2Response.ProtoReflect.Descriptor instead. func (*OrderbooksV2Response) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{13} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{13} } func (x *OrderbooksV2Response) GetOrderbooks() []*SingleSpotLimitOrderbookV2 { @@ -946,7 +955,7 @@ type SingleSpotLimitOrderbookV2 struct { func (x *SingleSpotLimitOrderbookV2) Reset() { *x = SingleSpotLimitOrderbookV2{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -959,7 +968,7 @@ func (x *SingleSpotLimitOrderbookV2) String() string { func (*SingleSpotLimitOrderbookV2) ProtoMessage() {} func (x *SingleSpotLimitOrderbookV2) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[14] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -972,7 +981,7 @@ func (x *SingleSpotLimitOrderbookV2) ProtoReflect() protoreflect.Message { // Deprecated: Use SingleSpotLimitOrderbookV2.ProtoReflect.Descriptor instead. func (*SingleSpotLimitOrderbookV2) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{14} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{14} } func (x *SingleSpotLimitOrderbookV2) GetMarketId() string { @@ -1001,7 +1010,7 @@ type StreamOrderbookV2Request struct { func (x *StreamOrderbookV2Request) Reset() { *x = StreamOrderbookV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1014,7 +1023,7 @@ func (x *StreamOrderbookV2Request) String() string { func (*StreamOrderbookV2Request) ProtoMessage() {} func (x *StreamOrderbookV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[15] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1027,7 +1036,7 @@ func (x *StreamOrderbookV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookV2Request.ProtoReflect.Descriptor instead. func (*StreamOrderbookV2Request) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{15} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{15} } func (x *StreamOrderbookV2Request) GetMarketIds() []string { @@ -1055,7 +1064,7 @@ type StreamOrderbookV2Response struct { func (x *StreamOrderbookV2Response) Reset() { *x = StreamOrderbookV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1068,7 +1077,7 @@ func (x *StreamOrderbookV2Response) String() string { func (*StreamOrderbookV2Response) ProtoMessage() {} func (x *StreamOrderbookV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[16] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1081,7 +1090,7 @@ func (x *StreamOrderbookV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookV2Response.ProtoReflect.Descriptor instead. func (*StreamOrderbookV2Response) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{16} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{16} } func (x *StreamOrderbookV2Response) GetOrderbook() *SpotLimitOrderbookV2 { @@ -1124,7 +1133,7 @@ type StreamOrderbookUpdateRequest struct { func (x *StreamOrderbookUpdateRequest) Reset() { *x = StreamOrderbookUpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1137,7 +1146,7 @@ func (x *StreamOrderbookUpdateRequest) String() string { func (*StreamOrderbookUpdateRequest) ProtoMessage() {} func (x *StreamOrderbookUpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[17] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1150,7 +1159,7 @@ func (x *StreamOrderbookUpdateRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookUpdateRequest.ProtoReflect.Descriptor instead. func (*StreamOrderbookUpdateRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{17} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{17} } func (x *StreamOrderbookUpdateRequest) GetMarketIds() []string { @@ -1178,7 +1187,7 @@ type StreamOrderbookUpdateResponse struct { func (x *StreamOrderbookUpdateResponse) Reset() { *x = StreamOrderbookUpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1191,7 +1200,7 @@ func (x *StreamOrderbookUpdateResponse) String() string { func (*StreamOrderbookUpdateResponse) ProtoMessage() {} func (x *StreamOrderbookUpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[18] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1204,7 +1213,7 @@ func (x *StreamOrderbookUpdateResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrderbookUpdateResponse.ProtoReflect.Descriptor instead. func (*StreamOrderbookUpdateResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{18} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{18} } func (x *StreamOrderbookUpdateResponse) GetOrderbookLevelUpdates() *OrderbookLevelUpdates { @@ -1255,7 +1264,7 @@ type OrderbookLevelUpdates struct { func (x *OrderbookLevelUpdates) Reset() { *x = OrderbookLevelUpdates{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1268,7 +1277,7 @@ func (x *OrderbookLevelUpdates) String() string { func (*OrderbookLevelUpdates) ProtoMessage() {} func (x *OrderbookLevelUpdates) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[19] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1281,7 +1290,7 @@ func (x *OrderbookLevelUpdates) ProtoReflect() protoreflect.Message { // Deprecated: Use OrderbookLevelUpdates.ProtoReflect.Descriptor instead. func (*OrderbookLevelUpdates) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{19} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{19} } func (x *OrderbookLevelUpdates) GetMarketId() string { @@ -1337,7 +1346,7 @@ type PriceLevelUpdate struct { func (x *PriceLevelUpdate) Reset() { *x = PriceLevelUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1350,7 +1359,7 @@ func (x *PriceLevelUpdate) String() string { func (*PriceLevelUpdate) ProtoMessage() {} func (x *PriceLevelUpdate) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[20] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1363,7 +1372,7 @@ func (x *PriceLevelUpdate) ProtoReflect() protoreflect.Message { // Deprecated: Use PriceLevelUpdate.ProtoReflect.Descriptor instead. func (*PriceLevelUpdate) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{20} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{20} } func (x *PriceLevelUpdate) GetPrice() string { @@ -1430,7 +1439,7 @@ type OrdersRequest struct { func (x *OrdersRequest) Reset() { *x = OrdersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1443,7 +1452,7 @@ func (x *OrdersRequest) String() string { func (*OrdersRequest) ProtoMessage() {} func (x *OrdersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[21] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1456,7 +1465,7 @@ func (x *OrdersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersRequest.ProtoReflect.Descriptor instead. func (*OrdersRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{21} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{21} } func (x *OrdersRequest) GetMarketId() string { @@ -1555,7 +1564,7 @@ type OrdersResponse struct { func (x *OrdersResponse) Reset() { *x = OrdersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1568,7 +1577,7 @@ func (x *OrdersResponse) String() string { func (*OrdersResponse) ProtoMessage() {} func (x *OrdersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[22] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1581,7 +1590,7 @@ func (x *OrdersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersResponse.ProtoReflect.Descriptor instead. func (*OrdersResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{22} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{22} } func (x *OrdersResponse) GetOrders() []*SpotLimitOrder { @@ -1637,7 +1646,7 @@ type SpotLimitOrder struct { func (x *SpotLimitOrder) Reset() { *x = SpotLimitOrder{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1650,7 +1659,7 @@ func (x *SpotLimitOrder) String() string { func (*SpotLimitOrder) ProtoMessage() {} func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[23] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1663,7 +1672,7 @@ func (x *SpotLimitOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use SpotLimitOrder.ProtoReflect.Descriptor instead. func (*SpotLimitOrder) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{23} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{23} } func (x *SpotLimitOrder) GetOrderHash() string { @@ -1785,7 +1794,7 @@ type Paging struct { func (x *Paging) Reset() { *x = Paging{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1798,7 +1807,7 @@ func (x *Paging) String() string { func (*Paging) ProtoMessage() {} func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[24] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1811,7 +1820,7 @@ func (x *Paging) ProtoReflect() protoreflect.Message { // Deprecated: Use Paging.ProtoReflect.Descriptor instead. func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{24} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{24} } func (x *Paging) GetTotal() int64 { @@ -1885,7 +1894,7 @@ type StreamOrdersRequest struct { func (x *StreamOrdersRequest) Reset() { *x = StreamOrdersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1898,7 +1907,7 @@ func (x *StreamOrdersRequest) String() string { func (*StreamOrdersRequest) ProtoMessage() {} func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[25] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1911,7 +1920,7 @@ func (x *StreamOrdersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{25} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{25} } func (x *StreamOrdersRequest) GetMarketId() string { @@ -2014,7 +2023,7 @@ type StreamOrdersResponse struct { func (x *StreamOrdersResponse) Reset() { *x = StreamOrdersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2027,7 +2036,7 @@ func (x *StreamOrdersResponse) String() string { func (*StreamOrdersResponse) ProtoMessage() {} func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[26] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2040,7 +2049,7 @@ func (x *StreamOrdersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{26} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{26} } func (x *StreamOrdersResponse) GetOrder() *SpotLimitOrder { @@ -2103,7 +2112,7 @@ type TradesRequest struct { func (x *TradesRequest) Reset() { *x = TradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2116,7 +2125,7 @@ func (x *TradesRequest) String() string { func (*TradesRequest) ProtoMessage() {} func (x *TradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[27] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2129,7 +2138,7 @@ func (x *TradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesRequest.ProtoReflect.Descriptor instead. func (*TradesRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{27} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{27} } func (x *TradesRequest) GetMarketId() string { @@ -2244,7 +2253,7 @@ type TradesResponse struct { func (x *TradesResponse) Reset() { *x = TradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2257,7 +2266,7 @@ func (x *TradesResponse) String() string { func (*TradesResponse) ProtoMessage() {} func (x *TradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[28] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2270,7 +2279,7 @@ func (x *TradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesResponse.ProtoReflect.Descriptor instead. func (*TradesResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{28} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{28} } func (x *TradesResponse) GetTrades() []*SpotTrade { @@ -2321,7 +2330,7 @@ type SpotTrade struct { func (x *SpotTrade) Reset() { *x = SpotTrade{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2334,7 +2343,7 @@ func (x *SpotTrade) String() string { func (*SpotTrade) ProtoMessage() {} func (x *SpotTrade) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[29] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2347,7 +2356,7 @@ func (x *SpotTrade) ProtoReflect() protoreflect.Message { // Deprecated: Use SpotTrade.ProtoReflect.Descriptor instead. func (*SpotTrade) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{29} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{29} } func (x *SpotTrade) GetOrderHash() string { @@ -2473,7 +2482,7 @@ type StreamTradesRequest struct { func (x *StreamTradesRequest) Reset() { *x = StreamTradesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2486,7 +2495,7 @@ func (x *StreamTradesRequest) String() string { func (*StreamTradesRequest) ProtoMessage() {} func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[30] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2499,7 +2508,7 @@ func (x *StreamTradesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesRequest.ProtoReflect.Descriptor instead. func (*StreamTradesRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{30} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{30} } func (x *StreamTradesRequest) GetMarketId() string { @@ -2616,7 +2625,7 @@ type StreamTradesResponse struct { func (x *StreamTradesResponse) Reset() { *x = StreamTradesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2629,7 +2638,7 @@ func (x *StreamTradesResponse) String() string { func (*StreamTradesResponse) ProtoMessage() {} func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[31] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2642,7 +2651,7 @@ func (x *StreamTradesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesResponse.ProtoReflect.Descriptor instead. func (*StreamTradesResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{31} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{31} } func (x *StreamTradesResponse) GetTrade() *SpotTrade { @@ -2705,7 +2714,7 @@ type TradesV2Request struct { func (x *TradesV2Request) Reset() { *x = TradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2718,7 +2727,7 @@ func (x *TradesV2Request) String() string { func (*TradesV2Request) ProtoMessage() {} func (x *TradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[32] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2731,7 +2740,7 @@ func (x *TradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Request.ProtoReflect.Descriptor instead. func (*TradesV2Request) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{32} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{32} } func (x *TradesV2Request) GetMarketId() string { @@ -2846,7 +2855,7 @@ type TradesV2Response struct { func (x *TradesV2Response) Reset() { *x = TradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2859,7 +2868,7 @@ func (x *TradesV2Response) String() string { func (*TradesV2Response) ProtoMessage() {} func (x *TradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[33] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2872,7 +2881,7 @@ func (x *TradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use TradesV2Response.ProtoReflect.Descriptor instead. func (*TradesV2Response) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{33} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{33} } func (x *TradesV2Response) GetTrades() []*SpotTrade { @@ -2928,7 +2937,7 @@ type StreamTradesV2Request struct { func (x *StreamTradesV2Request) Reset() { *x = StreamTradesV2Request{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2941,7 +2950,7 @@ func (x *StreamTradesV2Request) String() string { func (*StreamTradesV2Request) ProtoMessage() {} func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[34] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2954,7 +2963,7 @@ func (x *StreamTradesV2Request) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Request.ProtoReflect.Descriptor instead. func (*StreamTradesV2Request) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{34} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{34} } func (x *StreamTradesV2Request) GetMarketId() string { @@ -3071,7 +3080,7 @@ type StreamTradesV2Response struct { func (x *StreamTradesV2Response) Reset() { *x = StreamTradesV2Response{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3084,7 +3093,7 @@ func (x *StreamTradesV2Response) String() string { func (*StreamTradesV2Response) ProtoMessage() {} func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[35] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3097,7 +3106,7 @@ func (x *StreamTradesV2Response) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamTradesV2Response.ProtoReflect.Descriptor instead. func (*StreamTradesV2Response) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{35} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{35} } func (x *StreamTradesV2Response) GetTrade() *SpotTrade { @@ -3139,7 +3148,7 @@ type SubaccountOrdersListRequest struct { func (x *SubaccountOrdersListRequest) Reset() { *x = SubaccountOrdersListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3152,7 +3161,7 @@ func (x *SubaccountOrdersListRequest) String() string { func (*SubaccountOrdersListRequest) ProtoMessage() {} func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[36] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3165,7 +3174,7 @@ func (x *SubaccountOrdersListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListRequest.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{36} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{36} } func (x *SubaccountOrdersListRequest) GetSubaccountId() string { @@ -3208,7 +3217,7 @@ type SubaccountOrdersListResponse struct { func (x *SubaccountOrdersListResponse) Reset() { *x = SubaccountOrdersListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3221,7 +3230,7 @@ func (x *SubaccountOrdersListResponse) String() string { func (*SubaccountOrdersListResponse) ProtoMessage() {} func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[37] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3234,7 +3243,7 @@ func (x *SubaccountOrdersListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountOrdersListResponse.ProtoReflect.Descriptor instead. func (*SubaccountOrdersListResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{37} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{37} } func (x *SubaccountOrdersListResponse) GetOrders() []*SpotLimitOrder { @@ -3273,7 +3282,7 @@ type SubaccountTradesListRequest struct { func (x *SubaccountTradesListRequest) Reset() { *x = SubaccountTradesListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3286,7 +3295,7 @@ func (x *SubaccountTradesListRequest) String() string { func (*SubaccountTradesListRequest) ProtoMessage() {} func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[38] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3299,7 +3308,7 @@ func (x *SubaccountTradesListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListRequest.ProtoReflect.Descriptor instead. func (*SubaccountTradesListRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{38} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{38} } func (x *SubaccountTradesListRequest) GetSubaccountId() string { @@ -3356,7 +3365,7 @@ type SubaccountTradesListResponse struct { func (x *SubaccountTradesListResponse) Reset() { *x = SubaccountTradesListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3369,7 +3378,7 @@ func (x *SubaccountTradesListResponse) String() string { func (*SubaccountTradesListResponse) ProtoMessage() {} func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[39] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3382,7 +3391,7 @@ func (x *SubaccountTradesListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubaccountTradesListResponse.ProtoReflect.Descriptor instead. func (*SubaccountTradesListResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{39} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{39} } func (x *SubaccountTradesListResponse) GetTrades() []*SpotTrade { @@ -3428,7 +3437,7 @@ type OrdersHistoryRequest struct { func (x *OrdersHistoryRequest) Reset() { *x = OrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3441,7 +3450,7 @@ func (x *OrdersHistoryRequest) String() string { func (*OrdersHistoryRequest) ProtoMessage() {} func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[40] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3454,7 +3463,7 @@ func (x *OrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*OrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{40} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{40} } func (x *OrdersHistoryRequest) GetSubaccountId() string { @@ -3568,7 +3577,7 @@ type OrdersHistoryResponse struct { func (x *OrdersHistoryResponse) Reset() { *x = OrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3581,7 +3590,7 @@ func (x *OrdersHistoryResponse) String() string { func (*OrdersHistoryResponse) ProtoMessage() {} func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[41] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3594,7 +3603,7 @@ func (x *OrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use OrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*OrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{41} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{41} } func (x *OrdersHistoryResponse) GetOrders() []*SpotOrderHistory { @@ -3653,7 +3662,7 @@ type SpotOrderHistory struct { func (x *SpotOrderHistory) Reset() { *x = SpotOrderHistory{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3666,7 +3675,7 @@ func (x *SpotOrderHistory) String() string { func (*SpotOrderHistory) ProtoMessage() {} func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[42] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3679,7 +3688,7 @@ func (x *SpotOrderHistory) ProtoReflect() protoreflect.Message { // Deprecated: Use SpotOrderHistory.ProtoReflect.Descriptor instead. func (*SpotOrderHistory) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{42} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{42} } func (x *SpotOrderHistory) GetOrderHash() string { @@ -3815,7 +3824,7 @@ type StreamOrdersHistoryRequest struct { func (x *StreamOrdersHistoryRequest) Reset() { *x = StreamOrdersHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3828,7 +3837,7 @@ func (x *StreamOrdersHistoryRequest) String() string { func (*StreamOrdersHistoryRequest) ProtoMessage() {} func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[43] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3841,7 +3850,7 @@ func (x *StreamOrdersHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryRequest.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{43} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{43} } func (x *StreamOrdersHistoryRequest) GetSubaccountId() string { @@ -3902,7 +3911,7 @@ type StreamOrdersHistoryResponse struct { func (x *StreamOrdersHistoryResponse) Reset() { *x = StreamOrdersHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3915,7 +3924,7 @@ func (x *StreamOrdersHistoryResponse) String() string { func (*StreamOrdersHistoryResponse) ProtoMessage() {} func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[44] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3928,7 +3937,7 @@ func (x *StreamOrdersHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamOrdersHistoryResponse.ProtoReflect.Descriptor instead. func (*StreamOrdersHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{44} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{44} } func (x *StreamOrdersHistoryResponse) GetOrder() *SpotOrderHistory { @@ -3974,7 +3983,7 @@ type AtomicSwapHistoryRequest struct { func (x *AtomicSwapHistoryRequest) Reset() { *x = AtomicSwapHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3987,7 +3996,7 @@ func (x *AtomicSwapHistoryRequest) String() string { func (*AtomicSwapHistoryRequest) ProtoMessage() {} func (x *AtomicSwapHistoryRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[45] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4000,7 +4009,7 @@ func (x *AtomicSwapHistoryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AtomicSwapHistoryRequest.ProtoReflect.Descriptor instead. func (*AtomicSwapHistoryRequest) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{45} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{45} } func (x *AtomicSwapHistoryRequest) GetAddress() string { @@ -4059,7 +4068,7 @@ type AtomicSwapHistoryResponse struct { func (x *AtomicSwapHistoryResponse) Reset() { *x = AtomicSwapHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4072,7 +4081,7 @@ func (x *AtomicSwapHistoryResponse) String() string { func (*AtomicSwapHistoryResponse) ProtoMessage() {} func (x *AtomicSwapHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[46] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4085,7 +4094,7 @@ func (x *AtomicSwapHistoryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AtomicSwapHistoryResponse.ProtoReflect.Descriptor instead. func (*AtomicSwapHistoryResponse) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{46} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{46} } func (x *AtomicSwapHistoryResponse) GetPaging() *Paging { @@ -4135,7 +4144,7 @@ type AtomicSwap struct { func (x *AtomicSwap) Reset() { *x = AtomicSwap{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4148,7 +4157,7 @@ func (x *AtomicSwap) String() string { func (*AtomicSwap) ProtoMessage() {} func (x *AtomicSwap) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[47] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4161,7 +4170,7 @@ func (x *AtomicSwap) ProtoReflect() protoreflect.Message { // Deprecated: Use AtomicSwap.ProtoReflect.Descriptor instead. func (*AtomicSwap) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{47} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{47} } func (x *AtomicSwap) GetSender() string { @@ -4254,7 +4263,7 @@ type Coin struct { func (x *Coin) Reset() { *x = Coin{} if protoimpl.UnsafeEnabled { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4267,7 +4276,7 @@ func (x *Coin) String() string { func (*Coin) ProtoMessage() {} func (x *Coin) ProtoReflect() protoreflect.Message { - mi := &file_injective_spot_exchange_rpc_proto_msgTypes[48] + mi := &file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4280,7 +4289,7 @@ func (x *Coin) ProtoReflect() protoreflect.Message { // Deprecated: Use Coin.ProtoReflect.Descriptor instead. func (*Coin) Descriptor() ([]byte, []int) { - return file_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{48} + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP(), []int{48} } func (x *Coin) GetDenom() string { @@ -4297,411 +4306,452 @@ func (x *Coin) GetAmount() string { return "" } -var File_injective_spot_exchange_rpc_proto protoreflect.FileDescriptor +var File_goadesign_goagen_injective_spot_exchange_rpc_proto protoreflect.FileDescriptor -var file_injective_spot_exchange_rpc_proto_rawDesc = []byte{ - 0x0a, 0x21, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, - 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, - 0x73, 0x22, 0x58, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x22, 0xae, 0x04, 0x0a, 0x0e, - 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, - 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x75, - 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x50, 0x0a, 0x10, 0x71, 0x75, 0x6f, 0x74, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0e, 0x71, 0x75, 0x6f, 0x74, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, - 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x46, - 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x54, - 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x5f, 0x71, - 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x51, 0x75, 0x61, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xa0, 0x01, 0x0a, - 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 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, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, - 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, - 0x2c, 0x0a, 0x0d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x22, 0x55, 0x0a, - 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x43, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, - 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x22, 0x35, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x15, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, - 0x31, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x22, 0x66, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, - 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0xcc, 0x01, 0x0a, 0x14, 0x53, - 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, +var file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = []byte{ + 0x0a, 0x32, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x65, 0x73, 0x22, 0x58, 0x0a, 0x0f, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x22, 0xd1, 0x04, 0x0a, + 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 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, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x61, 0x73, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x04, 0x62, 0x75, 0x79, 0x73, - 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, - 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 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, 0x5c, 0x0a, 0x0a, 0x50, 0x72, 0x69, - 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x34, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0x6f, 0x0a, - 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x71, 0x75, 0x6f, 0x74, + 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x50, 0x0a, 0x10, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0e, 0x71, 0x75, 0x6f, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, + 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x61, 0x6b, 0x65, 0x72, + 0x46, 0x65, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x66, 0x65, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x46, 0x65, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6d, 0x69, 0x6e, + 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x69, 0x6e, 0x5f, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x22, 0xa0, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 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, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, + 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, + 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x2c, 0x0a, 0x0d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x22, 0x55, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x22, 0x35, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, + 0xa1, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6d, 0x61, 0x72, + 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x70, - 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, - 0x56, 0x32, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x8a, - 0x01, 0x0a, 0x1a, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 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, 0x4f, 0x0a, 0x09, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 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, 0x31, 0x0a, 0x12, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, + 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, 0x22, 0x66, 0x0a, 0x13, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, + 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, + 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, + 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0xcc, + 0x01, 0x0a, 0x14, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x04, + 0x62, 0x75, 0x79, 0x73, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x73, 0x65, + 0x6c, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 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, 0x5c, 0x0a, + 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x34, 0x0a, 0x13, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x73, 0x22, 0x6f, 0x0a, 0x14, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, + 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0a, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, - 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0x39, 0x0a, 0x18, 0x53, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, + 0x6b, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x1a, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6f, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, + 0x32, 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, 0x4f, + 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x22, + 0x39, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, + 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x19, 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, 0x12, 0x4f, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1c, 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, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, - 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xed, 0x01, 0x0a, 0x1d, 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, 0x12, 0x6a, 0x0a, 0x17, 0x6f, 0x72, 0x64, 0x65, - 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, - 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x15, 0x6f, - 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 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, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x62, 0x75, 0x79, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x04, 0x62, 0x75, 0x79, 0x73, 0x12, 0x43, 0x0a, 0x05, - 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x65, 0x6c, 0x6c, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x7f, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 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, 0x83, 0x03, 0x0a, 0x0d, 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, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, - 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x0e, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, - 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, - 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 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, 0xb8, 0x03, 0x0a, - 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 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, 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, 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, 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, - 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x71, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x75, 0x6e, - 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x65, 0x65, 0x52, - 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, - 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, - 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, - 0x22, 0x89, 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, 0x29, 0x0a, 0x10, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x18, 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9e, 0x01, 0x0a, - 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x09, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x12, 0x1b, + 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1c, 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, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x73, 0x22, 0xed, 0x01, 0x0a, 0x1d, 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, 0x12, 0x6a, 0x0a, 0x17, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, + 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x15, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 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, 0xbf, 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, 0x22, - 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 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, - 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 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, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, 0x05, 0x70, 0x72, 0x69, - 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, - 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x63, 0x69, 0x64, 0x22, 0xc5, 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, + 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, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 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, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x41, 0x0a, + 0x04, 0x62, 0x75, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x04, 0x62, 0x75, 0x79, 0x73, + 0x12, 0x43, 0x0a, 0x05, 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x22, 0x7f, 0x0a, 0x10, 0x50, 0x72, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 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, 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, 0x83, 0x03, 0x0a, 0x0d, 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, 0x29, 0x0a, 0x10, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x09, 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, 0x0a, 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, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x0e, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, + 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 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, 0xb8, 0x03, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, + 0x64, 0x65, 0x72, 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, 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, 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, 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, 0x22, 0x99, 0x01, 0x0a, - 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, 0xc1, 0x03, 0x0a, 0x0f, 0x54, 0x72, 0x61, + 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x75, 0x6e, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, + 0x74, 0x79, 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, 0x23, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x5f, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x66, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 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, 0x0b, 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, + 0x0c, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x06, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, + 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, + 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x65, 0x78, 0x74, 0x22, 0x89, 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, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x18, 0x09, 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, 0x0a, 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, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x64, 0x65, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, + 0x22, 0x9e, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, 0xbf, 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, 0x22, 0x8d, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, + 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0xb2, 0x03, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x74, 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, 0x27, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x64, 0x65, 0x5f, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x0a, + 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x66, 0x65, 0x65, 0x18, 0x07, 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, 0x08, 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, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0xc5, 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, + 0x22, 0x99, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, 0xc1, 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, + 0x22, 0x8f, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, + 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0xc7, 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, @@ -4729,399 +4779,361 @@ var file_injective_spot_exchange_rpc_proto_rawDesc = []byte{ 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, 0x22, 0x8f, 0x01, 0x0a, - 0x10, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, - 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x6f, 0x74, 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, 0xc7, - 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, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x9b, 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, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, - 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, 0x22, 0x9b, 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, 0x3c, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, + 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, 0xa0, 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, 0x43, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 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, 0x5e, 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, 0x3e, 0x0a, 0x06, 0x74, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, 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, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, 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, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 0x22, 0x9b, 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, 0x45, 0x0a, + 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0xf3, 0x03, 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 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, 0x1c, + 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 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, 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, 0xa0, 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, 0x43, 0x0a, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 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, 0xa7, 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, 0x43, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 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, 0xc7, 0x01, 0x0a, 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, + 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, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x11, 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, 0x06, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x08, 0x74, 0x6f, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x41, + 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 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, 0x5e, 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, 0x3e, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, + 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, + 0x70, 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, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, + 0x42, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x69, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x52, 0x06, - 0x74, 0x72, 0x61, 0x64, 0x65, 0x73, 0x22, 0xb6, 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, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 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, 0x0a, 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, 0x0b, 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, 0x0c, - 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, 0x0d, 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, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, - 0x9b, 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, 0x45, 0x0a, 0x06, 0x6f, 0x72, 0x64, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x70, 0x6f, 0x74, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x73, - 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 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, 0xf3, 0x03, - 0x0a, 0x10, 0x53, 0x70, 0x6f, 0x74, 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, 0x1c, 0x0a, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, - 0x68, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x10, 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, 0xa7, 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, 0x43, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x70, 0x6f, 0x74, 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, 0xc7, 0x01, 0x0a, - 0x18, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 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, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 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, 0x66, 0x72, 0x6f, 0x6d, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 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, 0x06, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x74, 0x6f, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, 0x01, 0x0a, 0x19, 0x41, 0x74, 0x6f, 0x6d, 0x69, - 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, + 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, + 0x18, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, + 0x15, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x41, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x34, 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, 0x32, 0x9e, 0x11, 0x0a, 0x18, + 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 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, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 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, 0x61, + 0x0a, 0x06, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, - 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe0, - 0x03, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 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, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x3e, 0x0a, 0x09, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x08, 0x64, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x35, 0x0a, 0x04, 0x66, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, - 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x52, 0x04, 0x66, 0x65, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x15, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x42, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, - 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x65, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x12, - 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x23, 0x0a, 0x0d, - 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x75, 0x6e, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x34, 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, 0x32, 0x9e, 0x11, 0x0a, 0x18, 0x49, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x6f, 0x74, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x50, 0x43, 0x12, 0x64, 0x0a, 0x07, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, - 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 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, 0x2c, 0x2e, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x61, 0x0a, 0x06, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 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, 0x78, 0x0a, - 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x31, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, - 0x6f, 0x74, 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, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x73, 0x0a, 0x0c, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x31, 0x2e, 0x69, 0x6e, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x73, 0x70, 0x6f, 0x74, 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, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x70, 0x0a, 0x0b, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x2f, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x84, - 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, - 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x36, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x90, 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, - 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, + 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x56, 0x32, 0x12, 0x30, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, + 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 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, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x62, 0x6f, 0x6f, 0x6b, 0x56, 0x32, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, + 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x90, 0x01, 0x0a, 0x15, 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, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x61, 0x0a, 0x06, 0x4f, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, - 0x70, 0x6f, 0x74, 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, 0x2b, + 0x61, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x73, 0x70, 0x6f, 0x74, 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, 0x3a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x75, 0x0a, 0x0c, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, + 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, 0x61, 0x0a, 0x06, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x70, 0x6f, 0x74, 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, + 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 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, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, + 0x6f, 0x74, 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, 0x61, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x12, 0x2a, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, + 0x74, 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, 0x2b, 0x2e, 0x69, + 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x31, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x61, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x69, + 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x12, 0x67, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x2b, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x67, 0x0a, 0x08, - 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x2c, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x7b, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x33, 0x2e, 0x69, 0x6e, + 0x73, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x69, 0x6e, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x7b, 0x0a, 0x0e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x56, 0x32, 0x12, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, - 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, + 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, 0x73, 0x70, 0x6f, 0x74, + 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, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, + 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, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x6e, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x64, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x39, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x76, 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x12, 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x76, - 0x0a, 0x0d, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x31, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, - 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, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, + 0x63, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x8a, 0x01, 0x0a, 0x13, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x73, 0x70, 0x6f, 0x74, 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, 0x8a, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 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, 0x73, 0x70, 0x6f, 0x74, 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, 0x38, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x82, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, - 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x2e, 0x69, 0x6e, 0x6a, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, - 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, - 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, 0x1e, 0x2f, 0x69, 0x6e, 0x6a, - 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 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, 0x38, 0x2e, 0x69, 0x6e, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 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, 0x82, 0x01, 0x0a, 0x11, 0x41, 0x74, 0x6f, 0x6d, + 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x35, 0x2e, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, + 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, + 0x70, 0x63, 0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x53, 0x77, 0x61, 0x70, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x20, 0x5a, 0x1e, + 0x2f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x74, 0x5f, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_injective_spot_exchange_rpc_proto_rawDescOnce sync.Once - file_injective_spot_exchange_rpc_proto_rawDescData = file_injective_spot_exchange_rpc_proto_rawDesc + file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescData = file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc ) -func file_injective_spot_exchange_rpc_proto_rawDescGZIP() []byte { - file_injective_spot_exchange_rpc_proto_rawDescOnce.Do(func() { - file_injective_spot_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_spot_exchange_rpc_proto_rawDescData) +func file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescData) }) - return file_injective_spot_exchange_rpc_proto_rawDescData + return file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDescData } -var file_injective_spot_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 49) -var file_injective_spot_exchange_rpc_proto_goTypes = []interface{}{ +var file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 49) +var file_goadesign_goagen_injective_spot_exchange_rpc_proto_goTypes = []interface{}{ (*MarketsRequest)(nil), // 0: injective_spot_exchange_rpc.MarketsRequest (*MarketsResponse)(nil), // 1: injective_spot_exchange_rpc.MarketsResponse (*SpotMarketInfo)(nil), // 2: injective_spot_exchange_rpc.SpotMarketInfo @@ -5172,7 +5184,7 @@ var file_injective_spot_exchange_rpc_proto_goTypes = []interface{}{ (*AtomicSwap)(nil), // 47: injective_spot_exchange_rpc.AtomicSwap (*Coin)(nil), // 48: injective_spot_exchange_rpc.Coin } -var file_injective_spot_exchange_rpc_proto_depIdxs = []int32{ +var file_goadesign_goagen_injective_spot_exchange_rpc_proto_depIdxs = []int32{ 2, // 0: injective_spot_exchange_rpc.MarketsResponse.markets:type_name -> injective_spot_exchange_rpc.SpotMarketInfo 3, // 1: injective_spot_exchange_rpc.SpotMarketInfo.base_token_meta:type_name -> injective_spot_exchange_rpc.TokenMeta 3, // 2: injective_spot_exchange_rpc.SpotMarketInfo.quote_token_meta:type_name -> injective_spot_exchange_rpc.TokenMeta @@ -5251,13 +5263,13 @@ var file_injective_spot_exchange_rpc_proto_depIdxs = []int32{ 0, // [0:35] is the sub-list for field type_name } -func init() { file_injective_spot_exchange_rpc_proto_init() } -func file_injective_spot_exchange_rpc_proto_init() { - if File_injective_spot_exchange_rpc_proto != nil { +func init() { file_goadesign_goagen_injective_spot_exchange_rpc_proto_init() } +func file_goadesign_goagen_injective_spot_exchange_rpc_proto_init() { + if File_goadesign_goagen_injective_spot_exchange_rpc_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_injective_spot_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketsRequest); i { case 0: return &v.state @@ -5269,7 +5281,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketsResponse); i { case 0: return &v.state @@ -5281,7 +5293,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotMarketInfo); i { case 0: return &v.state @@ -5293,7 +5305,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TokenMeta); i { case 0: return &v.state @@ -5305,7 +5317,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketRequest); i { case 0: return &v.state @@ -5317,7 +5329,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketResponse); i { case 0: return &v.state @@ -5329,7 +5341,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamMarketsRequest); i { case 0: return &v.state @@ -5341,7 +5353,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamMarketsResponse); i { case 0: return &v.state @@ -5353,7 +5365,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookV2Request); i { case 0: return &v.state @@ -5365,7 +5377,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookV2Response); i { case 0: return &v.state @@ -5377,7 +5389,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotLimitOrderbookV2); i { case 0: return &v.state @@ -5389,7 +5401,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceLevel); i { case 0: return &v.state @@ -5401,7 +5413,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbooksV2Request); i { case 0: return &v.state @@ -5413,7 +5425,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbooksV2Response); i { case 0: return &v.state @@ -5425,7 +5437,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SingleSpotLimitOrderbookV2); i { case 0: return &v.state @@ -5437,7 +5449,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookV2Request); i { case 0: return &v.state @@ -5449,7 +5461,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookV2Response); i { case 0: return &v.state @@ -5461,7 +5473,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookUpdateRequest); i { case 0: return &v.state @@ -5473,7 +5485,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrderbookUpdateResponse); i { case 0: return &v.state @@ -5485,7 +5497,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrderbookLevelUpdates); i { case 0: return &v.state @@ -5497,7 +5509,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PriceLevelUpdate); i { case 0: return &v.state @@ -5509,7 +5521,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersRequest); i { case 0: return &v.state @@ -5521,7 +5533,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersResponse); i { case 0: return &v.state @@ -5533,7 +5545,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotLimitOrder); i { case 0: return &v.state @@ -5545,7 +5557,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Paging); i { case 0: return &v.state @@ -5557,7 +5569,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersRequest); i { case 0: return &v.state @@ -5569,7 +5581,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersResponse); i { case 0: return &v.state @@ -5581,7 +5593,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesRequest); i { case 0: return &v.state @@ -5593,7 +5605,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesResponse); i { case 0: return &v.state @@ -5605,7 +5617,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotTrade); i { case 0: return &v.state @@ -5617,7 +5629,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesRequest); i { case 0: return &v.state @@ -5629,7 +5641,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesResponse); i { case 0: return &v.state @@ -5641,7 +5653,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesV2Request); i { case 0: return &v.state @@ -5653,7 +5665,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TradesV2Response); i { case 0: return &v.state @@ -5665,7 +5677,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesV2Request); i { case 0: return &v.state @@ -5677,7 +5689,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamTradesV2Response); i { case 0: return &v.state @@ -5689,7 +5701,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountOrdersListRequest); i { case 0: return &v.state @@ -5701,7 +5713,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountOrdersListResponse); i { case 0: return &v.state @@ -5713,7 +5725,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountTradesListRequest); i { case 0: return &v.state @@ -5725,7 +5737,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubaccountTradesListResponse); i { case 0: return &v.state @@ -5737,7 +5749,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersHistoryRequest); i { case 0: return &v.state @@ -5749,7 +5761,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OrdersHistoryResponse); i { case 0: return &v.state @@ -5761,7 +5773,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpotOrderHistory); i { case 0: return &v.state @@ -5773,7 +5785,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersHistoryRequest); i { case 0: return &v.state @@ -5785,7 +5797,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOrdersHistoryResponse); i { case 0: return &v.state @@ -5797,7 +5809,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AtomicSwapHistoryRequest); i { case 0: return &v.state @@ -5809,7 +5821,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AtomicSwapHistoryResponse); i { case 0: return &v.state @@ -5821,7 +5833,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AtomicSwap); i { case 0: return &v.state @@ -5833,7 +5845,7 @@ func file_injective_spot_exchange_rpc_proto_init() { return nil } } - file_injective_spot_exchange_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Coin); i { case 0: return &v.state @@ -5850,18 +5862,18 @@ func file_injective_spot_exchange_rpc_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_spot_exchange_rpc_proto_rawDesc, + RawDescriptor: file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc, NumEnums: 0, NumMessages: 49, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_injective_spot_exchange_rpc_proto_goTypes, - DependencyIndexes: file_injective_spot_exchange_rpc_proto_depIdxs, - MessageInfos: file_injective_spot_exchange_rpc_proto_msgTypes, + GoTypes: file_goadesign_goagen_injective_spot_exchange_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_spot_exchange_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_spot_exchange_rpc_proto_msgTypes, }.Build() - File_injective_spot_exchange_rpc_proto = out.File - file_injective_spot_exchange_rpc_proto_rawDesc = nil - file_injective_spot_exchange_rpc_proto_goTypes = nil - file_injective_spot_exchange_rpc_proto_depIdxs = nil + File_goadesign_goagen_injective_spot_exchange_rpc_proto = out.File + file_goadesign_goagen_injective_spot_exchange_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_spot_exchange_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_spot_exchange_rpc_proto_depIdxs = nil } diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc_grpc.pb.go b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go similarity index 99% rename from exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc_grpc.pb.go rename to exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go index cb95d816..e276906a 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc_grpc.pb.go +++ b/exchange/spot_exchange_rpc/pb/goadesign_goagen_injective_spot_exchange_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: goadesign_goagen_injective_spot_exchange_rpc.proto package injective_spot_exchange_rpcpb @@ -936,5 +940,5 @@ var InjectiveSpotExchangeRPC_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "injective_spot_exchange_rpc.proto", + Metadata: "goadesign_goagen_injective_spot_exchange_rpc.proto", } diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go index 1324f523..4abea1de 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go +++ b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.pb.gw.go @@ -592,20 +592,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Markets_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Markets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -615,20 +617,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Market_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_Market_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Market_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -645,20 +649,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbookV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrderbookV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -668,20 +674,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbooksV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -705,20 +713,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Orders_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Orders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -735,20 +745,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_Trades_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Trades_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -765,20 +777,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_TradesV2_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_TradesV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -795,20 +809,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -818,20 +834,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -841,20 +859,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_OrdersHistory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrdersHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -871,20 +891,22 @@ func RegisterInjectiveSpotExchangeRPCHandlerServer(ctx context.Context, mux *run var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -933,19 +955,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Markets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_Markets_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Markets_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Markets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -953,19 +977,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Market")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_Market_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_Market_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Market_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Market_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -973,19 +999,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamMarkets")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamMarkets_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamMarkets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamMarkets_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamMarkets_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -993,19 +1021,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_OrderbookV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrderbookV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1013,19 +1043,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrderbooksV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_OrderbooksV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrderbooksV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1033,19 +1065,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamOrderbookV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1053,19 +1087,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrderbookUpdate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamOrderbookUpdate_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1073,19 +1109,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Orders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_Orders_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Orders_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Orders_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1093,19 +1131,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrders")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrders_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrders_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamOrders_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamOrders_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1113,19 +1153,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/Trades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_Trades_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_Trades_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_Trades_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1133,19 +1175,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTrades")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamTrades_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamTrades_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamTrades_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamTrades_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1153,19 +1197,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/TradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_TradesV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_TradesV2_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_TradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1173,19 +1219,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamTradesV2")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamTradesV2_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamTradesV2_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamTradesV2_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamTradesV2_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1193,19 +1241,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountOrdersList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_SubaccountOrdersList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1213,19 +1263,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/SubaccountTradesList")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_SubaccountTradesList_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1233,19 +1285,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/OrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_OrdersHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_OrdersHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_OrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1253,19 +1307,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/StreamOrdersHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_StreamOrdersHistory_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -1273,19 +1329,21 @@ func RegisterInjectiveSpotExchangeRPCHandlerClient(ctx context.Context, mux *run ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory", runtime.WithHTTPPathPattern("/injective_spot_exchange_rpc.InjectiveSpotExchangeRPC/AtomicSwapHistory")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveSpotExchangeRPC_AtomicSwapHistory_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto index ea74b297..aa7b07f4 100644 --- a/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto +++ b/exchange/spot_exchange_rpc/pb/injective_spot_exchange_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveSpotExchangeRPC protocol buffer definition // @@ -92,6 +92,8 @@ message SpotMarketInfo { string min_price_tick_size = 11; // Defines the minimum required tick size for the order's quantity string min_quantity_tick_size = 12; + // Minimum notional value for the market + string min_notional = 13; } message TokenMeta { diff --git a/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go new file mode 100644 index 00000000..fa06c65a --- /dev/null +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc.pb.go @@ -0,0 +1,974 @@ +// Code generated with goa v3.7.0, DO NOT EDIT. +// +// InjectiveTradingRPC protocol buffer definition +// +// Command: +// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.30.0 +// protoc v4.25.3 +// source: goadesign_goagen_injective_trading_rpc.proto + +package injective_trading_rpcpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ListTradingStrategiesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + // MarketId of the trading strategy + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // subaccount ID to filter by + SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Account address + AccountAddress string `protobuf:"bytes,4,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Indicates whether the trading strategy is pending execution + PendingExecution bool `protobuf:"varint,5,opt,name=pending_execution,json=pendingExecution,proto3" json:"pending_execution,omitempty"` + // The starting timestamp in UNIX milliseconds for the creation time of the + // trading strategy + StartTime int64 `protobuf:"zigzag64,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The ending timestamp in UNIX milliseconds for the creation time of the + // trading strategy + EndTime int64 `protobuf:"zigzag64,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + Limit int32 `protobuf:"zigzag32,8,opt,name=limit,proto3" json:"limit,omitempty"` + Skip uint64 `protobuf:"varint,9,opt,name=skip,proto3" json:"skip,omitempty"` + // Filter by strategy type + StrategyType []string `protobuf:"bytes,10,rep,name=strategy_type,json=strategyType,proto3" json:"strategy_type,omitempty"` + // Filter by market type + MarketType string `protobuf:"bytes,11,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` +} + +func (x *ListTradingStrategiesRequest) Reset() { + *x = ListTradingStrategiesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTradingStrategiesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTradingStrategiesRequest) ProtoMessage() {} + +func (x *ListTradingStrategiesRequest) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[0] + 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 ListTradingStrategiesRequest.ProtoReflect.Descriptor instead. +func (*ListTradingStrategiesRequest) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{0} +} + +func (x *ListTradingStrategiesRequest) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *ListTradingStrategiesRequest) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *ListTradingStrategiesRequest) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *ListTradingStrategiesRequest) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *ListTradingStrategiesRequest) GetPendingExecution() bool { + if x != nil { + return x.PendingExecution + } + return false +} + +func (x *ListTradingStrategiesRequest) GetStartTime() int64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetEndTime() int64 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetLimit() int32 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetSkip() uint64 { + if x != nil { + return x.Skip + } + return 0 +} + +func (x *ListTradingStrategiesRequest) GetStrategyType() []string { + if x != nil { + return x.StrategyType + } + return nil +} + +func (x *ListTradingStrategiesRequest) GetMarketType() string { + if x != nil { + return x.MarketType + } + return "" +} + +type ListTradingStrategiesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The trading strategies + Strategies []*TradingStrategy `protobuf:"bytes,1,rep,name=strategies,proto3" json:"strategies,omitempty"` + Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` +} + +func (x *ListTradingStrategiesResponse) Reset() { + *x = ListTradingStrategiesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListTradingStrategiesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTradingStrategiesResponse) ProtoMessage() {} + +func (x *ListTradingStrategiesResponse) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[1] + 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 ListTradingStrategiesResponse.ProtoReflect.Descriptor instead. +func (*ListTradingStrategiesResponse) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *ListTradingStrategiesResponse) GetStrategies() []*TradingStrategy { + if x != nil { + return x.Strategies + } + return nil +} + +func (x *ListTradingStrategiesResponse) GetPaging() *Paging { + if x != nil { + return x.Paging + } + return nil +} + +type TradingStrategy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` + // MarketId of the trading strategy + MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` + // subaccount ID of the trading strategy + SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` + // Account address + AccountAddress string `protobuf:"bytes,4,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` + // Contract address + ContractAddress string `protobuf:"bytes,5,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // Execution price of the trading strategy + ExecutionPrice string `protobuf:"bytes,6,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` + // Base quantity of the trading strategy + BaseQuantity string `protobuf:"bytes,7,opt,name=base_quantity,json=baseQuantity,proto3" json:"base_quantity,omitempty"` + // Quote quantity of the trading strategy + QuoteQuantity string `protobuf:"bytes,20,opt,name=quote_quantity,json=quoteQuantity,proto3" json:"quote_quantity,omitempty"` + // Lower bound of the trading strategy + LowerBound string `protobuf:"bytes,8,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` + // Upper bound of the trading strategy + UpperBound string `protobuf:"bytes,9,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` + // Stop loss limit of the trading strategy + StopLoss string `protobuf:"bytes,10,opt,name=stop_loss,json=stopLoss,proto3" json:"stop_loss,omitempty"` + // Take profit limit of the trading strategy + TakeProfit string `protobuf:"bytes,11,opt,name=take_profit,json=takeProfit,proto3" json:"take_profit,omitempty"` + // Swap fee of the trading strategy + SwapFee string `protobuf:"bytes,12,opt,name=swap_fee,json=swapFee,proto3" json:"swap_fee,omitempty"` + // Base deposit at the time of closing the trading strategy + BaseDeposit string `protobuf:"bytes,17,opt,name=base_deposit,json=baseDeposit,proto3" json:"base_deposit,omitempty"` + // Quote deposit at the time of closing the trading strategy + QuoteDeposit string `protobuf:"bytes,18,opt,name=quote_deposit,json=quoteDeposit,proto3" json:"quote_deposit,omitempty"` + // Market mid price at the time of closing the trading strategy + MarketMidPrice string `protobuf:"bytes,19,opt,name=market_mid_price,json=marketMidPrice,proto3" json:"market_mid_price,omitempty"` + // Subscription quote quantity of the trading strategy + SubscriptionQuoteQuantity string `protobuf:"bytes,21,opt,name=subscription_quote_quantity,json=subscriptionQuoteQuantity,proto3" json:"subscription_quote_quantity,omitempty"` + // Subscription base quantity of the trading strategy + SubscriptionBaseQuantity string `protobuf:"bytes,22,opt,name=subscription_base_quantity,json=subscriptionBaseQuantity,proto3" json:"subscription_base_quantity,omitempty"` + // Number of grid levels of the trading strategy + NumberOfGridLevels string `protobuf:"bytes,23,opt,name=number_of_grid_levels,json=numberOfGridLevels,proto3" json:"number_of_grid_levels,omitempty"` + // Indicates whether the trading strategy should exit with quote only + ShouldExitWithQuoteOnly bool `protobuf:"varint,24,opt,name=should_exit_with_quote_only,json=shouldExitWithQuoteOnly,proto3" json:"should_exit_with_quote_only,omitempty"` + // Indicates the reason for stopping the trading strategy + StopReason string `protobuf:"bytes,25,opt,name=stop_reason,json=stopReason,proto3" json:"stop_reason,omitempty"` + // Indicates whether the trading strategy is pending execution + PendingExecution bool `protobuf:"varint,26,opt,name=pending_execution,json=pendingExecution,proto3" json:"pending_execution,omitempty"` + // Block height when the strategy was created. + CreatedHeight int64 `protobuf:"zigzag64,13,opt,name=created_height,json=createdHeight,proto3" json:"created_height,omitempty"` + // Block height when the strategy was removed. + RemovedHeight int64 `protobuf:"zigzag64,14,opt,name=removed_height,json=removedHeight,proto3" json:"removed_height,omitempty"` + // UpdatedAt timestamp in UNIX millis. + CreatedAt int64 `protobuf:"zigzag64,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // UpdatedAt timestamp in UNIX millis. + UpdatedAt int64 `protobuf:"zigzag64,16,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + // Indicate how bot will convert funds (into base or quote or keep as is) after + // strategy ended + ExitType string `protobuf:"bytes,27,opt,name=exit_type,json=exitType,proto3" json:"exit_type,omitempty"` + // Exit config for stop loss + StopLossConfig *ExitConfig `protobuf:"bytes,28,opt,name=stop_loss_config,json=stopLossConfig,proto3" json:"stop_loss_config,omitempty"` + // Exit config for take profit + TakeProfitConfig *ExitConfig `protobuf:"bytes,29,opt,name=take_profit_config,json=takeProfitConfig,proto3" json:"take_profit_config,omitempty"` + // Strategy type: arithmetic, geometric... + StrategyType string `protobuf:"bytes,30,opt,name=strategy_type,json=strategyType,proto3" json:"strategy_type,omitempty"` + // Version of the contract + ContractVersion string `protobuf:"bytes,31,opt,name=contract_version,json=contractVersion,proto3" json:"contract_version,omitempty"` + // Name of the contract + ContractName string `protobuf:"bytes,32,opt,name=contract_name,json=contractName,proto3" json:"contract_name,omitempty"` + // Type of the market + MarketType string `protobuf:"bytes,33,opt,name=market_type,json=marketType,proto3" json:"market_type,omitempty"` +} + +func (x *TradingStrategy) Reset() { + *x = TradingStrategy{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TradingStrategy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TradingStrategy) ProtoMessage() {} + +func (x *TradingStrategy) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[2] + 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 TradingStrategy.ProtoReflect.Descriptor instead. +func (*TradingStrategy) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *TradingStrategy) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *TradingStrategy) GetMarketId() string { + if x != nil { + return x.MarketId + } + return "" +} + +func (x *TradingStrategy) GetSubaccountId() string { + if x != nil { + return x.SubaccountId + } + return "" +} + +func (x *TradingStrategy) GetAccountAddress() string { + if x != nil { + return x.AccountAddress + } + return "" +} + +func (x *TradingStrategy) GetContractAddress() string { + if x != nil { + return x.ContractAddress + } + return "" +} + +func (x *TradingStrategy) GetExecutionPrice() string { + if x != nil { + return x.ExecutionPrice + } + return "" +} + +func (x *TradingStrategy) GetBaseQuantity() string { + if x != nil { + return x.BaseQuantity + } + return "" +} + +func (x *TradingStrategy) GetQuoteQuantity() string { + if x != nil { + return x.QuoteQuantity + } + return "" +} + +func (x *TradingStrategy) GetLowerBound() string { + if x != nil { + return x.LowerBound + } + return "" +} + +func (x *TradingStrategy) GetUpperBound() string { + if x != nil { + return x.UpperBound + } + return "" +} + +func (x *TradingStrategy) GetStopLoss() string { + if x != nil { + return x.StopLoss + } + return "" +} + +func (x *TradingStrategy) GetTakeProfit() string { + if x != nil { + return x.TakeProfit + } + return "" +} + +func (x *TradingStrategy) GetSwapFee() string { + if x != nil { + return x.SwapFee + } + return "" +} + +func (x *TradingStrategy) GetBaseDeposit() string { + if x != nil { + return x.BaseDeposit + } + return "" +} + +func (x *TradingStrategy) GetQuoteDeposit() string { + if x != nil { + return x.QuoteDeposit + } + return "" +} + +func (x *TradingStrategy) GetMarketMidPrice() string { + if x != nil { + return x.MarketMidPrice + } + return "" +} + +func (x *TradingStrategy) GetSubscriptionQuoteQuantity() string { + if x != nil { + return x.SubscriptionQuoteQuantity + } + return "" +} + +func (x *TradingStrategy) GetSubscriptionBaseQuantity() string { + if x != nil { + return x.SubscriptionBaseQuantity + } + return "" +} + +func (x *TradingStrategy) GetNumberOfGridLevels() string { + if x != nil { + return x.NumberOfGridLevels + } + return "" +} + +func (x *TradingStrategy) GetShouldExitWithQuoteOnly() bool { + if x != nil { + return x.ShouldExitWithQuoteOnly + } + return false +} + +func (x *TradingStrategy) GetStopReason() string { + if x != nil { + return x.StopReason + } + return "" +} + +func (x *TradingStrategy) GetPendingExecution() bool { + if x != nil { + return x.PendingExecution + } + return false +} + +func (x *TradingStrategy) GetCreatedHeight() int64 { + if x != nil { + return x.CreatedHeight + } + return 0 +} + +func (x *TradingStrategy) GetRemovedHeight() int64 { + if x != nil { + return x.RemovedHeight + } + return 0 +} + +func (x *TradingStrategy) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *TradingStrategy) GetUpdatedAt() int64 { + if x != nil { + return x.UpdatedAt + } + return 0 +} + +func (x *TradingStrategy) GetExitType() string { + if x != nil { + return x.ExitType + } + return "" +} + +func (x *TradingStrategy) GetStopLossConfig() *ExitConfig { + if x != nil { + return x.StopLossConfig + } + return nil +} + +func (x *TradingStrategy) GetTakeProfitConfig() *ExitConfig { + if x != nil { + return x.TakeProfitConfig + } + return nil +} + +func (x *TradingStrategy) GetStrategyType() string { + if x != nil { + return x.StrategyType + } + return "" +} + +func (x *TradingStrategy) GetContractVersion() string { + if x != nil { + return x.ContractVersion + } + return "" +} + +func (x *TradingStrategy) GetContractName() string { + if x != nil { + return x.ContractName + } + return "" +} + +func (x *TradingStrategy) GetMarketType() string { + if x != nil { + return x.MarketType + } + return "" +} + +type ExitConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // strategy exit type (stopLoss/takeProfit) + ExitType string `protobuf:"bytes,1,opt,name=exit_type,json=exitType,proto3" json:"exit_type,omitempty"` + // strategy stopLoss/takeProfit price + ExitPrice string `protobuf:"bytes,2,opt,name=exit_price,json=exitPrice,proto3" json:"exit_price,omitempty"` +} + +func (x *ExitConfig) Reset() { + *x = ExitConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExitConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExitConfig) ProtoMessage() {} + +func (x *ExitConfig) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[3] + 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 ExitConfig.ProtoReflect.Descriptor instead. +func (*ExitConfig) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *ExitConfig) GetExitType() string { + if x != nil { + return x.ExitType + } + return "" +} + +func (x *ExitConfig) GetExitPrice() string { + if x != nil { + return x.ExitPrice + } + return "" +} + +// Paging defines the structure for required params for handling pagination +type Paging struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // total number of txs saved in database + Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` + // can be either block height or index num + From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` + // can be either block height or index num + To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` + // count entries by subaccount, serving some places on helix + CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` + // array of tokens to navigate to the next pages + Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` +} + +func (x *Paging) Reset() { + *x = Paging{} + if protoimpl.UnsafeEnabled { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Paging) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Paging) ProtoMessage() {} + +func (x *Paging) ProtoReflect() protoreflect.Message { + mi := &file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[4] + 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 Paging.ProtoReflect.Descriptor instead. +func (*Paging) Descriptor() ([]byte, []int) { + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *Paging) GetTotal() int64 { + if x != nil { + return x.Total + } + return 0 +} + +func (x *Paging) GetFrom() int32 { + if x != nil { + return x.From + } + return 0 +} + +func (x *Paging) GetTo() int32 { + if x != nil { + return x.To + } + return 0 +} + +func (x *Paging) GetCountBySubaccount() int64 { + if x != nil { + return x.CountBySubaccount + } + return 0 +} + +func (x *Paging) GetNext() []string { + if x != nil { + return x.Next + } + return nil +} + +var File_goadesign_goagen_injective_trading_rpc_proto protoreflect.FileDescriptor + +var file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x61, 0x64, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x67, 0x6f, 0x61, 0x67, + 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x72, 0x70, 0x63, 0x22, 0xf6, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 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, 0x27, + 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x14, + 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9e, + 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, + 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, + 0xd9, 0x0a, 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 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, 0x27, 0x0a, 0x0f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, + 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, + 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, + 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, + 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, + 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, + 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x4d, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, + 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, + 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, + 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x47, 0x72, 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, + 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, + 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, + 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 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, 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, + 0x69, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x10, 0x73, 0x74, 0x6f, 0x70, 0x5f, + 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x12, 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x0a, 0x45, + 0x78, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, + 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x70, + 0x72, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x69, 0x74, + 0x50, 0x72, 0x69, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, + 0x53, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, + 0x78, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x32, 0x9a, + 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x69, 0x6e, 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, + 0x12, 0x33, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, + 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_goadesign_goagen_injective_trading_rpc_proto_rawDescOnce sync.Once + file_goadesign_goagen_injective_trading_rpc_proto_rawDescData = file_goadesign_goagen_injective_trading_rpc_proto_rawDesc +) + +func file_goadesign_goagen_injective_trading_rpc_proto_rawDescGZIP() []byte { + file_goadesign_goagen_injective_trading_rpc_proto_rawDescOnce.Do(func() { + file_goadesign_goagen_injective_trading_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_goadesign_goagen_injective_trading_rpc_proto_rawDescData) + }) + return file_goadesign_goagen_injective_trading_rpc_proto_rawDescData +} + +var file_goadesign_goagen_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_goadesign_goagen_injective_trading_rpc_proto_goTypes = []interface{}{ + (*ListTradingStrategiesRequest)(nil), // 0: injective_trading_rpc.ListTradingStrategiesRequest + (*ListTradingStrategiesResponse)(nil), // 1: injective_trading_rpc.ListTradingStrategiesResponse + (*TradingStrategy)(nil), // 2: injective_trading_rpc.TradingStrategy + (*ExitConfig)(nil), // 3: injective_trading_rpc.ExitConfig + (*Paging)(nil), // 4: injective_trading_rpc.Paging +} +var file_goadesign_goagen_injective_trading_rpc_proto_depIdxs = []int32{ + 2, // 0: injective_trading_rpc.ListTradingStrategiesResponse.strategies:type_name -> injective_trading_rpc.TradingStrategy + 4, // 1: injective_trading_rpc.ListTradingStrategiesResponse.paging:type_name -> injective_trading_rpc.Paging + 3, // 2: injective_trading_rpc.TradingStrategy.stop_loss_config:type_name -> injective_trading_rpc.ExitConfig + 3, // 3: injective_trading_rpc.TradingStrategy.take_profit_config:type_name -> injective_trading_rpc.ExitConfig + 0, // 4: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest + 1, // 5: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse + 5, // [5:6] is the sub-list for method output_type + 4, // [4:5] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_goadesign_goagen_injective_trading_rpc_proto_init() } +func file_goadesign_goagen_injective_trading_rpc_proto_init() { + if File_goadesign_goagen_injective_trading_rpc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTradingStrategiesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListTradingStrategiesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TradingStrategy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExitConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_goadesign_goagen_injective_trading_rpc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Paging); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_goadesign_goagen_injective_trading_rpc_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_goadesign_goagen_injective_trading_rpc_proto_goTypes, + DependencyIndexes: file_goadesign_goagen_injective_trading_rpc_proto_depIdxs, + MessageInfos: file_goadesign_goagen_injective_trading_rpc_proto_msgTypes, + }.Build() + File_goadesign_goagen_injective_trading_rpc_proto = out.File + file_goadesign_goagen_injective_trading_rpc_proto_rawDesc = nil + file_goadesign_goagen_injective_trading_rpc_proto_goTypes = nil + file_goadesign_goagen_injective_trading_rpc_proto_depIdxs = nil +} diff --git a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb.go b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go similarity index 95% rename from exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb.go rename to exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go index ec0497c6..ec918fd5 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb.go +++ b/exchange/trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v4.25.3 +// source: goadesign_goagen_injective_trading_rpc.proto package injective_trading_rpcpb @@ -99,5 +103,5 @@ var InjectiveTradingRPC_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "injective_trading_rpc.proto", + Metadata: "goadesign_goagen_injective_trading_rpc.proto", } diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.pb.go b/exchange/trading_rpc/pb/injective_trading_rpc.pb.go deleted file mode 100644 index bc203873..00000000 --- a/exchange/trading_rpc/pb/injective_trading_rpc.pb.go +++ /dev/null @@ -1,789 +0,0 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. -// -// InjectiveTradingRPC protocol buffer definition -// -// Command: -// $ goa gen github.com/InjectiveLabs/injective-indexer/api/design -o ../ - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.30.0 -// protoc v3.19.4 -// source: injective_trading_rpc.proto - -package injective_trading_rpcpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ListTradingStrategiesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` - // MarketId of the trading strategy - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // subaccount ID to filter by - SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Account address - AccountAddress string `protobuf:"bytes,4,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Indicates whether the trading strategy is pending execution - PendingExecution bool `protobuf:"varint,5,opt,name=pending_execution,json=pendingExecution,proto3" json:"pending_execution,omitempty"` - // The starting timestamp in UNIX milliseconds for the creation time of the - // trading strategy - StartTime int64 `protobuf:"zigzag64,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - // The ending timestamp in UNIX milliseconds for the creation time of the - // trading strategy - EndTime int64 `protobuf:"zigzag64,7,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` - Limit int32 `protobuf:"zigzag32,8,opt,name=limit,proto3" json:"limit,omitempty"` - Skip uint64 `protobuf:"varint,9,opt,name=skip,proto3" json:"skip,omitempty"` -} - -func (x *ListTradingStrategiesRequest) Reset() { - *x = ListTradingStrategiesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_trading_rpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListTradingStrategiesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListTradingStrategiesRequest) ProtoMessage() {} - -func (x *ListTradingStrategiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_injective_trading_rpc_proto_msgTypes[0] - 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 ListTradingStrategiesRequest.ProtoReflect.Descriptor instead. -func (*ListTradingStrategiesRequest) Descriptor() ([]byte, []int) { - return file_injective_trading_rpc_proto_rawDescGZIP(), []int{0} -} - -func (x *ListTradingStrategiesRequest) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *ListTradingStrategiesRequest) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *ListTradingStrategiesRequest) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *ListTradingStrategiesRequest) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *ListTradingStrategiesRequest) GetPendingExecution() bool { - if x != nil { - return x.PendingExecution - } - return false -} - -func (x *ListTradingStrategiesRequest) GetStartTime() int64 { - if x != nil { - return x.StartTime - } - return 0 -} - -func (x *ListTradingStrategiesRequest) GetEndTime() int64 { - if x != nil { - return x.EndTime - } - return 0 -} - -func (x *ListTradingStrategiesRequest) GetLimit() int32 { - if x != nil { - return x.Limit - } - return 0 -} - -func (x *ListTradingStrategiesRequest) GetSkip() uint64 { - if x != nil { - return x.Skip - } - return 0 -} - -type ListTradingStrategiesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The trading strategies - Strategies []*TradingStrategy `protobuf:"bytes,1,rep,name=strategies,proto3" json:"strategies,omitempty"` - Paging *Paging `protobuf:"bytes,2,opt,name=paging,proto3" json:"paging,omitempty"` -} - -func (x *ListTradingStrategiesResponse) Reset() { - *x = ListTradingStrategiesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_trading_rpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListTradingStrategiesResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListTradingStrategiesResponse) ProtoMessage() {} - -func (x *ListTradingStrategiesResponse) ProtoReflect() protoreflect.Message { - mi := &file_injective_trading_rpc_proto_msgTypes[1] - 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 ListTradingStrategiesResponse.ProtoReflect.Descriptor instead. -func (*ListTradingStrategiesResponse) Descriptor() ([]byte, []int) { - return file_injective_trading_rpc_proto_rawDescGZIP(), []int{1} -} - -func (x *ListTradingStrategiesResponse) GetStrategies() []*TradingStrategy { - if x != nil { - return x.Strategies - } - return nil -} - -func (x *ListTradingStrategiesResponse) GetPaging() *Paging { - if x != nil { - return x.Paging - } - return nil -} - -type TradingStrategy struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - State string `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"` - // MarketId of the trading strategy - MarketId string `protobuf:"bytes,2,opt,name=market_id,json=marketId,proto3" json:"market_id,omitempty"` - // subaccount ID of the trading strategy - SubaccountId string `protobuf:"bytes,3,opt,name=subaccount_id,json=subaccountId,proto3" json:"subaccount_id,omitempty"` - // Account address - AccountAddress string `protobuf:"bytes,4,opt,name=account_address,json=accountAddress,proto3" json:"account_address,omitempty"` - // Contract address - ContractAddress string `protobuf:"bytes,5,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` - // Execution price of the trading strategy - ExecutionPrice string `protobuf:"bytes,6,opt,name=execution_price,json=executionPrice,proto3" json:"execution_price,omitempty"` - // Base quantity of the trading strategy - BaseQuantity string `protobuf:"bytes,7,opt,name=base_quantity,json=baseQuantity,proto3" json:"base_quantity,omitempty"` - // Quote quantity of the trading strategy - QuoteQuantity string `protobuf:"bytes,20,opt,name=quote_quantity,json=quoteQuantity,proto3" json:"quote_quantity,omitempty"` - // Lower bound of the trading strategy - LowerBound string `protobuf:"bytes,8,opt,name=lower_bound,json=lowerBound,proto3" json:"lower_bound,omitempty"` - // Upper bound of the trading strategy - UpperBound string `protobuf:"bytes,9,opt,name=upper_bound,json=upperBound,proto3" json:"upper_bound,omitempty"` - // Stop loss limit of the trading strategy - StopLoss string `protobuf:"bytes,10,opt,name=stop_loss,json=stopLoss,proto3" json:"stop_loss,omitempty"` - // Take profit limit of the trading strategy - TakeProfit string `protobuf:"bytes,11,opt,name=take_profit,json=takeProfit,proto3" json:"take_profit,omitempty"` - // Swap fee of the trading strategy - SwapFee string `protobuf:"bytes,12,opt,name=swap_fee,json=swapFee,proto3" json:"swap_fee,omitempty"` - // Base deposit at the time of closing the trading strategy - BaseDeposit string `protobuf:"bytes,17,opt,name=base_deposit,json=baseDeposit,proto3" json:"base_deposit,omitempty"` - // Quote deposit at the time of closing the trading strategy - QuoteDeposit string `protobuf:"bytes,18,opt,name=quote_deposit,json=quoteDeposit,proto3" json:"quote_deposit,omitempty"` - // Market mid price at the time of closing the trading strategy - MarketMidPrice string `protobuf:"bytes,19,opt,name=market_mid_price,json=marketMidPrice,proto3" json:"market_mid_price,omitempty"` - // Subscription quote quantity of the trading strategy - SubscriptionQuoteQuantity string `protobuf:"bytes,21,opt,name=subscription_quote_quantity,json=subscriptionQuoteQuantity,proto3" json:"subscription_quote_quantity,omitempty"` - // Subscription base quantity of the trading strategy - SubscriptionBaseQuantity string `protobuf:"bytes,22,opt,name=subscription_base_quantity,json=subscriptionBaseQuantity,proto3" json:"subscription_base_quantity,omitempty"` - // Number of grid levels of the trading strategy - NumberOfGridLevels string `protobuf:"bytes,23,opt,name=number_of_grid_levels,json=numberOfGridLevels,proto3" json:"number_of_grid_levels,omitempty"` - // Indicates whether the trading strategy should exit with quote only - ShouldExitWithQuoteOnly bool `protobuf:"varint,24,opt,name=should_exit_with_quote_only,json=shouldExitWithQuoteOnly,proto3" json:"should_exit_with_quote_only,omitempty"` - // Indicates the reason for stopping the trading strategy - StopReason string `protobuf:"bytes,25,opt,name=stop_reason,json=stopReason,proto3" json:"stop_reason,omitempty"` - // Indicates whether the trading strategy is pending execution - PendingExecution bool `protobuf:"varint,26,opt,name=pending_execution,json=pendingExecution,proto3" json:"pending_execution,omitempty"` - // Block height when the strategy was created. - CreatedHeight int64 `protobuf:"zigzag64,13,opt,name=created_height,json=createdHeight,proto3" json:"created_height,omitempty"` - // Block height when the strategy was removed. - RemovedHeight int64 `protobuf:"zigzag64,14,opt,name=removed_height,json=removedHeight,proto3" json:"removed_height,omitempty"` - // UpdatedAt timestamp in UNIX millis. - CreatedAt int64 `protobuf:"zigzag64,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - // UpdatedAt timestamp in UNIX millis. - UpdatedAt int64 `protobuf:"zigzag64,16,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` -} - -func (x *TradingStrategy) Reset() { - *x = TradingStrategy{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_trading_rpc_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TradingStrategy) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TradingStrategy) ProtoMessage() {} - -func (x *TradingStrategy) ProtoReflect() protoreflect.Message { - mi := &file_injective_trading_rpc_proto_msgTypes[2] - 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 TradingStrategy.ProtoReflect.Descriptor instead. -func (*TradingStrategy) Descriptor() ([]byte, []int) { - return file_injective_trading_rpc_proto_rawDescGZIP(), []int{2} -} - -func (x *TradingStrategy) GetState() string { - if x != nil { - return x.State - } - return "" -} - -func (x *TradingStrategy) GetMarketId() string { - if x != nil { - return x.MarketId - } - return "" -} - -func (x *TradingStrategy) GetSubaccountId() string { - if x != nil { - return x.SubaccountId - } - return "" -} - -func (x *TradingStrategy) GetAccountAddress() string { - if x != nil { - return x.AccountAddress - } - return "" -} - -func (x *TradingStrategy) GetContractAddress() string { - if x != nil { - return x.ContractAddress - } - return "" -} - -func (x *TradingStrategy) GetExecutionPrice() string { - if x != nil { - return x.ExecutionPrice - } - return "" -} - -func (x *TradingStrategy) GetBaseQuantity() string { - if x != nil { - return x.BaseQuantity - } - return "" -} - -func (x *TradingStrategy) GetQuoteQuantity() string { - if x != nil { - return x.QuoteQuantity - } - return "" -} - -func (x *TradingStrategy) GetLowerBound() string { - if x != nil { - return x.LowerBound - } - return "" -} - -func (x *TradingStrategy) GetUpperBound() string { - if x != nil { - return x.UpperBound - } - return "" -} - -func (x *TradingStrategy) GetStopLoss() string { - if x != nil { - return x.StopLoss - } - return "" -} - -func (x *TradingStrategy) GetTakeProfit() string { - if x != nil { - return x.TakeProfit - } - return "" -} - -func (x *TradingStrategy) GetSwapFee() string { - if x != nil { - return x.SwapFee - } - return "" -} - -func (x *TradingStrategy) GetBaseDeposit() string { - if x != nil { - return x.BaseDeposit - } - return "" -} - -func (x *TradingStrategy) GetQuoteDeposit() string { - if x != nil { - return x.QuoteDeposit - } - return "" -} - -func (x *TradingStrategy) GetMarketMidPrice() string { - if x != nil { - return x.MarketMidPrice - } - return "" -} - -func (x *TradingStrategy) GetSubscriptionQuoteQuantity() string { - if x != nil { - return x.SubscriptionQuoteQuantity - } - return "" -} - -func (x *TradingStrategy) GetSubscriptionBaseQuantity() string { - if x != nil { - return x.SubscriptionBaseQuantity - } - return "" -} - -func (x *TradingStrategy) GetNumberOfGridLevels() string { - if x != nil { - return x.NumberOfGridLevels - } - return "" -} - -func (x *TradingStrategy) GetShouldExitWithQuoteOnly() bool { - if x != nil { - return x.ShouldExitWithQuoteOnly - } - return false -} - -func (x *TradingStrategy) GetStopReason() string { - if x != nil { - return x.StopReason - } - return "" -} - -func (x *TradingStrategy) GetPendingExecution() bool { - if x != nil { - return x.PendingExecution - } - return false -} - -func (x *TradingStrategy) GetCreatedHeight() int64 { - if x != nil { - return x.CreatedHeight - } - return 0 -} - -func (x *TradingStrategy) GetRemovedHeight() int64 { - if x != nil { - return x.RemovedHeight - } - return 0 -} - -func (x *TradingStrategy) GetCreatedAt() int64 { - if x != nil { - return x.CreatedAt - } - return 0 -} - -func (x *TradingStrategy) GetUpdatedAt() int64 { - if x != nil { - return x.UpdatedAt - } - return 0 -} - -// Paging defines the structure for required params for handling pagination -type Paging struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // total number of txs saved in database - Total int64 `protobuf:"zigzag64,1,opt,name=total,proto3" json:"total,omitempty"` - // can be either block height or index num - From int32 `protobuf:"zigzag32,2,opt,name=from,proto3" json:"from,omitempty"` - // can be either block height or index num - To int32 `protobuf:"zigzag32,3,opt,name=to,proto3" json:"to,omitempty"` - // count entries by subaccount, serving some places on helix - CountBySubaccount int64 `protobuf:"zigzag64,4,opt,name=count_by_subaccount,json=countBySubaccount,proto3" json:"count_by_subaccount,omitempty"` - // array of tokens to navigate to the next pages - Next []string `protobuf:"bytes,5,rep,name=next,proto3" json:"next,omitempty"` -} - -func (x *Paging) Reset() { - *x = Paging{} - if protoimpl.UnsafeEnabled { - mi := &file_injective_trading_rpc_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Paging) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Paging) ProtoMessage() {} - -func (x *Paging) ProtoReflect() protoreflect.Message { - mi := &file_injective_trading_rpc_proto_msgTypes[3] - 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 Paging.ProtoReflect.Descriptor instead. -func (*Paging) Descriptor() ([]byte, []int) { - return file_injective_trading_rpc_proto_rawDescGZIP(), []int{3} -} - -func (x *Paging) GetTotal() int64 { - if x != nil { - return x.Total - } - return 0 -} - -func (x *Paging) GetFrom() int32 { - if x != nil { - return x.From - } - return 0 -} - -func (x *Paging) GetTo() int32 { - if x != nil { - return x.To - } - return 0 -} - -func (x *Paging) GetCountBySubaccount() int64 { - if x != nil { - return x.CountBySubaccount - } - return 0 -} - -func (x *Paging) GetNext() []string { - if x != nil { - return x.Next - } - return nil -} - -var File_injective_trading_rpc_proto protoreflect.FileDescriptor - -var file_injective_trading_rpc_proto_rawDesc = []byte{ - 0x0a, 0x1b, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x69, - 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x72, 0x70, 0x63, 0x22, 0xb0, 0x02, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 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, 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, 0x27, 0x0a, - 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 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, 0x14, 0x0a, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x05, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, - 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, - 0x73, 0x12, 0x35, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, - 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x88, 0x08, 0x0a, 0x0f, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 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, - 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, 0x27, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, - 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x63, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x51, 0x75, - 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, - 0x0b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x61, 0x6b, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x6b, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x73, 0x77, 0x61, 0x70, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x77, 0x61, 0x70, 0x46, 0x65, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x62, 0x61, 0x73, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x5f, 0x6d, 0x69, 0x64, 0x5f, 0x70, - 0x72, 0x69, 0x63, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x72, 0x6b, - 0x65, 0x74, 0x4d, 0x69, 0x64, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, - 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x19, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, - 0x74, 0x65, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x1a, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, - 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, - 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, - 0x66, 0x47, 0x72, 0x69, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x73, - 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x71, 0x75, 0x6f, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x17, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x45, 0x78, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, - 0x51, 0x75, 0x6f, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, - 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x12, 0x52, - 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x25, - 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x0f, 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, 0x10, 0x20, 0x01, 0x28, 0x12, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x11, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x11, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x53, 0x75, - 0x62, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x32, 0x9a, 0x01, 0x0a, - 0x13, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x52, 0x50, 0x43, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, - 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x12, 0x33, - 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, - 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x1a, 0x5a, 0x18, 0x2f, 0x69, 0x6e, - 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_injective_trading_rpc_proto_rawDescOnce sync.Once - file_injective_trading_rpc_proto_rawDescData = file_injective_trading_rpc_proto_rawDesc -) - -func file_injective_trading_rpc_proto_rawDescGZIP() []byte { - file_injective_trading_rpc_proto_rawDescOnce.Do(func() { - file_injective_trading_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(file_injective_trading_rpc_proto_rawDescData) - }) - return file_injective_trading_rpc_proto_rawDescData -} - -var file_injective_trading_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_injective_trading_rpc_proto_goTypes = []interface{}{ - (*ListTradingStrategiesRequest)(nil), // 0: injective_trading_rpc.ListTradingStrategiesRequest - (*ListTradingStrategiesResponse)(nil), // 1: injective_trading_rpc.ListTradingStrategiesResponse - (*TradingStrategy)(nil), // 2: injective_trading_rpc.TradingStrategy - (*Paging)(nil), // 3: injective_trading_rpc.Paging -} -var file_injective_trading_rpc_proto_depIdxs = []int32{ - 2, // 0: injective_trading_rpc.ListTradingStrategiesResponse.strategies:type_name -> injective_trading_rpc.TradingStrategy - 3, // 1: injective_trading_rpc.ListTradingStrategiesResponse.paging:type_name -> injective_trading_rpc.Paging - 0, // 2: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:input_type -> injective_trading_rpc.ListTradingStrategiesRequest - 1, // 3: injective_trading_rpc.InjectiveTradingRPC.ListTradingStrategies:output_type -> injective_trading_rpc.ListTradingStrategiesResponse - 3, // [3:4] is the sub-list for method output_type - 2, // [2:3] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_injective_trading_rpc_proto_init() } -func file_injective_trading_rpc_proto_init() { - if File_injective_trading_rpc_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_injective_trading_rpc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListTradingStrategiesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_trading_rpc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListTradingStrategiesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_trading_rpc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TradingStrategy); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_injective_trading_rpc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Paging); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_injective_trading_rpc_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_injective_trading_rpc_proto_goTypes, - DependencyIndexes: file_injective_trading_rpc_proto_depIdxs, - MessageInfos: file_injective_trading_rpc_proto_msgTypes, - }.Build() - File_injective_trading_rpc_proto = out.File - file_injective_trading_rpc_proto_rawDesc = nil - file_injective_trading_rpc_proto_goTypes = nil - file_injective_trading_rpc_proto_depIdxs = nil -} diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go index b9fd679e..6e6cf424 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc.pb.gw.go @@ -77,20 +77,22 @@ func RegisterInjectiveTradingRPCHandlerServer(ctx context.Context, mux *runtime. var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InjectiveTradingRPC_ListTradingStrategies_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveTradingRPC_ListTradingStrategies_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -139,19 +141,21 @@ func RegisterInjectiveTradingRPCHandlerClient(ctx context.Context, mux *runtime. ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies", runtime.WithHTTPPathPattern("/injective_trading_rpc.InjectiveTradingRPC/ListTradingStrategies")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InjectiveTradingRPC_ListTradingStrategies_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) + resp, md, err := request_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) return } - forward_InjectiveTradingRPC_ListTradingStrategies_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InjectiveTradingRPC_ListTradingStrategies_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) diff --git a/exchange/trading_rpc/pb/injective_trading_rpc.proto b/exchange/trading_rpc/pb/injective_trading_rpc.proto index 342f673f..18b00922 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc.proto +++ b/exchange/trading_rpc/pb/injective_trading_rpc.proto @@ -1,4 +1,4 @@ -// Code generated with goa v3.5.2, DO NOT EDIT. +// Code generated with goa v3.7.0, DO NOT EDIT. // // InjectiveTradingRPC protocol buffer definition // @@ -36,6 +36,10 @@ message ListTradingStrategiesRequest { sint64 end_time = 7; sint32 limit = 8; uint64 skip = 9; + // Filter by strategy type + repeated string strategy_type = 10; + // Filter by market type + string market_type = 11; } message ListTradingStrategiesResponse { @@ -96,6 +100,28 @@ message TradingStrategy { sint64 created_at = 15; // UpdatedAt timestamp in UNIX millis. sint64 updated_at = 16; + // Indicate how bot will convert funds (into base or quote or keep as is) after +// strategy ended + string exit_type = 27; + // Exit config for stop loss + ExitConfig stop_loss_config = 28; + // Exit config for take profit + ExitConfig take_profit_config = 29; + // Strategy type: arithmetic, geometric... + string strategy_type = 30; + // Version of the contract + string contract_version = 31; + // Name of the contract + string contract_name = 32; + // Type of the market + string market_type = 33; +} + +message ExitConfig { + // strategy exit type (stopLoss/takeProfit) + string exit_type = 1; + // strategy stopLoss/takeProfit price + string exit_price = 2; } // Paging defines the structure for required params for handling pagination message Paging { diff --git a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go index abfadfa6..17ef5dbc 100644 --- a/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go +++ b/exchange/trading_rpc/pb/injective_trading_rpc_grpc.pb_mock.go @@ -1,5 +1,5 @@ // Code generated by MockGen. DO NOT EDIT. -// Source: api/gen/grpc/injective_trading_rpc/pb/injective_trading_rpc_grpc.pb.go +// Source: api/gen/grpc/injective_trading_rpc/pb/goadesign_goagen_injective_trading_rpc_grpc.pb.go // Package injective_trading_rpcpb is a generated GoMock package. package injective_trading_rpcpb diff --git a/go.mod b/go.mod index 79c9c338..34e0b5b1 100644 --- a/go.mod +++ b/go.mod @@ -1,51 +1,70 @@ module github.com/InjectiveLabs/sdk-go -go 1.19 +go 1.22 require ( - cosmossdk.io/errors v1.0.0 - cosmossdk.io/math v1.1.2 + cosmossdk.io/errors v1.0.1 + cosmossdk.io/math v1.3.0 + cosmossdk.io/store v1.1.0 + cosmossdk.io/x/evidence v0.1.0 + cosmossdk.io/x/feegrant v0.1.0 + cosmossdk.io/x/tx v0.13.3 + cosmossdk.io/x/upgrade v0.1.1 github.com/CosmWasm/wasmd v0.40.2 github.com/InjectiveLabs/suplog v1.3.3 github.com/bandprotocol/bandchain-packet v0.0.4 github.com/btcsuite/btcd v0.23.4 github.com/btcsuite/btcd/btcutil v1.1.3 - github.com/cometbft/cometbft v0.37.2 - github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.47.5 - github.com/cosmos/gogoproto v1.4.10 - github.com/cosmos/ibc-go/v7 v7.3.0 + github.com/cometbft/cometbft v0.38.9 + github.com/cosmos/cosmos-proto v1.0.0-beta.5 + github.com/cosmos/cosmos-sdk v0.50.7 + github.com/cosmos/gogoproto v1.5.0 + github.com/cosmos/ibc-go/modules/capability v1.0.0 + github.com/cosmos/ibc-go/v8 v8.2.0 github.com/ethereum/go-ethereum v1.11.5 github.com/golang/mock v1.6.0 - github.com/golang/protobuf v1.5.3 - github.com/google/uuid v1.4.0 + github.com/golang/protobuf v1.5.4 + github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 github.com/huandu/go-assert v1.1.5 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.8.4 + github.com/stretchr/testify v1.9.0 github.com/tyler-smith/go-bip39 v1.1.0 - golang.org/x/crypto v0.11.0 - google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 - google.golang.org/grpc v1.56.2 - google.golang.org/protobuf v1.31.0 + golang.org/x/crypto v0.24.0 + google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de + google.golang.org/grpc v1.63.2 + google.golang.org/protobuf v1.33.0 gopkg.in/ini.v1 v1.67.0 gopkg.in/yaml.v2 v2.4.0 + gotest.tools/v3 v3.5.1 ) require ( - cosmossdk.io/api v0.3.1 // indirect - cosmossdk.io/core v0.6.1 // indirect + cosmossdk.io/api v0.7.5 // indirect + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/core v0.11.0 // indirect cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/log v1.3.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect - github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/CosmWasm/wasmvm v1.5.0 // indirect + github.com/CosmWasm/wasmvm/v2 v2.0.0 // 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 v3.2.0+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.5 // indirect + github.com/InjectiveLabs/metrics v0.0.10 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/StackExchange/wmi v1.2.1 // indirect - github.com/armon/go-metrics v0.4.1 // indirect - github.com/aws/aws-sdk-go v1.44.203 // 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 github.com/bitly/go-simplejson v0.5.1 // indirect @@ -53,122 +72,171 @@ require ( github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect 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/cespare/cp v1.1.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect - github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v1.1.0 // indirect github.com/cockroachdb/redact v1.1.5 // indirect - github.com/cometbft/cometbft-db v0.8.0 // indirect - github.com/confio/ics23/go v0.9.0 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft-db v0.9.1 // indirect github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-db v1.0.2 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect - github.com/cosmos/iavl v0.20.1 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/deckarep/golang-set/v2 v2.1.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/dgraph-io/badger/v2 v2.2007.4 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect - github.com/docker/distribution v2.8.2+incompatible // indirect + github.com/distribution/reference v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/dvsekhvalnov/jose2go v1.5.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect + github.com/ebitengine/purego v0.6.0-alpha.5 // indirect + github.com/emicklei/dot v1.6.1 // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 // indirect - github.com/getsentry/sentry-go v0.23.0 // indirect + github.com/getsentry/sentry-go v0.27.0 // indirect github.com/go-kit/kit v0.12.0 // 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.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gofrs/uuid v4.3.0+incompatible // indirect + github.com/gofrs/uuid v4.4.0+incompatible // indirect + github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang/glog v1.2.0 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect - github.com/grpc-ecosystem/go-grpc-middleware v1.3.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/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect - github.com/gtank/merlin v0.1.1 // indirect - github.com/gtank/ristretto255 v0.1.2 // 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/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect - github.com/hashicorp/hcl v1.0.0 // 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.5.2 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect github.com/hdevalence/ed25519consensus v0.1.0 // indirect github.com/holiman/uint256 v1.2.2 // indirect github.com/huandu/skiplist v1.2.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/klauspost/compress v1.16.3 // indirect + github.com/klauspost/compress v1.17.7 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect - github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/linxGnu/grocksdb v1.7.16 // indirect + github.com/linxGnu/grocksdb v1.8.14 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/manifoldco/promptui v0.9.0 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + 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/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.16.0 // indirect - github.com/prometheus/client_model v0.3.0 // indirect - github.com/prometheus/common v0.42.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/outcaste-io/ristretto v0.2.3 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // 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.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rivo/uniseg v0.4.4 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rs/cors v1.8.3 // indirect + github.com/rs/zerolog v1.32.0 // indirect + 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.1 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect - github.com/sirupsen/logrus v1.9.0 // indirect - github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/cast v1.5.1 // indirect - github.com/spf13/cobra v1.7.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.16.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect + github.com/spf13/viper v1.18.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tidwall/btree v1.6.0 // indirect + github.com/tidwall/btree v1.7.0 // indirect + github.com/tinylib/msgp v1.1.8 // indirect github.com/tklauser/go-sysconf v0.3.10 // indirect github.com/tklauser/numcpus v0.4.0 // indirect - github.com/zondax/hid v0.9.1 // indirect - github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.7 // indirect - golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect - golang.org/x/net v0.12.0 // indirect - golang.org/x/sys v0.11.0 // indirect - golang.org/x/term v0.10.0 // indirect - golang.org/x/text v0.12.0 // indirect - google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + go.etcd.io/bbolt v1.3.8 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.22.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect + gopkg.in/DataDog/dd-trace-go.v1 v1.62.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - pgregory.net/rapid v0.5.5 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + nhooyr.io/websocket v1.8.6 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) replace ( - cosmossdk.io/math => github.com/InjectiveLabs/cosmos-sdk/math v0.47.3-inj-1 - github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.45.0-inj + cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0 + cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.6-inj-0 + cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.6-inj-0 + cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.6-inj-0 + + github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.51.0-inj-0 github.com/bandprotocol/bandchain-packet => github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 - github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.37.2-inj - github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.47.3-inj-9 - github.com/cosmos/ibc-go/v7 => github.com/InjectiveLabs/ibc-go/v7 v7.2.0-inj + github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v0.38.10-inj-1 + + github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 + github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 => github.com/InjectiveLabs/ibc-apps/modules/ibc-hooks/v8 v8.0.0-inj-0 + github.com/cosmos/ibc-go/v8 => github.com/InjectiveLabs/ibc-go/v8 v8.3.2-inj-0 + github.com/miguelmota/go-ethereum-hdwallet => github.com/InjectiveLabs/go-ethereum-hdwallet v0.1.2 github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 ) diff --git a/go.sum b/go.sum index 47472ee8..a9b25d4b 100644 --- a/go.sum +++ b/go.sum @@ -1,55 +1,35 @@ 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.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= -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/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= -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/iam v1.1.0 h1:67gSqaPukx7O8WLLHMa0PNs3EBGd2eE4d+psbO/CO94= -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/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.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= -cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= -cosmossdk.io/core v0.6.1 h1:OBy7TI2W+/gyn2z40vVvruK3di+cAluinA6cybFbE7s= -cosmossdk.io/core v0.6.1/go.mod h1:g3MMBCBXtxbDWBURDVnJE7XML4BG5qENhs0gzkcpuFA= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/storage v1.36.0/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= +cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= +cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= -cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= -cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= -cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= +cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= +cosmossdk.io/x/circuit v0.1.0/go.mod h1:YDzblVE8+E+urPYQq5kq5foRY/IzhXovSYXb4nwd39w= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -59,53 +39,101 @@ github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XB 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/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= -github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/CosmWasm/wasmvm v1.5.0 h1:3hKeT9SfwfLhxTGKH3vXaKFzBz1yuvP8SlfwfQXbQfw= -github.com/CosmWasm/wasmvm v1.5.0/go.mod h1:fXB+m2gyh4v9839zlIXdMZGeLAxqUdYdFQqYsTha2hc= +github.com/CosmWasm/wasmvm/v2 v2.0.0 h1:IqNCI2G0mvs7K6ej17/I28805rVqnu+Y1cWDqIdwb08= +github.com/CosmWasm/wasmvm/v2 v2.0.0/go.mod h1:su9lg5qLr7adV95eOfzjZWkGiky8WNaNIHDr7Fpu7Ck= +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 h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8= +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.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1 h1:ZnvCV/lzjWmBwuGbkAz+okucfJEyEzkU9GYK3tKU9cU= github.com/InjectiveLabs/bandchain-packet v0.0.4-inj-1/go.mod h1:QELTDYiwnbAqIgTF9zeKr+hVlK6eVyt6Nxmh6/1mmzQ= -github.com/InjectiveLabs/cometbft v0.37.2-inj h1:vKLatEKl3qzhvFAgyvywApTuq44K0XooJpDWWP0bSt0= -github.com/InjectiveLabs/cometbft v0.37.2-inj/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= -github.com/InjectiveLabs/cosmos-sdk v0.47.3-inj-9 h1:/x20L4ZfYIhGu/wsmXb2nV6DF6t5QVNq7ecAFqAcrMU= -github.com/InjectiveLabs/cosmos-sdk v0.47.3-inj-9/go.mod h1:c4OfLdAykA9zsj1CqrxBRqXzVz48I++JSvIMPSPcEmk= -github.com/InjectiveLabs/cosmos-sdk/math v0.47.3-inj-1 h1:BHZQuZJXJctENiTfIBSH21HyR3a+Zx3Wd7RPz21spFI= -github.com/InjectiveLabs/cosmos-sdk/math v0.47.3-inj-1/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= -github.com/InjectiveLabs/ibc-go/v7 v7.2.0-inj h1:CtzShjiD+mGQktWYS0kTzUu8hQaDOmtvSTMekvOm9Rw= -github.com/InjectiveLabs/ibc-go/v7 v7.2.0-inj/go.mod h1:aEQF2stK9Bi/J56kW93MHlcKIF1uSt204mTngJYdNcY= +github.com/InjectiveLabs/cometbft v0.38.10-inj-1 h1:k4I22d5KcXEluYFSVfuSepkibyUesMD+UGOpBwqjXbo= +github.com/InjectiveLabs/cometbft v0.38.10-inj-1/go.mod h1:jHPx9vQpWzPHEAiYI/7EDKaB1NXhK6o3SArrrY8ExKc= +github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0 h1:Jf+0AEdUUNG1mNARompZWTFI/UltAUGX66owYks7TAs= +github.com/InjectiveLabs/cosmos-sdk v0.50.8-inj-0/go.mod h1:igpF5mgbiTmaS3hO/yoIIv7+ICbzMBIowFWSw5aOrKA= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0 h1:75YtRrju3R21u/VXttzuBoh49o28xABR2OUqioT9hMQ= +github.com/InjectiveLabs/cosmos-sdk/store v0.50.6-inj-0/go.mod h1:ZW4eIE98wivInyQyhxU2nHqEielc/iZAcr41qNyWSrw= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.6-inj-0 h1:rb73cHJPCTwnBq96WC9L1ymqnHe5i4of1wjpXFAOUe4= +github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.6-inj-0/go.mod h1:/5BJ6rqcaDZgfdhFGHsqwoD3sCqMPU6M/RMhKTPxV6Y= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.6-inj-0 h1:2ZHZP06FVWvmzqk+L6GUE2LwEG4GO5b5iWWr1daTe8c= +github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.6-inj-0/go.mod h1:Tnwfp0+AmtSF3sktmOwt5Sk4PbRMrDAWsJTr6cX1Hj8= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.6-inj-0 h1:fgiPag7wJJ0nX0Bnjm9Q0VuQLJTMV7U5nOyE82f/ed4= +github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.6-inj-0/go.mod h1:Cn5qF2yRpXZcd+yJM6mu0UGt1p75IherhBhfeAvkmPc= +github.com/InjectiveLabs/ibc-go/v8 v8.3.2-inj-0 h1:ABUXDLG1crwZHtCUUPnX8vZMlcRByhWq7ZawKVpnkYc= +github.com/InjectiveLabs/ibc-go/v8 v8.3.2-inj-0/go.mod h1:TGEIiuEAjZH11VCehlYjmx6RTUjv4vbkKFL9s2r+VRg= +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/suplog v1.3.3 h1:ARIR3lWD9BxcrmqTwgcGBt8t7e10gwOqllUAXa/MfxI= github.com/InjectiveLabs/suplog v1.3.3/go.mod h1:+I9WRgUhzmo1V/n7IkW24kFBFB9ZTPAiXXXCogWxmTM= -github.com/InjectiveLabs/wasmd v0.45.0-inj h1:hYRzxEiBNJqJA7EoE9kMTFpWayjT2ICo/FsmtAf8A+o= -github.com/InjectiveLabs/wasmd v0.45.0-inj/go.mod h1:M8hxvHoOzZkzdrFNqDYcPPcQw7EmJwYNZkslhHbCj0I= +github.com/InjectiveLabs/wasmd v0.51.0-inj-0 h1:5YvS+OWjein0p3APDqLok/DjLmxJ4XAi8FXrmzhjjXo= +github.com/InjectiveLabs/wasmd v0.51.0-inj-0/go.mod h1:CGIOxbGca/pOiZ+Q7e6aMoNnnSPXrV5/hV1dK3H8FUo= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= +github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= 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/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +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/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= -github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.25.16/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U= -github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.27.0/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= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bitly/go-simplejson v0.5.1 h1:xgwPbetQScXt1gh9BmoJ6j9JMr3TElvuIyjR8pgdoow= github.com/bitly/go-simplejson v0.5.1/go.mod h1:YOPVLzCfwK14b4Sff3oP1AmGhI9T9Vsg84etUnlyp+Q= +github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c= +github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= 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.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= @@ -132,21 +160,32 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= github.com/bugsnag/bugsnag-go v1.5.3/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/bugsnag-go v2.1.2+incompatible h1:E7dor84qzwUO8KdCM68CZwq9QOSR7HXlLx3Wj5vui2s= github.com/bugsnag/bugsnag-go v2.1.2+incompatible/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/panicwrap v1.3.4 h1:A6sXFtDGsgU/4BLf5JT0o5uYg3EeKgGx3Sfs+/uk3pU= github.com/bugsnag/panicwrap v1.3.4/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/bytedance/sonic v1.10.0 h1:qtNZduETEIWJVIyDl01BeNxur2rW9OwTQ/yBqFRkKEk= +github.com/bytedance/sonic v1.10.0/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= +github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/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 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= +github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= +github.com/chenzhuoyu/iasm v0.9.0 h1:9fhXjVzq5hUy2gkhhgHl95zG2cEAhw9OSGs8toWWAwo= +github.com/chenzhuoyu/iasm v0.9.0/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= @@ -158,145 +197,226 @@ github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= 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/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/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= -github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= -github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= -github.com/cockroachdb/pebble v0.0.0-20230226194802-02d779ffbc46 h1:yMaoO76pV9knZ6bzEwzPSHnPSCTnrJohwkIQirmii70= +github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= +github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= -github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= -github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= -github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= -github.com/confio/ics23/go v0.9.0 h1:cWs+wdbS2KRPZezoaaj+qBleXgUk5WOQFMP3CQFGTr4= -github.com/confio/ics23/go v0.9.0/go.mod h1:4LPZ2NYqnYIVRklaozjNR1FScgDJ2s5Xrp+e/mYVRak= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= +github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= -github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= -github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= +github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= +github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= 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/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= -github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= -github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= -github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +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.5.0 h1:SDVwzEqZDDBoslaeZg+dGE55hdzHfgUA40pEanMh52o= +github.com/cosmos/gogoproto v1.5.0/go.mod h1:iUM31aofn3ymidYG6bUR5ZFrk+Om8p5s754eMUcyp8I= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= +github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= +github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= -github.com/cosmos/ledger-cosmos-go v0.12.2 h1:/XYaBlE2BJxtvpkHiBm97gFGSGmYGKunKyF3nNqAXZA= -github.com/cosmos/ledger-cosmos-go v0.12.2/go.mod h1:ZcqYgnfNJ6lAXe4HPtWgarNEY+B74i+2/8MhZw4ziiI= -github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= +github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= +github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI= github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= 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/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= -github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +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/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= 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.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= -github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +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/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/ebitengine/purego v0.6.0-alpha.5 h1:EYID3JOAdmQ4SNZYJHu9V6IqOeRQDBYxqKAg9PyoHFY= +github.com/ebitengine/purego v0.6.0-alpha.5/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/emicklei/dot v1.6.1 h1:ujpDlBkkwgWUY+qPId5IwapRW/xEoligRSYjioR6DFI= +github.com/emicklei/dot v1.6.1/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= 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.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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/ethereum/go-ethereum v1.11.5 h1:3M1uan+LAUvdn+7wCEFrcMM4LJTeuxDrPTg/f31a5QQ= github.com/ethereum/go-ethereum v1.11.5/go.mod h1:it7x0DWnTDMfVFdXcU6Ti4KEFQynLHVRarcSlPr0HBo= -github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= +github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08 h1:f6D9Hr8xV8uYKlyuj8XIruxlh9WjVjdh1gIicAS7ays= github.com/gballet/go-libpcsclite v0.0.0-20191108122812-4678299bea08/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= -github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= -github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -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-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 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/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +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-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.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/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.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-playground/validator/v10 v10.15.1 h1:BSe8uhN+xQ4r5guV/ywQI4gO59C2raYcGffYWZEjZzM= +github.com/go-playground/validator/v10 v10.15.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/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= github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= -github.com/gofrs/uuid v4.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA= +github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= 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.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= +github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 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.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= @@ -304,7 +424,6 @@ 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= @@ -315,8 +434,10 @@ 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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.2/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.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -328,79 +449,114 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a 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.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.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 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/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/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= -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/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/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= -github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -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.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +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.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +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.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= 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.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= github.com/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/gtank/merlin v0.1.1-0.20191105220539-8318aed1a79f/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/merlin v0.1.1 h1:eQ90iG7K9pOhtereWsmyRJ6RAwcP4tHTDBHXNg+u5is= -github.com/gtank/merlin v0.1.1/go.mod h1:T86dnYJhcGOh5BjZFCJWTDeTK7XW8uE+E21Cy/bIQ+s= -github.com/gtank/ristretto255 v0.1.2 h1:JEqUCPA1NvLq5DwYtuzigd7ss8fwbYay9fi4/5uMzcc= -github.com/gtank/ristretto255 v0.1.2/go.mod h1:Ph5OpO6c7xKUGROZfWVLiJf9icMDwUeIvY4OmlYW69o= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +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= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= -github.com/hashicorp/go-getter v1.7.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-getter v1.7.3 h1:bN2+Fw9XPFvOCjB0UOevFIMICZ7G2XSQHzfvLUyOM5E= +github.com/hashicorp/go-getter v1.7.3/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +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-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +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.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= +github.com/hashicorp/go-plugin v1.5.2/go.mod h1:w1sAEES3g3PuV/RzUrgow20W2uErMly84hhD3um1WL4= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= -github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= +github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= 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/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= 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 v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +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= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= +github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= +github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= github.com/holiman/uint256 v1.2.2 h1:TXKcSGc2WaxPD2+bmzAsVthL4+pEN0YwXcL5qED83vk= github.com/holiman/uint256 v1.2.2/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -408,16 +564,23 @@ github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3 github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= -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/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= +github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= +github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -425,22 +588,35 @@ 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/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= 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.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -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/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= 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/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +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/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= -github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +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/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= 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.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -450,47 +626,91 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= -github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= -github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= -github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/linxGnu/grocksdb v1.8.14 h1:HTgyYalNwBSG/1qCQUIott44wU5b2Y9Kr3z7SK5OfGQ= +github.com/linxGnu/grocksdb v1.8.14/go.mod h1:QYiYypR2d4v63Wj1adOOfzglnoII0gLj3PNh4fZkcFA= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= 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= github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +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.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +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.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= -github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= +github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A= +github.com/mitchellh/pointerstructure v1.2.0/go.mod h1:BRAsLI5zgXmw97Lf6s25bs8ohIXc3tViBH44KcwB2g4= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= 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 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +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/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -498,103 +718,174 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= +github.com/onsi/gomega v1.26.0 h1:03cDLK28U6hWvCAns6NeydX3zIm4SF3ci69ulidS32Q= +github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdMPGhM= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= 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-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= 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/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +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/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= -github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/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/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 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.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= 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.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= -github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +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.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= -github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= -github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= 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/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= +github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= -github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= +github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +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/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +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/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU= github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= 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.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +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.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +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 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= -github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA= +github.com/status-im/keycard-go v0.2.0/go.mod h1:wlp8ZLbsmrF6g6WjugPAx+IzoLrkdf9+mHxBEeo3Hbg= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= 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= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -602,174 +893,191 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +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.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= -github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +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.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= +github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1 h1:+mkCCcOFKPnCmVYVcURKps1Xe+3zP90gSYGNfRkjoIY= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa h1:5SqCsI/2Qya2bCzK15ozrqo2sZxkh0FHynJZOTVoV6Q= +github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= 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.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= -github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= -github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= -github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +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.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= +go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= 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.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +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= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/arch v0.4.0 h1:A8WCeEWhLwPBKNbFi5Wv5UTCBx5zzubnXDlMOFAzFMc= +golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= 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-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/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-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-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.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -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-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= -golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 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/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.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.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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-20190813141303-74dc4d7220e7/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-20200421231249-e086a090c8fd/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-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-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220517181318-183a9ca12b87/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= 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.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.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= 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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 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-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/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-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -778,227 +1086,150 @@ golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7w 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-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/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-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/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-20200420163511-1957bb5e6d1f/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-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-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-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/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-20210615035016-665e8c7367d1/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-20210809222454-d867a43fc93e/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-20210927094055-39ccf1dd6fa6/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-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-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-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-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-20220908164124-27713097b956/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-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -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.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= 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.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -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/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/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.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/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-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-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 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-20191012152004-8de300cfc20a/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-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/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-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-20200103221440-774c71fcf114/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-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.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.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= 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-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -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.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.162.0 h1:Vhs54HkaEpkMBdgGdOT2P6F0csGG/vxDS0hWHJzmmps= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 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 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +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-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= 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-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-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= -google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529 h1:s5YSX+ZH5b5vS9rnpGymvIyMpLRJizowqDlOuyjXnTk= -google.golang.org/genproto/googleapis/api v0.0.0-20230629202037-9506855d4529/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de h1:jFNzHPIeuzhdRwVhbZdiym9q0ory/xY3sA+v2wPg8I0= +google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= 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.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/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.32.0/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.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= 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= @@ -1011,22 +1242,35 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +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.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +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= 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/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= 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/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1037,22 +1281,22 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 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 v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= -gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +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-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 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= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= -pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= -pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -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.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/proto/buf.yaml b/proto/buf.yaml index 073e2ddd..74507427 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -1,10 +1,11 @@ version: v1 name: buf.build/InjectiveLabs/injective-core deps: + - buf.build/googleapis/googleapis - buf.build/cosmos/cosmos-proto - - buf.build/cosmos/cosmos-sdk:v0.47.0 + - buf.build/cosmos/cosmos-sdk:v0.50.5 - buf.build/cosmos/gogo-proto - - buf.build/cosmwasm/wasmd:2a82e352430f5ce799c1926f203cd43b39221387 + - buf.build/cosmwasm/wasmd:v0.51.0 breaking: use: - FILE diff --git a/proto/injective/auction/v1beta1/auction.proto b/proto/injective/auction/v1beta1/auction.proto index 530859f1..c5f95038 100644 --- a/proto/injective/auction/v1beta1/auction.proto +++ b/proto/injective/auction/v1beta1/auction.proto @@ -3,17 +3,19 @@ package injective.auction.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types"; message Params { option (gogoproto.equal) = true; + option (amino.name) = "auction/Params"; // auction_period_duration defines the auction period duration int64 auction_period = 1; // min_next_bid_increment_rate defines the minimum increment rate for new bids string min_next_bid_increment_rate = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -30,6 +32,18 @@ message Bid { ]; } +message LastAuctionResult { + // winner describes the address of the winner + string winner = 1; + // amount describes the amount the winner get from the auction + string amount = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Coin", + (gogoproto.nullable) = false + ]; + // round defines the round number of auction + uint64 round = 3; +} + message EventBid { // bidder describes the address of bidder string bidder = 1; diff --git a/proto/injective/auction/v1beta1/genesis.proto b/proto/injective/auction/v1beta1/genesis.proto index f0c9e155..08b5b9f2 100644 --- a/proto/injective/auction/v1beta1/genesis.proto +++ b/proto/injective/auction/v1beta1/genesis.proto @@ -19,4 +19,7 @@ message GenesisState { // auction ending timestamp int64 auction_ending_timestamp = 4; + + // last auction result + LastAuctionResult last_auction_result = 5; } diff --git a/proto/injective/auction/v1beta1/query.proto b/proto/injective/auction/v1beta1/query.proto index 2a546f5f..44e46d60 100644 --- a/proto/injective/auction/v1beta1/query.proto +++ b/proto/injective/auction/v1beta1/query.proto @@ -28,6 +28,12 @@ service Query { returns (QueryModuleStateResponse) { option (google.api.http).get = "/injective/auction/v1beta1/module_state"; } + + rpc LastAuctionResult(QueryLastAuctionResultRequest) + returns (QueryLastAuctionResultResponse) { + option (google.api.http).get = + "/injective/auction/v1beta1/last_auction_result"; + } } // QueryAuctionParamsRequest is the request type for the Query/AuctionParams RPC @@ -60,7 +66,7 @@ message QueryCurrentAuctionBasketResponse { string highestBidder = 4; // highestBidAmount describes highest bid amount on current round string highestBidAmount = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } @@ -71,4 +77,10 @@ message QueryModuleStateRequest {} // QueryModuleStateResponse is the response type for the // Query/AuctionModuleState RPC method. -message QueryModuleStateResponse { GenesisState state = 1; } \ No newline at end of file +message QueryModuleStateResponse { GenesisState state = 1; } + +message QueryLastAuctionResultRequest {} + +message QueryLastAuctionResultResponse { + LastAuctionResult last_auction_result = 1; +} diff --git a/proto/injective/auction/v1beta1/tx.proto b/proto/injective/auction/v1beta1/tx.proto index 9e7eb5b9..34d7859b 100644 --- a/proto/injective/auction/v1beta1/tx.proto +++ b/proto/injective/auction/v1beta1/tx.proto @@ -6,11 +6,13 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "injective/auction/v1beta1/auction.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/auction/types"; // Msg defines the auction Msg service. service Msg { + option (cosmos.msg.v1.service) = true; // Bid defines a method for placing a bid for an auction rpc Bid(MsgBid) returns (MsgBidResponse); @@ -22,6 +24,7 @@ service Msg { message MsgBid { option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; + option (amino.name) = "auction/MsgBid"; option (cosmos.msg.v1.signer) = "sender"; @@ -36,6 +39,7 @@ message MsgBidResponse {} message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "auction/MsgUpdateParams"; // authority is the address of the governance account. string authority = 1 [ (cosmos_proto.scalar) = "cosmos.AddressString" ]; diff --git a/proto/injective/crypto/v1beta1/ethsecp256k1/keys.proto b/proto/injective/crypto/v1beta1/ethsecp256k1/keys.proto index cb30e830..c5e13a1b 100644 --- a/proto/injective/crypto/v1beta1/ethsecp256k1/keys.proto +++ b/proto/injective/crypto/v1beta1/ethsecp256k1/keys.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package injective.crypto.v1beta1.ethsecp256k1; import "gogoproto/gogo.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/crypto/ethsecp256k1"; @@ -9,6 +10,19 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/cry // Tendermint's PubKey interface. It represents the 33-byte compressed public // key format. message PubKey { + option (amino.name) = "injective/PubKeyEthSecp256k1"; + // The Amino encoding is simply the inner bytes field, and not the Amino + // encoding of the whole PubKey struct. + // + // Example (JSON): + // s := PubKey{Key: []byte{0x01}} + // out := AminoJSONEncoder(s) + // + // Then we have: + // out == `"MQ=="` + // out != `{"key":"MQ=="}` + option (amino.message_encoding) = "key_field"; + option (gogoproto.goproto_stringer) = false; bytes key = 1; @@ -16,4 +30,9 @@ message PubKey { // PrivKey defines a type alias for an ecdsa.PrivateKey that implements // Tendermint's PrivateKey interface. -message PrivKey { bytes key = 1; } +message PrivKey { + option (amino.name) = "injective/PrivKeyEthSecp256k1"; + option (amino.message_encoding) = "key_field"; + + bytes key = 1; +} diff --git a/proto/injective/exchange/v1beta1/authz.proto b/proto/injective/exchange/v1beta1/authz.proto index 6c9f540d..0d2bdea8 100644 --- a/proto/injective/exchange/v1beta1/authz.proto +++ b/proto/injective/exchange/v1beta1/authz.proto @@ -2,35 +2,41 @@ syntax = "proto3"; package injective.exchange.v1beta1; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types"; // spot authz messages message CreateSpotLimitOrderAuthz { + option (amino.name) = "exchange/CreateSpotLimitOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message CreateSpotMarketOrderAuthz { + option (amino.name) = "exchange/CreateSpotMarketOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message BatchCreateSpotLimitOrdersAuthz { + option (amino.name) = "exchange/BatchCreateSpotLimitOrdersAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message CancelSpotOrderAuthz { + option (amino.name) = "exchange/CancelSpotOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message BatchCancelSpotOrdersAuthz { + option (amino.name) = "exchange/BatchCancelSpotOrdersAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; @@ -38,30 +44,35 @@ message BatchCancelSpotOrdersAuthz { // derivative authz messages message CreateDerivativeLimitOrderAuthz { + option (amino.name) = "exchange/CreateDerivativeLimitOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message CreateDerivativeMarketOrderAuthz { + option (amino.name) = "exchange/CreateDerivativeMarketOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message BatchCreateDerivativeLimitOrdersAuthz { + option (amino.name) = "exchange/BatchCreateDerivativeLimitOrdersAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message CancelDerivativeOrderAuthz { + option (amino.name) = "exchange/CancelDerivativeOrderAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; } message BatchCancelDerivativeOrdersAuthz { + option (amino.name) = "exchange/BatchCancelDerivativeOrdersAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string market_ids = 2; @@ -69,6 +80,7 @@ message BatchCancelDerivativeOrdersAuthz { // common authz message used in both spot & derivative markets message BatchUpdateOrdersAuthz { + option (amino.name) = "exchange/BatchUpdateOrdersAuthz"; option (cosmos_proto.implements_interface) = "Authorization"; string subaccount_id = 1; repeated string spot_markets = 2; diff --git a/proto/injective/exchange/v1beta1/events.proto b/proto/injective/exchange/v1beta1/events.proto index 22d30340..22cbafdd 100644 --- a/proto/injective/exchange/v1beta1/events.proto +++ b/proto/injective/exchange/v1beta1/events.proto @@ -21,7 +21,7 @@ message EventBatchDerivativeExecution { bool is_liquidation = 3; // nil for time expiry futures string cumulative_funding = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; ExecutionType executionType = 5; @@ -32,11 +32,11 @@ message EventLostFundsFromLiquidation { string market_id = 1; bytes subaccount_id = 2; string lost_funds_from_available_during_payout = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string lost_funds_from_order_cancels = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -107,11 +107,11 @@ message EventPerpetualMarketFundingUpdate { PerpetualMarketFunding funding = 2 [ (gogoproto.nullable) = false ]; bool is_hourly_funding = 3; string funding_rate = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; string mark_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -139,7 +139,7 @@ message EventBatchDepositUpdate { repeated DepositUpdate deposit_updates = 1; } message DerivativeMarketOrderCancel { DerivativeMarketOrder market_order = 1 [ (gogoproto.nullable) = true ]; string cancel_quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -182,12 +182,14 @@ message EventConditionalDerivativeOrderTrigger { bool isLimitTrigger = 2; bytes triggered_order_hash = 3; bytes placed_order_hash = 4; + string triggered_order_cid = 5; } message EventOrderFail { bytes account = 1; repeated bytes hashes = 2; repeated uint32 flags = 3; + repeated string cids = 4; } message EventAtomicMarketOrderFeeMultipliersUpdated { @@ -209,3 +211,30 @@ message Orderbook { repeated Level buy_levels = 2; repeated Level sell_levels = 3; } + +message EventGrantAuthorizations { + string granter = 1; + repeated GrantAuthorization grants = 2; +} + +message EventGrantActivation { + string grantee = 1; + string granter = 2; + string amount = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; +} + +message EventInvalidGrant { + string grantee = 1; + string granter = 2; +} + +message EventOrderCancelFail { + string market_id = 1; + string subaccount_id = 2; + string order_hash = 3; + string cid = 4; + string description = 5; +} diff --git a/proto/injective/exchange/v1beta1/exchange.proto b/proto/injective/exchange/v1beta1/exchange.proto index 1a27e648..c7b837b6 100644 --- a/proto/injective/exchange/v1beta1/exchange.proto +++ b/proto/injective/exchange/v1beta1/exchange.proto @@ -4,6 +4,7 @@ package injective.exchange.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types"; @@ -17,6 +18,7 @@ enum AtomicMarketOrderAccessLevel { message Params { option (gogoproto.equal) = true; + option (amino.name) = "exchange/Params"; // spot_market_instant_listing_fee defines the expedited fee in INJ required // to create a spot market by bypassing governance @@ -31,42 +33,42 @@ message Params { // default_spot_maker_fee defines the default exchange trade fee for makers on // a spot market string default_spot_maker_fee_rate = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_spot_taker_fee_rate defines the default exchange trade fee rate for // takers on a new spot market string default_spot_taker_fee_rate = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_derivative_maker_fee defines the default exchange trade fee for // makers on a new derivative market string default_derivative_maker_fee_rate = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_derivative_taker_fee defines the default exchange trade fee for // takers on a new derivative market string default_derivative_taker_fee_rate = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_initial_margin_ratio defines the default initial margin ratio on a // new derivative market string default_initial_margin_ratio = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_maintenance_margin_ratio defines the default maintenance margin // ratio on a new derivative market string default_maintenance_margin_ratio = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -81,20 +83,20 @@ message Params { // relayer_fee_share_rate defines the trade fee share percentage that goes to // relayers string relayer_fee_share_rate = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // default_hourly_funding_rate_cap defines the default maximum absolute value // of the hourly funding rate string default_hourly_funding_rate_cap = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // hourly_interest_rate defines the hourly interest rate string default_hourly_interest_rate = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -105,7 +107,7 @@ message Params { // inj_reward_staked_requirement_threshold defines the threshold on INJ // rewards after which one also needs staked INJ to receive more string inj_reward_staked_requirement_threshold = 15 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; @@ -116,7 +118,7 @@ message Params { // liquidator_reward_share_rate defines the ratio of the split of the surplus // collateral that goes to the liquidator string liquidator_reward_share_rate = 17 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // binary_options_market_instant_listing_fee defines the expedited fee in INJ @@ -130,27 +132,27 @@ message Params { // spot_atomic_market_order_fee_multiplier defines the default multiplier for // executing atomic market orders in spot markets string spot_atomic_market_order_fee_multiplier = 20 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // derivative_atomic_market_order_fee_multiplier defines the default // multiplier for executing atomic market orders in derivative markets string derivative_atomic_market_order_fee_multiplier = 21 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // binary_options_atomic_market_order_fee_multiplier defines the default // multiplier for executing atomic market orders in binary markets string binary_options_atomic_market_order_fee_multiplier = 22 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // minimal_protocol_fee_rate defines the minimal protocol fee rate string minimal_protocol_fee_rate = 23 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -159,6 +161,19 @@ message Params { bool is_instant_derivative_market_launch_enabled = 24; int64 post_only_mode_height_threshold = 25; + + // Maximum time in seconds since the last mark price update to allow a + // decrease in margin + int64 margin_decrease_price_timestamp_threshold_seconds = 26; + + // 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 + string inj_auction_max_cap = 28 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; } enum MarketStatus { @@ -175,7 +190,7 @@ message MarketFeeMultiplier { string market_id = 1; string fee_multiplier = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -201,29 +216,29 @@ message DerivativeMarket { // initial_margin_ratio defines the initial margin ratio of a derivative // market string initial_margin_ratio = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maintenance_margin_ratio defines the maintenance margin ratio of a // derivative market string maintenance_margin_ratio = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maker_fee_rate defines the maker fee rate of a derivative market string maker_fee_rate = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the taker fee rate of a derivative market string taker_fee_rate = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market string relayer_fee_share_rate = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // true if the market is a perpetual market. false if the market is an expiry @@ -234,15 +249,26 @@ message DerivativeMarket { // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market string min_price_tick_size = 15 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market string min_quantity_tick_size = 16 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 17 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + // current market admin + string admin = 18; + // level of admin permissions + uint32 admin_permissions = 19; } // An object describing a binary options market in Injective Protocol. message BinaryOptionsMarket { @@ -270,18 +296,18 @@ message BinaryOptionsMarket { string market_id = 10; // maker_fee_rate defines the maker fee rate of a binary options market string maker_fee_rate = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the taker fee rate of a derivative market string taker_fee_rate = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market string relayer_fee_share_rate = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // Status of the market @@ -289,20 +315,28 @@ message BinaryOptionsMarket { // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market string min_price_tick_size = 15 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market string min_quantity_tick_size = 16 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string settlement_price = 17 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 18 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // level of admin permissions + uint32 admin_permissions = 19; } message ExpiryFuturesMarketInfo { @@ -317,13 +351,13 @@ message ExpiryFuturesMarketInfo { // expiration_twap_start_price_cumulative defines the cumulative price for the // start of the TWAP window string expiration_twap_start_price_cumulative = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // settlement_price defines the settlement price for a time expiry futures // market. string settlement_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -334,12 +368,12 @@ message PerpetualMarketInfo { // hourly_funding_rate_cap defines the maximum absolute value of the hourly // funding rate string hourly_funding_rate_cap = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // hourly_interest_rate defines the hourly interest rate string hourly_interest_rate = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // next_funding_timestamp defines the next funding timestamp in seconds of a @@ -353,13 +387,13 @@ message PerpetualMarketInfo { message PerpetualMarketFunding { // cumulative_funding defines the cumulative funding of a perpetual market. string cumulative_funding = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // cumulative_price defines the cumulative price for the current hour up to // the last timestamp string cumulative_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; int64 last_timestamp = 3; @@ -370,7 +404,7 @@ message DerivativeMarketSettlementInfo { string market_id = 1; // settlement_price defines the settlement price string settlement_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -380,17 +414,17 @@ message NextFundingTimestamp { int64 next_timestamp = 1; } message MidPriceAndTOB { // mid price of the market string mid_price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best buy price of the market string best_buy_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best sell price of the market string best_sell_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -406,18 +440,18 @@ message SpotMarket { string quote_denom = 3; // maker_fee_rate defines the fee percentage makers pay when trading string maker_fee_rate = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the fee percentage takers pay when trading string taker_fee_rate = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // relayer_fee_share_rate defines the percentage of the transaction fee shared // with the relayer in a derivative market string relayer_fee_share_rate = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // Unique market ID. @@ -427,25 +461,36 @@ message SpotMarket { // min_price_tick_size defines the minimum tick size that the price required // for orders in the market string min_price_tick_size = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market string min_quantity_tick_size = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 11 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // current market admin + string admin = 12; + // level of admin permissions + uint32 admin_permissions = 13; } // A subaccount's deposit for a given base currency message Deposit { string available_balance = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string total_balance = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -459,12 +504,12 @@ message OrderInfo { string fee_recipient = 2; // price of the order string price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity of the order string quantity = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string cid = 5; @@ -493,7 +538,7 @@ message SpotOrder { OrderType order_type = 3; // trigger_price is the trigger price used by stop/take orders string trigger_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -506,12 +551,12 @@ message SpotLimitOrder { OrderType order_type = 2; // the amount of the quantity remaining fillable string fillable = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // trigger_price is the trigger price used by stop/take orders string trigger_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; bytes order_hash = 5; @@ -522,7 +567,7 @@ message SpotMarketOrder { // order_info contains the information of the order OrderInfo order_info = 1 [ (gogoproto.nullable) = false ]; string balance_hold = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes order_hash = 3; @@ -530,7 +575,7 @@ message SpotMarketOrder { OrderType order_type = 4; // trigger_price is the trigger price used by stop/take orders string trigger_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -544,12 +589,12 @@ message DerivativeOrder { OrderType order_type = 3; // margin is the margin used by the limit order string margin = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // trigger_price is the trigger price used by stop/take orders string trigger_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -560,13 +605,13 @@ message SubaccountOrderbookMetadata { // AggregateReduceOnlyQuantity is the aggregate fillable quantity of the // subaccount's reduce-only limit orders in the given direction. string aggregate_reduce_only_quantity = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // AggregateVanillaQuantity is the aggregate fillable quantity of the // subaccount's vanilla limit orders in the given direction. string aggregate_vanilla_quantity = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -577,15 +622,16 @@ message SubaccountOrderbookMetadata { message SubaccountOrder { // price of the order string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // the amount of the quantity remaining fillable string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bool isReduceOnly = 3; + string cid = 4; } message SubaccountOrderData { @@ -601,17 +647,17 @@ message DerivativeLimitOrder { OrderType order_type = 2; // margin is the margin used by the limit order string margin = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // the amount of the quantity remaining fillable string fillable = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // trigger_price is the trigger price used by stop/take orders string trigger_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; bytes order_hash = 6; @@ -624,16 +670,16 @@ message DerivativeMarketOrder { // order types OrderType order_type = 2; string margin = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string margin_hold = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // trigger_price is the trigger price used by stop/take orders string trigger_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; bytes order_hash = 6; @@ -642,19 +688,19 @@ message DerivativeMarketOrder { message Position { bool isLong = 1; string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string entry_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string margin = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string cumulative_funding_entry = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -667,17 +713,17 @@ message MarketOrderIndicator { message TradeLog { string quantity = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // bytes32 subaccount ID that executed the trade bytes subaccount_id = 3; string fee = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes order_hash = 5; @@ -688,15 +734,15 @@ message TradeLog { message PositionDelta { bool is_long = 1; string execution_quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string execution_margin = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string execution_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -705,16 +751,20 @@ message DerivativeTradeLog { bytes subaccount_id = 1; PositionDelta position_delta = 2; string payout = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string fee = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes order_hash = 5; bytes fee_recipient_address = 6 [ (gogoproto.nullable) = true ]; string cid = 7; + string pnl = 8 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; } enum ExecutionType { @@ -744,11 +794,11 @@ message DepositUpdate { message PointsMultiplier { string maker_points_multiplier = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string taker_points_multiplier = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -785,19 +835,19 @@ message TradingRewardCampaignInfo { message FeeDiscountTierInfo { string maker_discount_rate = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string taker_discount_rate = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string staked_amount = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string volume = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -822,11 +872,11 @@ message FeeDiscountTierTTL { message VolumeRecord { string maker_volume = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string taker_volume = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -850,12 +900,12 @@ message TradeRecord { int64 timestamp = 1; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string quantity = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -878,12 +928,12 @@ enum OrderMask { message Level { // price string p = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity string q = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -906,4 +956,29 @@ message MarketVolume { message DenomDecimals { string denom = 1; uint64 decimals = 2; -} \ No newline at end of file +} + +message GrantAuthorization { + string grantee = 1; + string amount = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; +} + +message ActiveGrant { + string granter = 1; + string amount = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; +} + +message EffectiveGrant { + string granter = 1; + string net_granted_stake = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + bool is_valid = 3; +} diff --git a/proto/injective/exchange/v1beta1/genesis.proto b/proto/injective/exchange/v1beta1/genesis.proto index 51b99045..eccb4363 100644 --- a/proto/injective/exchange/v1beta1/genesis.proto +++ b/proto/injective/exchange/v1beta1/genesis.proto @@ -129,6 +129,10 @@ message GenesisState { repeated AggregateSubaccountVolumeRecord subaccount_volumes = 33; repeated MarketVolume market_volumes = 34; + + repeated FullGrantAuthorizations grant_authorizations = 35; + + repeated FullActiveGrant active_grants = 36; } message OrderbookSequence { @@ -149,7 +153,7 @@ message FeeDiscountBucketVolumeAccounts { message AccountVolume { string account = 1; string volume = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -157,7 +161,7 @@ message AccountVolume { message TradingRewardCampaignAccountPoints { string account = 1; string points = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -235,3 +239,18 @@ message PerpetualMarketFundingState { string market_id = 1; PerpetualMarketFunding funding = 2; } + +message FullGrantAuthorizations { + string granter = 1; + string total_grant_amount = 2 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + int64 last_delegations_checked_time = 3; + repeated GrantAuthorization grants = 4; +} + +message FullActiveGrant { + string grantee = 1; + ActiveGrant active_grant = 2; +} \ No newline at end of file diff --git a/proto/injective/exchange/v1beta1/proposal.proto b/proto/injective/exchange/v1beta1/proposal.proto index c4b09115..a116cfc8 100644 --- a/proto/injective/exchange/v1beta1/proposal.proto +++ b/proto/injective/exchange/v1beta1/proposal.proto @@ -8,10 +8,12 @@ import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "injective/exchange/v1beta1/exchange.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types"; message SpotMarketParamUpdateProposal { + option (amino.name) = "exchange/SpotMarketParamUpdateProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -22,37 +24,48 @@ message SpotMarketParamUpdateProposal { // maker_fee_rate defines the trade fee rate for makers on the spot market string maker_fee_rate = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // taker_fee_rate defines the trade fee rate for takers on the spot market string taker_fee_rate = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // relayer_fee_share_rate defines the relayer fee share rate for the spot // market string relayer_fee_share_rate = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; MarketStatus status = 9; + + string ticker = 10 [ (gogoproto.nullable) = true ]; + + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 11 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; + + AdminInfo admin_info = 12; } enum ExchangeType { @@ -63,6 +76,7 @@ enum ExchangeType { } message ExchangeEnableProposal { + option (amino.name) = "exchange/ExchangeEnableProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -73,6 +87,7 @@ message ExchangeEnableProposal { } message BatchExchangeModificationProposal { + option (amino.name) = "exchange/BatchExchangeModificationProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -104,6 +119,7 @@ message BatchExchangeModificationProposal { // SpotMarketLaunchProposal defines a SDK message for proposing a new spot // market through governance message SpotMarketLaunchProposal { + option (amino.name) = "exchange/SpotMarketLaunchProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -118,30 +134,37 @@ message SpotMarketLaunchProposal { string quote_denom = 5; // min_price_tick_size defines the minimum tick size of the order's price string min_price_tick_size = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maker_fee_rate defines the fee percentage makers pay when trading string maker_fee_rate = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // taker_fee_rate defines the fee percentage takers pay when trading string taker_fee_rate = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; + // min_notional defines the minimum notional for orders in the market + string min_notional = 10 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + AdminInfo admin_info = 11; } // PerpetualMarketLaunchProposal defines a SDK message for proposing a new // perpetual futures market through governance message PerpetualMarketLaunchProposal { + option (amino.name) = "exchange/PerpetualMarketLaunchProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -163,45 +186,53 @@ message PerpetualMarketLaunchProposal { // initial_margin_ratio defines the initial margin ratio for the derivative // market string initial_margin_ratio = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market string maintenance_margin_ratio = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maker_fee_rate defines the exchange trade fee for makers for the derivative // market string maker_fee_rate = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the exchange trade fee for takers for the derivative // market string taker_fee_rate = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 15 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + AdminInfo admin_info = 16; } message BinaryOptionsMarketLaunchProposal { + option (amino.name) = "exchange/BinaryOptionsMarketLaunchProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -228,31 +259,39 @@ message BinaryOptionsMarketLaunchProposal { string quote_denom = 11; // maker_fee_rate defines the maker fee rate of a binary options market string maker_fee_rate = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the taker fee rate of a derivative market string taker_fee_rate = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market string min_price_tick_size = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market string min_quantity_tick_size = 15 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 16 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + uint32 admin_permissions = 17; } // ExpiryFuturesMarketLaunchProposal defines a SDK message for proposing a new // expiry futures market through governance message ExpiryFuturesMarketLaunchProposal { + option (amino.name) = "exchange/ExpiryFuturesMarketLaunchProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -276,45 +315,54 @@ message ExpiryFuturesMarketLaunchProposal { // initial_margin_ratio defines the initial margin ratio for the derivative // market string initial_margin_ratio = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market string maintenance_margin_ratio = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maker_fee_rate defines the exchange trade fee for makers for the derivative // market string maker_fee_rate = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the exchange trade fee for takers for the derivative // market string taker_fee_rate = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 15 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 16 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; + + AdminInfo admin_info = 17; } message DerivativeMarketParamUpdateProposal { + option (amino.name) = "exchange/DerivativeMarketParamUpdateProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -327,68 +375,85 @@ message DerivativeMarketParamUpdateProposal { // initial_margin_ratio defines the initial margin ratio for the derivative // market string initial_margin_ratio = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market string maintenance_margin_ratio = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // maker_fee_rate defines the exchange trade fee for makers for the derivative // market string maker_fee_rate = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // taker_fee_rate defines the exchange trade fee for takers for the derivative // market string taker_fee_rate = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // relayer_fee_share_rate defines the relayer fee share rate for the // derivative market string relayer_fee_share_rate = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // hourly_interest_rate defines the hourly interest rate string HourlyInterestRate = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // hourly_funding_rate_cap defines the maximum absolute value of the hourly // funding rate string HourlyFundingRateCap = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; MarketStatus status = 13; OracleParams oracle_params = 14; + + string ticker = 15 [ (gogoproto.nullable) = true ]; + + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 16 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; + + AdminInfo admin_info = 17; +} + +message AdminInfo { + string admin = 1; + uint32 admin_permissions = 2; } message MarketForcedSettlementProposal { + option (amino.name) = "exchange/MarketForcedSettlementProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -397,12 +462,13 @@ message MarketForcedSettlementProposal { string description = 2; string market_id = 3; string settlement_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } message UpdateDenomDecimalsProposal { + option (amino.name) = "exchange/UpdateDenomDecimalsProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -413,6 +479,7 @@ message UpdateDenomDecimalsProposal { } message BinaryOptionsMarketParamUpdateProposal { + option (amino.name) = "exchange/BinaryOptionsMarketParamUpdateProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -425,34 +492,34 @@ message BinaryOptionsMarketParamUpdateProposal { // maker_fee_rate defines the exchange trade fee for makers for the derivative // market string maker_fee_rate = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // taker_fee_rate defines the exchange trade fee for takers for the derivative // market string taker_fee_rate = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // relayer_fee_share_rate defines the relayer fee share rate for the // derivative market string relayer_fee_share_rate = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; @@ -462,13 +529,22 @@ message BinaryOptionsMarketParamUpdateProposal { int64 settlement_timestamp = 10; // new price at which market will be settled string settlement_price = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // admin of the market string admin = 12; MarketStatus status = 13; ProviderOracleParams oracle_params = 14; + + string ticker = 15 [ (gogoproto.nullable) = true ]; + + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 16 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = true + ]; } message ProviderOracleParams { @@ -494,6 +570,7 @@ message OracleParams { } message TradingRewardCampaignLaunchProposal { + option (amino.name) = "exchange/TradingRewardCampaignLaunchProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -505,6 +582,7 @@ message TradingRewardCampaignLaunchProposal { } message TradingRewardCampaignUpdateProposal { + option (amino.name) = "exchange/TradingRewardCampaignUpdateProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -520,12 +598,13 @@ message RewardPointUpdate { string account_address = 1; // new_points overwrites the current trading reward points for the account string new_points = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } message TradingRewardPendingPointsUpdateProposal { + option (amino.name) = "exchange/TradingRewardPendingPointsUpdateProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -537,6 +616,7 @@ message TradingRewardPendingPointsUpdateProposal { } message FeeDiscountProposal { + option (amino.name) = "exchange/FeeDiscountProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -547,6 +627,7 @@ message FeeDiscountProposal { } message BatchCommunityPoolSpendProposal { + option (amino.name) = "exchange/BatchCommunityPoolSpendProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -559,6 +640,8 @@ message BatchCommunityPoolSpendProposal { // AtomicMarketOrderFeeMultiplierScheduleProposal defines a SDK message for // proposing new atomic take fee multipliers for specified markets message AtomicMarketOrderFeeMultiplierScheduleProposal { + option (amino.name) = + "exchange/AtomicMarketOrderFeeMultiplierScheduleProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; diff --git a/proto/injective/exchange/v1beta1/query.proto b/proto/injective/exchange/v1beta1/query.proto index cb89c00e..e74a687c 100644 --- a/proto/injective/exchange/v1beta1/query.proto +++ b/proto/injective/exchange/v1beta1/query.proto @@ -416,6 +416,27 @@ service Query { option (google.api.http).get = "/injective/exchange/v1beta1/atomic_order_fee_multiplier"; } + + // Retrieves the active stake grant for a grantee + rpc ActiveStakeGrant(QueryActiveStakeGrantRequest) + returns (QueryActiveStakeGrantResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/active_stake_grant/{grantee}"; + } + + // Retrieves the grant authorization amount for a granter and grantee + rpc GrantAuthorization(QueryGrantAuthorizationRequest) + returns (QueryGrantAuthorizationResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/grant_authorization/{granter}/{grantee}"; + } + + // Retrieves the grant authorization amount for a granter and grantee + rpc GrantAuthorizations(QueryGrantAuthorizationsRequest) + returns (QueryGrantAuthorizationsResponse) { + option (google.api.http).get = + "/injective/exchange/v1beta1/grant_authorizations/{granter}"; + } } message Subaccount { @@ -594,11 +615,11 @@ message QuerySpotOrderbookRequest { uint64 limit = 2; OrderSide order_side = 3; string limit_cumulative_notional = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; string limit_cumulative_quantity = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -687,22 +708,23 @@ message QueryAccountAddressSpotOrdersRequest { message TrimmedSpotLimitOrder { // price of the order string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity of the order string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // the amount of the quantity remaining fillable string fillable = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // true if the order is a buy bool isBuy = 4; string order_hash = 5; + string cid = 6; } // QueryTraderSpotOrdersResponse is the response type for the @@ -729,17 +751,17 @@ message QuerySpotMidPriceAndTOBRequest { message QuerySpotMidPriceAndTOBResponse { // mid price of the market string mid_price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best buy price of the market string best_buy_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best sell price of the market string best_sell_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -756,17 +778,17 @@ message QueryDerivativeMidPriceAndTOBRequest { message QueryDerivativeMidPriceAndTOBResponse { // mid price of the market string mid_price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best buy price of the market string best_buy_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // best sell price of the market string best_sell_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -778,7 +800,7 @@ message QueryDerivativeOrderbookRequest { string market_id = 1; uint64 limit = 2; string limit_cumulative_notional = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -812,12 +834,12 @@ message QueryTraderSpotOrdersToCancelUpToAmountRequest { string subaccount_id = 2; // the base amount to cancel (free up) string base_amount = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // the quote amount to cancel (free up) string quote_amount = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // The cancellation strategy @@ -825,7 +847,7 @@ message QueryTraderSpotOrdersToCancelUpToAmountRequest { // The reference price for the cancellation strategy, e.g. mid price or mark // price string reference_price = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -839,7 +861,7 @@ message QueryTraderDerivativeOrdersToCancelUpToAmountRequest { string subaccount_id = 2; // the quote amount to cancel (free up) string quote_amount = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // The cancellation strategy @@ -847,7 +869,7 @@ message QueryTraderDerivativeOrdersToCancelUpToAmountRequest { // The reference price for the cancellation strategy, e.g. mid price or mark // price string reference_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; } @@ -873,28 +895,29 @@ message QueryAccountAddressDerivativeOrdersRequest { message TrimmedDerivativeLimitOrder { // price of the order string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity of the order string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // margin of the order string margin = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // the amount of the quantity remaining fillable string fillable = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // true if the order is a buy bool isBuy = 5 [ (gogoproto.jsontag) = "isBuy" ]; // ensure omitempty is not in jsontag string order_hash = 6; + string cid = 7; } // QueryTraderDerivativeOrdersResponse is the response type for the @@ -942,12 +965,12 @@ message QueryDerivativeMarketsRequest { message PriceLevel { string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -964,7 +987,7 @@ message FullDerivativeMarket { ExpiryFuturesMarketInfo futures_info = 3; } string mark_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -1047,15 +1070,15 @@ message QuerySubaccountPositionInMarketResponse { message EffectivePosition { bool is_long = 1; string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string entry_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string effective_margin = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -1135,7 +1158,7 @@ message QueryTradeRewardPointsRequest { // Query/TradeRewardPoints RPC method. message QueryTradeRewardPointsResponse { repeated string account_trade_reward_points = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -1150,12 +1173,12 @@ message QueryTradeRewardCampaignResponse { TradingRewardCampaignInfo trading_reward_campaign_info = 1; repeated CampaignRewardPool trading_reward_pool_campaign_schedule = 2; string total_trade_reward_points = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; repeated CampaignRewardPool pending_trading_reward_pool_campaign_schedule = 4; repeated string pending_total_trade_reward_points = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -1206,23 +1229,23 @@ message BalanceMismatch { string subaccountId = 1; string denom = 2; string available = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string total = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string balance_hold = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string expected_total = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string difference = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -1241,15 +1264,15 @@ message BalanceWithMarginHold { string subaccountId = 1; string denom = 2; string available = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string total = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string balance_hold = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -1330,7 +1353,7 @@ message QueryMarketVolatilityRequest { // Query/MarketVolatility RPC method. message QueryMarketVolatilityResponse { string volatility = 1 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec" ]; + [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec" ]; injective.oracle.v1beta1.MetadataStatistics history_metadata = 2; repeated TradeRecord raw_history = 3; } @@ -1356,22 +1379,22 @@ message QueryTraderDerivativeConditionalOrdersRequest { message TrimmedDerivativeConditionalOrder { // price of the order string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // quantity of the order string quantity = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // margin of the order string margin = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // price to trigger the order string triggerPrice = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // true if the order is a buy @@ -1379,6 +1402,7 @@ message TrimmedDerivativeConditionalOrder { [ (gogoproto.jsontag) = "isBuy" ]; // ensure omitempty is not in jsontag bool isLimit = 6 [ (gogoproto.jsontag) = "isLimit" ]; string order_hash = 7; + string cid = 8; } // QueryTraderDerivativeOrdersResponse is the response type for the @@ -1391,7 +1415,36 @@ message QueryMarketAtomicExecutionFeeMultiplierRequest { string market_id = 1; } message QueryMarketAtomicExecutionFeeMultiplierResponse { string multiplier = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message QueryActiveStakeGrantRequest { string grantee = 1; } + +message QueryActiveStakeGrantResponse { + ActiveGrant grant = 1; + EffectiveGrant effective_grant = 2; +} + +message QueryGrantAuthorizationRequest { + string granter = 1; + string grantee = 2; +} + +message QueryGrantAuthorizationResponse { + string amount = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; -} \ No newline at end of file +} + +message QueryGrantAuthorizationsRequest { string granter = 1; } + +message QueryGrantAuthorizationsResponse { + string total_grant_amount = 1 [ + (gogoproto.customtype) = "cosmossdk.io/math.Int", + (gogoproto.nullable) = false + ]; + repeated GrantAuthorization grants = 2; +} diff --git a/proto/injective/exchange/v1beta1/tx.proto b/proto/injective/exchange/v1beta1/tx.proto index 6a8de7ba..b282f4da 100644 --- a/proto/injective/exchange/v1beta1/tx.proto +++ b/proto/injective/exchange/v1beta1/tx.proto @@ -8,11 +8,14 @@ import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "injective/exchange/v1beta1/exchange.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/exchange/types"; // Msg defines the exchange Msg service. service Msg { + option (cosmos.msg.v1.service) = true; + // Deposit defines a method for transferring coins from the sender's bank // balance into the subaccount's exchange deposits rpc Deposit(MsgDeposit) returns (MsgDepositResponse); @@ -137,6 +140,10 @@ service Msg { rpc IncreasePositionMargin(MsgIncreasePositionMargin) returns (MsgIncreasePositionMarginResponse); + // DecreasePositionMargin defines a method for decreasing margin of a position + rpc DecreasePositionMargin(MsgDecreasePositionMargin) + returns (MsgDecreasePositionMarginResponse); + // RewardsOptOut defines a method for opting out of rewards rpc RewardsOptOut(MsgRewardsOptOut) returns (MsgRewardsOptOutResponse); @@ -145,14 +152,110 @@ service Msg { rpc AdminUpdateBinaryOptionsMarket(MsgAdminUpdateBinaryOptionsMarket) returns (MsgAdminUpdateBinaryOptionsMarketResponse); - // - rpc ReclaimLockedFunds(MsgReclaimLockedFunds) - returns (MsgReclaimLockedFundsResponse); - rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // UpdateSpotMarket modifies certain spot market fields (admin only) + rpc UpdateSpotMarket(MsgUpdateSpotMarket) + returns (MsgUpdateSpotMarketResponse); + + // UpdateDerivativeMarket modifies certain derivative market fields (admin + // only) + rpc UpdateDerivativeMarket(MsgUpdateDerivativeMarket) + returns (MsgUpdateDerivativeMarketResponse); + + rpc AuthorizeStakeGrants(MsgAuthorizeStakeGrants) + returns (MsgAuthorizeStakeGrantsResponse); + + rpc ActivateStakeGrant(MsgActivateStakeGrant) + returns (MsgActivateStakeGrantResponse); +} + +message MsgUpdateSpotMarket { + option (amino.name) = "exchange/MsgUpdateSpotMarket"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "admin"; + + // current admin address of the associated market + string admin = 1; + + // id of the market to be updated + string market_id = 2; + + // (optional) updated ticker value + string new_ticker = 3; + + // (optional) updated min price tick size value + string new_min_price_tick_size = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated min quantity tick size value + string new_min_quantity_tick_size = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated min notional + string new_min_notional = 6 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +message MsgUpdateSpotMarketResponse {} + +message MsgUpdateDerivativeMarket { + option (amino.name) = "exchange/MsgUpdateDerivativeMarket"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "admin"; + + // current admin address of the associated market + string admin = 1; + + // id of the market to be updated + string market_id = 2; + + // (optional) updated value for ticker + string new_ticker = 3; + + // (optional) updated value for min_price_tick_size + string new_min_price_tick_size = 4 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated value min_quantity_tick_size + string new_min_quantity_tick_size = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated min notional + string new_min_notional = 6 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated value for initial_margin_ratio + string new_initial_margin_ratio = 7 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + + // (optional) updated value for maintenance_margin_ratio + string new_maintenance_margin_ratio = 8 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; } +message MsgUpdateDerivativeMarketResponse {} + message MsgUpdateParams { + option (amino.name) = "exchange/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. @@ -169,6 +272,7 @@ message MsgUpdateParamsResponse {} // MsgDeposit defines a SDK message for transferring coins from the sender's // bank balance into the subaccount's exchange deposits message MsgDeposit { + option (amino.name) = "exchange/MsgDeposit"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -186,6 +290,7 @@ message MsgDepositResponse {} // MsgWithdraw defines a SDK message for withdrawing coins from a subaccount's // deposits to the user's bank balance message MsgWithdraw { + option (amino.name) = "exchange/MsgWithdraw"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -202,6 +307,7 @@ message MsgWithdrawResponse {} // MsgCreateSpotLimitOrder defines a SDK message for creating a new spot limit // order. message MsgCreateSpotLimitOrder { + option (amino.name) = "exchange/MsgCreateSpotLimitOrder"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -217,11 +323,13 @@ message MsgCreateSpotLimitOrderResponse { option (gogoproto.goproto_getters) = false; string order_hash = 1; + string cid = 2; } // MsgBatchCreateSpotLimitOrders defines a SDK message for creating a new batch // of spot limit orders. message MsgBatchCreateSpotLimitOrders { + option (amino.name) = "exchange/MsgBatchCreateSpotLimitOrders"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -237,11 +345,14 @@ message MsgBatchCreateSpotLimitOrdersResponse { option (gogoproto.goproto_getters) = false; repeated string order_hashes = 1; + repeated string created_orders_cids = 2; + repeated string failed_orders_cids = 3; } // MsgInstantSpotMarketLaunch defines a SDK message for creating a new spot // market by paying listing fee without governance message MsgInstantSpotMarketLaunch { + option (amino.name) = "exchange/MsgInstantSpotMarketLaunch"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -255,13 +366,19 @@ message MsgInstantSpotMarketLaunch { string quote_denom = 4; // min_price_tick_size defines the minimum tick size of the order's price string min_price_tick_size = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 7 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -273,6 +390,7 @@ message MsgInstantSpotMarketLaunchResponse {} // MsgInstantPerpetualMarketLaunch defines a SDK message for creating a new // perpetual futures market by paying listing fee without governance message MsgInstantPerpetualMarketLaunch { + option (amino.name) = "exchange/MsgInstantPerpetualMarketLaunch"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -293,38 +411,44 @@ message MsgInstantPerpetualMarketLaunch { // maker_fee_rate defines the trade fee rate for makers on the perpetual // market string maker_fee_rate = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the trade fee rate for takers on the perpetual // market string taker_fee_rate = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // initial_margin_ratio defines the initial margin ratio for the perpetual // market string initial_margin_ratio = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maintenance_margin_ratio defines the maintenance margin ratio for the // perpetual market string maintenance_margin_ratio = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 14 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -336,6 +460,7 @@ message MsgInstantPerpetualMarketLaunchResponse {} // MsgInstantBinaryOptionsMarketLaunch defines a SDK message for creating a new // perpetual futures market by paying listing fee without governance message MsgInstantBinaryOptionsMarketLaunch { + option (amino.name) = "exchange/MsgInstantBinaryOptionsMarketLaunch"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -354,14 +479,14 @@ message MsgInstantBinaryOptionsMarketLaunch { // maker_fee_rate defines the trade fee rate for makers on the perpetual // market string maker_fee_rate = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the trade fee rate for takers on the perpetual // market string taker_fee_rate = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // expiration timestamp @@ -375,13 +500,19 @@ message MsgInstantBinaryOptionsMarketLaunch { // min_price_tick_size defines the minimum tick size that the price and margin // required for orders in the market string min_price_tick_size = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the quantity // required for orders in the market string min_quantity_tick_size = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 15 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -393,6 +524,7 @@ message MsgInstantBinaryOptionsMarketLaunchResponse {} // MsgInstantExpiryFuturesMarketLaunch defines a SDK message for creating a new // expiry futures market by paying listing fee without governance message MsgInstantExpiryFuturesMarketLaunch { + option (amino.name) = "exchange/MsgInstantExpiryFuturesMarketLaunch"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -415,37 +547,43 @@ message MsgInstantExpiryFuturesMarketLaunch { // maker_fee_rate defines the trade fee rate for makers on the expiry futures // market string maker_fee_rate = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // taker_fee_rate defines the trade fee rate for takers on the expiry futures // market string taker_fee_rate = 10 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // initial_margin_ratio defines the initial margin ratio for the derivative // market string initial_margin_ratio = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // maintenance_margin_ratio defines the maintenance margin ratio for the // derivative market string maintenance_margin_ratio = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_price_tick_size defines the minimum tick size of the order's price and // margin string min_price_tick_size = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // min_quantity_tick_size defines the minimum tick size of the order's // quantity string min_quantity_tick_size = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // min_notional defines the minimum notional (in quote asset) required for + // orders in the market + string min_notional = 15 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -457,6 +595,7 @@ message MsgInstantExpiryFuturesMarketLaunchResponse {} // MsgCreateSpotMarketOrder defines a SDK message for creating a new spot market // order. message MsgCreateSpotMarketOrder { + option (amino.name) = "exchange/MsgCreateSpotMarketOrder"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -474,6 +613,8 @@ message MsgCreateSpotMarketOrderResponse { string order_hash = 1; SpotMarketOrderResults results = 2 [ (gogoproto.nullable) = true ]; + + string cid = 3; } message SpotMarketOrderResults { @@ -481,21 +622,22 @@ message SpotMarketOrderResults { option (gogoproto.goproto_getters) = false; string quantity = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string fee = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } // A Cosmos-SDK MsgCreateDerivativeLimitOrder message MsgCreateDerivativeLimitOrder { + option (amino.name) = "exchange/MsgCreateDerivativeLimitOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -510,10 +652,12 @@ message MsgCreateDerivativeLimitOrderResponse { option (gogoproto.goproto_getters) = false; string order_hash = 1; + string cid = 2; } // A Cosmos-SDK MsgCreateBinaryOptionsLimitOrder message MsgCreateBinaryOptionsLimitOrder { + option (amino.name) = "exchange/MsgCreateBinaryOptionsLimitOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -528,10 +672,12 @@ message MsgCreateBinaryOptionsLimitOrderResponse { option (gogoproto.goproto_getters) = false; string order_hash = 1; + string cid = 2; } // A Cosmos-SDK MsgBatchCreateDerivativeLimitOrders message MsgBatchCreateDerivativeLimitOrders { + option (amino.name) = "exchange/MsgBatchCreateDerivativeLimitOrders"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -546,10 +692,13 @@ message MsgBatchCreateDerivativeLimitOrdersResponse { option (gogoproto.goproto_getters) = false; repeated string order_hashes = 1; + repeated string created_orders_cids = 2; + repeated string failed_orders_cids = 3; } // MsgCancelSpotOrder defines the Msg/CancelSpotOrder response type. message MsgCancelSpotOrder { + option (amino.name) = "exchange/MsgCancelSpotOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -565,6 +714,7 @@ message MsgCancelSpotOrderResponse {} // MsgBatchCancelSpotOrders defines the Msg/BatchCancelSpotOrders response type. message MsgBatchCancelSpotOrders { + option (amino.name) = "exchange/MsgBatchCancelSpotOrders"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -584,6 +734,7 @@ message MsgBatchCancelSpotOrdersResponse { // MsgBatchCancelBinaryOptionsOrders defines the // Msg/BatchCancelBinaryOptionsOrders response type. message MsgBatchCancelBinaryOptionsOrders { + option (amino.name) = "exchange/MsgBatchCancelBinaryOptionsOrders"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -602,6 +753,7 @@ message MsgBatchCancelBinaryOptionsOrdersResponse { // MsgBatchUpdateOrders defines the Msg/BatchUpdateOrders response type. message MsgBatchUpdateOrders { + option (amino.name) = "exchange/MsgBatchUpdateOrders"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -635,10 +787,17 @@ message MsgBatchUpdateOrdersResponse { repeated string derivative_order_hashes = 4; repeated bool binary_options_cancel_success = 5; repeated string binary_options_order_hashes = 6; + repeated string created_spot_orders_cids = 7; + repeated string failed_spot_orders_cids = 8; + repeated string created_derivative_orders_cids = 9; + repeated string failed_derivative_orders_cids = 10; + repeated string created_binary_options_orders_cids = 11; + repeated string failed_binary_options_orders_cids = 12; } // A Cosmos-SDK MsgCreateDerivativeMarketOrder message MsgCreateDerivativeMarketOrder { + option (amino.name) = "exchange/MsgCreateDerivativeMarketOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -655,6 +814,8 @@ message MsgCreateDerivativeMarketOrderResponse { string order_hash = 1; DerivativeMarketOrderResults results = 2 [ (gogoproto.nullable) = true ]; + + string cid = 3; } message DerivativeMarketOrderResults { @@ -662,26 +823,27 @@ message DerivativeMarketOrderResults { option (gogoproto.goproto_getters) = false; string quantity = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string fee = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; PositionDelta position_delta = 4 [ (gogoproto.nullable) = false ]; string payout = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } // A Cosmos-SDK MsgCreateBinaryOptionsMarketOrder message MsgCreateBinaryOptionsMarketOrder { + option (amino.name) = "exchange/MsgCreateBinaryOptionsMarketOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -698,10 +860,13 @@ message MsgCreateBinaryOptionsMarketOrderResponse { string order_hash = 1; DerivativeMarketOrderResults results = 2 [ (gogoproto.nullable) = true ]; + + string cid = 3; } // MsgCancelDerivativeOrder defines the Msg/CancelDerivativeOrder response type. message MsgCancelDerivativeOrder { + option (amino.name) = "exchange/MsgCancelDerivativeOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -720,6 +885,7 @@ message MsgCancelDerivativeOrderResponse {} // MsgCancelBinaryOptionsOrder defines the Msg/CancelBinaryOptionsOrder response // type. message MsgCancelBinaryOptionsOrder { + option (amino.name) = "exchange/MsgCancelBinaryOptionsOrder"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -746,6 +912,7 @@ message OrderData { // MsgBatchCancelDerivativeOrders defines the Msg/CancelDerivativeOrders // response type. message MsgBatchCancelDerivativeOrders { + option (amino.name) = "exchange/MsgBatchCancelDerivativeOrders"; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -764,6 +931,7 @@ message MsgBatchCancelDerivativeOrdersResponse { // A Cosmos-SDK MsgSubaccountTransfer message MsgSubaccountTransfer { + option (amino.name) = "exchange/MsgSubaccountTransfer"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -778,6 +946,7 @@ message MsgSubaccountTransferResponse {} // A Cosmos-SDK MsgExternalTransfer message MsgExternalTransfer { + option (amino.name) = "exchange/MsgExternalTransfer"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -791,6 +960,7 @@ message MsgExternalTransferResponse {} // A Cosmos-SDK MsgLiquidatePosition message MsgLiquidatePosition { + option (amino.name) = "exchange/MsgLiquidatePosition"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -806,6 +976,7 @@ message MsgLiquidatePositionResponse {} // A Cosmos-SDK MsgEmergencySettleMarket message MsgEmergencySettleMarket { + option (amino.name) = "exchange/MsgEmergencySettleMarket"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -819,6 +990,7 @@ message MsgEmergencySettleMarketResponse {} // A Cosmos-SDK MsgIncreasePositionMargin message MsgIncreasePositionMargin { + option (amino.name) = "exchange/MsgIncreasePositionMargin"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -827,17 +999,39 @@ message MsgIncreasePositionMargin { string market_id = 4; // amount defines the amount of margin to add to the position string amount = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } // MsgIncreasePositionMarginResponse defines the Msg/IncreasePositionMargin // response type. -message MsgIncreasePositionMarginResponse {} +message MsgIncreasePositionMarginResponse { +} // A Cosmos-SDK MsgIncreasePositionMargin + +// A Cosmos-SDK MsgDecreasePositionMargin +message MsgDecreasePositionMargin { + option (amino.name) = "exchange/MsgDecreasePositionMargin"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + string source_subaccount_id = 2; + string destination_subaccount_id = 3; + string market_id = 4; + // amount defines the amount of margin to withdraw from the position + string amount = 5 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; +} + +// MsgDecreasePositionMarginResponse defines the Msg/MsgDecreasePositionMargin +// response type. +message MsgDecreasePositionMarginResponse {} // MsgPrivilegedExecuteContract defines the Msg/Exec message type message MsgPrivilegedExecuteContract { + option (amino.name) = "exchange/MsgPrivilegedExecuteContract"; option (cosmos.msg.v1.signer) = "sender"; option (gogoproto.equal) = false; @@ -868,13 +1062,21 @@ message MsgPrivilegedExecuteContractResponse { } // A Cosmos-SDK MsgRewardsOptOut -message MsgRewardsOptOut { string sender = 1; } +message MsgRewardsOptOut { + option (amino.name) = "exchange/MsgRewardsOptOut"; + option (cosmos.msg.v1.signer) = "sender"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; +} // MsgRewardsOptOutResponse defines the Msg/RewardsOptOut response type. message MsgRewardsOptOutResponse {} // A Cosmos-SDK MsgReclaimLockedFunds message MsgReclaimLockedFunds { + option (amino.name) = "exchange/MsgReclaimLockedFunds"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -907,13 +1109,14 @@ message MsgSignDoc { // MsgAdminUpdateBinaryOptionsMarket is used by the market Admin to operate the // market message MsgAdminUpdateBinaryOptionsMarket { + option (amino.name) = "exchange/MsgAdminUpdateBinaryOptionsMarket"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; string market_id = 2; // new price at which market will be settled string settlement_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = true ]; // expiration timestamp @@ -927,3 +1130,25 @@ message MsgAdminUpdateBinaryOptionsMarket { // MsgAdminUpdateBinaryOptionsMarketResponse is the response for // AdminUpdateBinaryOptionsMarket rpc method message MsgAdminUpdateBinaryOptionsMarketResponse {} + +// MsgAuthorizeStakeGrants grants stakes to grantees. +message MsgAuthorizeStakeGrants { + option (amino.name) = "exchange/MsgAuthorizeStakeGrants"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + repeated GrantAuthorization grants = 2; +} + +message MsgAuthorizeStakeGrantsResponse {} + +// MsgActivateStakeGrant allows a grantee to activate a stake grant. +message MsgActivateStakeGrant { + option (amino.name) = "exchange/MsgActivateStakeGrant"; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + string granter = 2; +} + +message MsgActivateStakeGrantResponse {} \ No newline at end of file diff --git a/proto/injective/insurance/v1beta1/insurance.proto b/proto/injective/insurance/v1beta1/insurance.proto index 9999b2d6..e4e2ada5 100644 --- a/proto/injective/insurance/v1beta1/insurance.proto +++ b/proto/injective/insurance/v1beta1/insurance.proto @@ -6,11 +6,13 @@ import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; import "cosmos/base/v1beta1/coin.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/insurance/types"; message Params { option (gogoproto.equal) = true; + option (amino.name) = "insurance/Params"; // default_redemption_notice_period_duration defines the default minimum // notice period duration that must pass after an underwriter sends a @@ -37,12 +39,12 @@ message InsuranceFund { ]; // balance of fund string balance = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // total share tokens minted string total_share = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // marketID of the derivative market diff --git a/proto/injective/insurance/v1beta1/tx.proto b/proto/injective/insurance/v1beta1/tx.proto index 22e33993..88410ff4 100644 --- a/proto/injective/insurance/v1beta1/tx.proto +++ b/proto/injective/insurance/v1beta1/tx.proto @@ -7,11 +7,13 @@ import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "injective/insurance/v1beta1/insurance.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/insurance/types"; // Msg defines the insurance Msg service. service Msg { + option (cosmos.msg.v1.service) = true; // CreateInsuranceFund defines a method for creating an insurance fund rpc CreateInsuranceFund(MsgCreateInsuranceFund) @@ -32,6 +34,7 @@ service Msg { // MsgCreateInsuranceFund a message to create an insurance fund for a derivative // market. message MsgCreateInsuranceFund { + option (amino.name) = "insurance/MsgCreateInsuranceFund"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -63,6 +66,7 @@ message MsgCreateInsuranceFundResponse {} // MsgUnderwrite defines a message for depositing coins to underwrite an // insurance fund message MsgUnderwrite { + option (amino.name) = "insurance/MsgUnderwrite"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -81,6 +85,7 @@ message MsgUnderwriteResponse {} // MsgRequestRedemption defines a message for requesting a redemption of the // sender's insurance fund tokens message MsgRequestRedemption { + option (amino.name) = "insurance/MsgRequestRedemption"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -97,6 +102,7 @@ message MsgRequestRedemption { message MsgRequestRedemptionResponse {} message MsgUpdateParams { + option (amino.name) = "insurance/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. diff --git a/proto/injective/ocr/v1beta1/ocr.proto b/proto/injective/ocr/v1beta1/ocr.proto index 48bfe7cc..8f7c2a5d 100644 --- a/proto/injective/ocr/v1beta1/ocr.proto +++ b/proto/injective/ocr/v1beta1/ocr.proto @@ -5,10 +5,12 @@ 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 @@ -62,25 +64,25 @@ message ModuleParams { // lowest answer the median of a report is allowed to be string min_answer = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (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) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // Fixed LINK reward for each observer string link_per_observation = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // Fixed LINK reward for transmitter string link_per_transmission = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; @@ -130,6 +132,7 @@ message ContractConfig { } message SetConfigProposal { + option (amino.name) = "ocr/SetConfigProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -161,25 +164,25 @@ message FeedProperties { // lowest answer the median of a report is allowed to be string min_answer = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (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) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // Fixed LINK reward for each observer string link_per_observation = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // Fixed LINK reward for transmitter string link_per_transmission = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; @@ -192,6 +195,7 @@ message FeedProperties { } message SetBatchConfigProposal { + option (amino.name) = "ocr/SetBatchConfigProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -230,7 +234,7 @@ message Payee { // time timestamp message Transmission { string answer = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; int64 observations_timestamp = 2; // when were observations made offchain @@ -246,7 +250,7 @@ message Report { int64 observations_timestamp = 1; bytes observers = 2; // ith element is the index of the ith observer repeated string observations = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // ith element is the ith observation } @@ -269,12 +273,12 @@ message EventOraclePaid { message EventAnswerUpdated { string current = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string round_id = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; @@ -284,7 +288,7 @@ message EventAnswerUpdated { message EventNewRound { string round_id = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; @@ -304,13 +308,13 @@ message EventNewTransmission { string feed_id = 1; uint32 aggregator_round_id = 2; string answer = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string transmitter = 4; int64 observations_timestamp = 5; repeated string observations = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes observers = 7; diff --git a/proto/injective/ocr/v1beta1/tx.proto b/proto/injective/ocr/v1beta1/tx.proto index fa84a912..1da0a80b 100644 --- a/proto/injective/ocr/v1beta1/tx.proto +++ b/proto/injective/ocr/v1beta1/tx.proto @@ -6,11 +6,14 @@ 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 @@ -39,6 +42,7 @@ service Msg { } message MsgCreateFeed { + option (amino.name) = "ocr/MsgCreateFeed"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -51,6 +55,7 @@ message MsgCreateFeed { message MsgCreateFeedResponse {} message MsgUpdateFeed { + option (amino.name) = "ocr/MsgUpdateFeed"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -69,13 +74,13 @@ message MsgUpdateFeed { // Fixed LINK reward for each observer string link_per_observation = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = true ]; // Fixed LINK reward for transmitter string link_per_transmission = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = true ]; @@ -92,6 +97,7 @@ message MsgUpdateFeed { message MsgUpdateFeedResponse {} message MsgTransmit { + option (amino.name) = "ocr/MsgTransmit"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -111,6 +117,7 @@ message MsgTransmit { message MsgTransmitResponse {} message MsgFundFeedRewardPool { + option (amino.name) = "ocr/MsgFundFeedRewardPool"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -124,6 +131,7 @@ message MsgFundFeedRewardPool { message MsgFundFeedRewardPoolResponse {} message MsgWithdrawFeedRewardPool { + option (amino.name) = "ocr/MsgWithdrawFeedRewardPool"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -137,6 +145,7 @@ message MsgWithdrawFeedRewardPool { message MsgWithdrawFeedRewardPoolResponse {} message MsgSetPayees { + option (amino.name) = "ocr/MsgSetPayees"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -154,6 +163,7 @@ message MsgSetPayees { message MsgSetPayeesResponse {} message MsgTransferPayeeship { + option (amino.name) = "ocr/MsgTransferPayeeship"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -170,6 +180,7 @@ message MsgTransferPayeeship { message MsgTransferPayeeshipResponse {} message MsgAcceptPayeeship { + option (amino.name) = "ocr/MsgAcceptPayeeship"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -185,6 +196,7 @@ message MsgAcceptPayeeship { message MsgAcceptPayeeshipResponse {} message MsgUpdateParams { + option (amino.name) = "ocr/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. diff --git a/proto/injective/oracle/v1beta1/events.proto b/proto/injective/oracle/v1beta1/events.proto index 5db1c22a..82c151fc 100644 --- a/proto/injective/oracle/v1beta1/events.proto +++ b/proto/injective/oracle/v1beta1/events.proto @@ -10,7 +10,7 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod message SetChainlinkPriceEvent { string feed_id = 1; string answer = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 timestamp = 3; @@ -21,7 +21,7 @@ message SetBandPriceEvent { string relayer = 1; string symbol = 2; string price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 resolve_time = 4; @@ -32,7 +32,7 @@ message SetBandIBCPriceEvent { string relayer = 1; repeated string symbols = 2; repeated string prices = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 resolve_time = 4; @@ -60,7 +60,7 @@ message SetPriceFeedPriceEvent { // price defines the price of the oracle base and quote string price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -70,7 +70,7 @@ message SetProviderPriceEvent { string relayer = 2; string symbol = 3; string price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -78,10 +78,12 @@ message SetProviderPriceEvent { message SetCoinbasePriceEvent { string symbol = 1; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 timestamp = 3; } +message EventSetStorkPrices { repeated StorkPriceState prices = 1; } + message EventSetPythPrices { repeated PythPriceState prices = 1; } diff --git a/proto/injective/oracle/v1beta1/genesis.proto b/proto/injective/oracle/v1beta1/genesis.proto index 864afc83..8e2665dc 100644 --- a/proto/injective/oracle/v1beta1/genesis.proto +++ b/proto/injective/oracle/v1beta1/genesis.proto @@ -38,6 +38,10 @@ message GenesisState { repeated ProviderState provider_states = 14; repeated PythPriceState pyth_price_states = 15; + + repeated StorkPriceState stork_price_states = 16; + + repeated string stork_publishers = 17; } message CalldataRecord { diff --git a/proto/injective/oracle/v1beta1/oracle.proto b/proto/injective/oracle/v1beta1/oracle.proto index 47ea13dd..2b9e2a84 100644 --- a/proto/injective/oracle/v1beta1/oracle.proto +++ b/proto/injective/oracle/v1beta1/oracle.proto @@ -3,11 +3,13 @@ package injective.oracle.v1beta1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/oracle/types"; option (gogoproto.goproto_registration) = true; message Params { + option (amino.name) = "oracle/Params"; option (gogoproto.equal) = true; string pyth_contract = 1; @@ -26,6 +28,7 @@ enum OracleType { Pyth = 9; BandIBC = 10; Provider = 11; + Stork = 12; } message OracleInfo { @@ -36,7 +39,7 @@ message OracleInfo { message ChainlinkPriceState { string feed_id = 1; string answer = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 timestamp = 3; @@ -46,7 +49,7 @@ message ChainlinkPriceState { message BandPriceState { string symbol = 1; string rate = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; uint64 resolve_time = 3; @@ -83,7 +86,7 @@ message PriceFeedInfo { message PriceFeedPrice { string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -101,14 +104,28 @@ message CoinbasePriceState { PriceState price_state = 5 [ (gogoproto.nullable) = false ]; } +message StorkPriceState { + // timestamp of the when the price was signed by stork + uint64 timestamp = 1; + // the symbol of the price, e.g. BTC + string symbol = 2; + // the value of the price scaled by 1e18 + string value = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + // the price state + PriceState price_state = 5 [ (gogoproto.nullable) = false ]; +} + message PriceState { string price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string cumulative_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; @@ -118,15 +135,15 @@ message PriceState { message PythPriceState { string price_id = 1; string ema_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string ema_conf = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string conf = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 publish_time = 5; @@ -206,7 +223,7 @@ message PriceRecord { int64 timestamp = 1; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -224,13 +241,13 @@ message MetadataStatistics { // (price * quantity) / ∑ quantity For oracle prices, the mean is computed // over the price records ∑ (price) / prices_count string mean = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // TWAP refers to the time-weighted average price which equals ∑ (price_i * // ∆t_i) / ∑ ∆t_i where ∆t_i = t_i - t_{i-1} string twap = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // FirstTimestamp is the timestamp of the oldest record considered @@ -239,17 +256,17 @@ message MetadataStatistics { int64 last_timestamp = 6; // MinPrice refers to the smallest individual raw price considered string min_price = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // MaxPrice refers to the largest individual raw price considered string max_price = 8 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // MedianPrice refers to the median individual raw price considered string median_price = 9 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -265,3 +282,18 @@ message PriceAttestation { int32 ema_expo = 7; int64 publish_time = 8; } + +message AssetPair { + string asset_id = 1; + repeated SignedPriceOfAssetPair signed_prices = 2; +} + +message SignedPriceOfAssetPair { + string publisher_key = 1; + uint64 timestamp = 2; + string price = 3 [ + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", + (gogoproto.nullable) = false + ]; + bytes signature = 4; +} diff --git a/proto/injective/oracle/v1beta1/proposal.proto b/proto/injective/oracle/v1beta1/proposal.proto index 925d786d..2c149cf7 100644 --- a/proto/injective/oracle/v1beta1/proposal.proto +++ b/proto/injective/oracle/v1beta1/proposal.proto @@ -5,10 +5,12 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; import "injective/oracle/v1beta1/oracle.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/oracle/types"; message GrantBandOraclePrivilegeProposal { + option (amino.name) = "oracle/GrantBandOraclePrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -20,6 +22,7 @@ message GrantBandOraclePrivilegeProposal { } message RevokeBandOraclePrivilegeProposal { + option (amino.name) = "oracle/RevokeBandOraclePrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -31,6 +34,7 @@ message RevokeBandOraclePrivilegeProposal { } message GrantPriceFeederPrivilegeProposal { + option (amino.name) = "oracle/GrantPriceFeederPrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -44,6 +48,7 @@ message GrantPriceFeederPrivilegeProposal { } message GrantProviderPrivilegeProposal { + option (amino.name) = "oracle/GrantProviderPrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -56,6 +61,7 @@ message GrantProviderPrivilegeProposal { } message RevokeProviderPrivilegeProposal { + option (amino.name) = "oracle/RevokeProviderPrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -68,6 +74,7 @@ message RevokeProviderPrivilegeProposal { } message RevokePriceFeederPrivilegeProposal { + option (amino.name) = "oracle/RevokePriceFeederPrivilegeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -81,6 +88,7 @@ message RevokePriceFeederPrivilegeProposal { } message AuthorizeBandOracleRequestProposal { + option (amino.name) = "oracle/AuthorizeBandOracleRequestProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -92,6 +100,7 @@ message AuthorizeBandOracleRequestProposal { } message UpdateBandOracleRequestProposal { + option (amino.name) = "oracle/UpdateBandOracleRequestProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -104,6 +113,7 @@ message UpdateBandOracleRequestProposal { } message EnableBandIBCProposal { + option (amino.name) = "oracle/EnableBandIBCProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -113,4 +123,30 @@ message EnableBandIBCProposal { string description = 2; BandIBCParams band_ibc_params = 3 [ (gogoproto.nullable) = false ]; -} \ No newline at end of file +} + +message GrantStorkPublisherPrivilegeProposal { + option (amino.name) = "oracle/GrantStorkPublisherPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + + repeated string stork_publishers = 3; +} + +message RevokeStorkPublisherPrivilegeProposal { + option (amino.name) = "oracle/RevokeStorkPublisherPrivilegeProposal"; + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + + repeated string stork_publishers = 3; +} diff --git a/proto/injective/oracle/v1beta1/query.proto b/proto/injective/oracle/v1beta1/query.proto index 4673ed48..f949c580 100644 --- a/proto/injective/oracle/v1beta1/query.proto +++ b/proto/injective/oracle/v1beta1/query.proto @@ -56,6 +56,19 @@ service Query { "/injective/oracle/v1beta1/pyth_price_states"; } + // Retrieves the state for all stork price feeds + rpc StorkPriceStates(QueryStorkPriceStatesRequest) + returns (QueryStorkPriceStatesResponse) { + option (google.api.http).get = + "/injective/oracle/v1beta1/stork_price_states"; + } + + // Retrieves all stork publishers + rpc StorkPublishers(QueryStorkPublishersRequest) + returns (QueryStorkPublishersResponse) { + option (google.api.http).get = "/injective/oracle/v1beta1/stork_publishers"; + } + // Retrieves the state for all provider price feeds rpc ProviderPriceState(QueryProviderPriceStateRequest) returns (QueryProviderPriceStateResponse) { @@ -173,6 +186,24 @@ message QueryPythPriceStatesResponse { repeated PythPriceState price_states = 1; } +// QueryStorkPriceStatesRequest is the request type for the +// Query/StorkPriceStates RPC method. +message QueryStorkPriceStatesRequest {} + +// QueryStorkPriceStatesResponse is the response type for the +// Query/StorkPriceStates RPC method. +message QueryStorkPriceStatesResponse { + repeated StorkPriceState price_states = 1; +} + +// QueryStorkPublishersRequest is the request type for the +// Query/StorkPublishers RPC method. +message QueryStorkPublishersRequest {} + +// QueryStorkPublishersResponse is the response type for the +// Query/StorkPublishers RPC method. +message QueryStorkPublishersResponse { repeated string publishers = 1; } + // QueryProviderPriceStateRequest is the request type for the // Query/ProviderPriceState RPC method. message QueryProviderPriceStateRequest { @@ -226,7 +257,7 @@ message QueryOracleVolatilityRequest { // RPC method. message QueryOracleVolatilityResponse { string volatility = 1 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec" ]; + [ (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec" ]; MetadataStatistics history_metadata = 2; repeated PriceRecord raw_history = 3; } @@ -243,34 +274,43 @@ message QueryOracleProviderPricesResponse { repeated ProviderState providerState = 1; } +// ScalingOptions defines optional configuration to avoid precision loss. The +// oracle result will be returned as base_price * 10^base_decimals / quote_price +// * 10^quote_decimals +message ScalingOptions { + uint32 base_decimals = 1; + uint32 quote_decimals = 2; +} + // QueryOraclePriceRequest is the request type for the Query/OraclePrice RPC // method. message QueryOraclePriceRequest { OracleType oracle_type = 1; string base = 2; string quote = 3; + ScalingOptions scaling_options = 4 [ (gogoproto.nullable) = true ]; } message PricePairState { string pair_price = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string base_price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string quote_price = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string base_cumulative_price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string quote_cumulative_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; diff --git a/proto/injective/oracle/v1beta1/tx.proto b/proto/injective/oracle/v1beta1/tx.proto index 2c5ccebf..bc48f5e6 100644 --- a/proto/injective/oracle/v1beta1/tx.proto +++ b/proto/injective/oracle/v1beta1/tx.proto @@ -5,11 +5,13 @@ import "gogoproto/gogo.proto"; import "injective/oracle/v1beta1/oracle.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/oracle/types"; // Msg defines the oracle Msg service. service Msg { + option (cosmos.msg.v1.service) = true; // RelayProviderPrice defines a method for relaying a price for a // provider-based oracle @@ -33,6 +35,11 @@ service Msg { rpc RelayCoinbaseMessages(MsgRelayCoinbaseMessages) returns (MsgRelayCoinbaseMessagesResponse); + // RelayStorkMessage defines a method for relaying price message from + // Stork API + rpc RelayStorkMessage(MsgRelayStorkPrices) + returns (MsgRelayStorkPricesResponse); + // RelayPythPrices defines a method for relaying rates from the Pyth contract rpc RelayPythPrices(MsgRelayPythPrices) returns (MsgRelayPythPricesResponse); @@ -43,6 +50,7 @@ service Msg { // MsgRelayProviderPrice defines a SDK message for setting a price through the // provider oracle. message MsgRelayProviderPrices { + option (amino.name) = "oracle/MsgRelayProviderPrices"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -51,7 +59,7 @@ message MsgRelayProviderPrices { string provider = 2; repeated string symbols = 3; repeated string prices = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -61,6 +69,7 @@ message MsgRelayProviderPricesResponse {} // MsgRelayPriceFeedPrice defines a SDK message for setting a price through the // pricefeed oracle. message MsgRelayPriceFeedPrice { + option (amino.name) = "oracle/MsgRelayPriceFeedPrice"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -72,7 +81,7 @@ message MsgRelayPriceFeedPrice { // price defines the price of the oracle base and quote repeated string price = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -80,6 +89,7 @@ message MsgRelayPriceFeedPrice { message MsgRelayPriceFeedPriceResponse {} message MsgRelayBandRates { + option (amino.name) = "oracle/MsgRelayBandRates"; option (cosmos.msg.v1.signer) = "relayer"; string relayer = 1; @@ -94,6 +104,7 @@ message MsgRelayBandRatesResponse {} // MsgRelayCoinbaseMessages defines a SDK message for relaying price messages // from Coinbase API. message MsgRelayCoinbaseMessages { + option (amino.name) = "oracle/MsgRelayCoinbaseMessages"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -106,9 +117,23 @@ message MsgRelayCoinbaseMessages { message MsgRelayCoinbaseMessagesResponse {} +// MsgRelayStorkPrices defines a SDK message for relaying price message +// from Stork API. +message MsgRelayStorkPrices { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "sender"; + + string sender = 1; + repeated AssetPair asset_pairs = 2; +} + +message MsgRelayStorkPricesResponse {} + // MsgRequestBandIBCRates defines a SDK message for requesting data from // BandChain using IBC. message MsgRequestBandIBCRates { + option (amino.name) = "oracle/MsgRequestBandIBCRates"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -122,6 +147,7 @@ message MsgRequestBandIBCRatesResponse {} // MsgRelayPythPrices defines a SDK message for updating Pyth prices message MsgRelayPythPrices { + option (amino.name) = "oracle/MsgRelayPythPrices"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos.msg.v1.signer) = "sender"; @@ -134,6 +160,7 @@ message MsgRelayPythPrices { message MsgRelayPythPricesResponse {} message MsgUpdateParams { + option (amino.name) = "oracle/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. diff --git a/proto/injective/peggy/v1/attestation.proto b/proto/injective/peggy/v1/attestation.proto index f059c054..fa6301dc 100644 --- a/proto/injective/peggy/v1/attestation.proto +++ b/proto/injective/peggy/v1/attestation.proto @@ -56,7 +56,7 @@ message Attestation { message ERC20Token { string contract = 1; string amount = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } diff --git a/proto/injective/peggy/v1/events.proto b/proto/injective/peggy/v1/events.proto index 2436735c..8a5f866d 100644 --- a/proto/injective/peggy/v1/events.proto +++ b/proto/injective/peggy/v1/events.proto @@ -40,7 +40,7 @@ message EventValsetUpdateRequest { uint64 valset_height = 2; repeated BridgeValidator valset_members = 3; string reward_amount = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string reward_token = 5; @@ -90,7 +90,7 @@ message EventDepositClaim { string cosmos_receiver = 5; string token_contract = 6; string amount = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string orchestrator_address = 8; @@ -125,7 +125,7 @@ message EventValsetUpdateClaim { uint64 valset_nonce = 4; repeated BridgeValidator valset_members = 5; string reward_amount = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string reward_token = 7; diff --git a/proto/injective/peggy/v1/msgs.proto b/proto/injective/peggy/v1/msgs.proto index f28584cc..2858a1f7 100644 --- a/proto/injective/peggy/v1/msgs.proto +++ b/proto/injective/peggy/v1/msgs.proto @@ -9,10 +9,13 @@ import "injective/peggy/v1/params.proto"; import "google/protobuf/any.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; service Msg { + option (cosmos.msg.v1.service) = true; + rpc ValsetConfirm(MsgValsetConfirm) returns (MsgValsetConfirmResponse) { option (google.api.http).post = "/injective/peggy/v1/valset_confirm"; } @@ -54,6 +57,15 @@ service Msg { } rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); + + // BlacklistEthereumAddresses adds Ethereum addresses to the peggy blacklist. + rpc BlacklistEthereumAddresses(MsgBlacklistEthereumAddresses) + returns (MsgBlacklistEthereumAddressesResponse); + + // RevokeEthereumBlacklist removes Ethereum addresses from the peggy + // blacklist. + rpc RevokeEthereumBlacklist(MsgRevokeEthereumBlacklist) + returns (MsgRevokeEthereumBlacklistResponse); } // MsgSetOrchestratorAddresses @@ -70,6 +82,9 @@ service Msg { // This is a hex encoded 0x Ethereum public key that will be used by this // validator on Ethereum message MsgSetOrchestratorAddresses { + option (amino.name) = "peggy/MsgSetOrchestratorAddresses"; + option (cosmos.msg.v1.signer) = "sender"; + string sender = 1; string orchestrator = 2; string eth_address = 3; @@ -93,6 +108,7 @@ message MsgSetOrchestratorAddressesResponse {} // chain store and submit them to Ethereum to update the validator set // ------------- message MsgValsetConfirm { + option (amino.name) = "peggy/MsgValsetConfirm"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 nonce = 1; @@ -116,6 +132,7 @@ message MsgValsetConfirmResponse {} // actually send this message in the first place. So a successful send has // two layers of fees for the user message MsgSendToEth { + option (amino.name) = "peggy/MsgSendToEth"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -136,6 +153,7 @@ message MsgSendToEthResponse {} // can finally submit the batch // ------------- message MsgRequestBatch { + option (amino.name) = "peggy/MsgRequestBatch"; option (cosmos.msg.v1.signer) = "orchestrator"; string orchestrator = 1; @@ -153,6 +171,7 @@ message MsgRequestBatchResponse {} // as well as an Ethereum signature over this batch by the validator // ------------- message MsgConfirmBatch { + option (amino.name) = "peggy/MsgConfirmBatch"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 nonce = 1; @@ -170,13 +189,14 @@ message MsgConfirmBatchResponse {} // issued to the Cosmos address in question // ------------- message MsgDepositClaim { + option (amino.name) = "peggy/MsgDepositClaim"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 event_nonce = 1; uint64 block_height = 2; string token_contract = 3; string amount = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string ethereum_sender = 5; @@ -190,6 +210,7 @@ message MsgDepositClaimResponse {} // WithdrawClaim claims that a batch of withdrawal // operations on the bridge contract was executed. message MsgWithdrawClaim { + option (amino.name) = "peggy/MsgWithdrawClaim"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 event_nonce = 1; @@ -205,6 +226,7 @@ message MsgWithdrawClaimResponse {} // to learn about an ERC20 that someone deployed // to represent a Cosmos asset message MsgERC20DeployedClaim { + option (amino.name) = "peggy/MsgERC20DeployedClaim"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 event_nonce = 1; @@ -223,6 +245,7 @@ message MsgERC20DeployedClaimResponse {} // to cancel a given MsgSendToEth and recieve a refund // of the tokens message MsgCancelSendToEth { + option (amino.name) = "peggy/MsgCancelSendToEth"; option (cosmos.msg.v1.signer) = "sender"; uint64 transaction_id = 1; @@ -235,6 +258,7 @@ message MsgCancelSendToEthResponse {} // validator has signed a valset, batch, or logic call that never // existed. Subject contains the batch, valset, or logic call. message MsgSubmitBadSignatureEvidence { + option (amino.name) = "peggy/MsgSubmitBadSignatureEvidence"; option (cosmos.msg.v1.signer) = "sender"; google.protobuf.Any subject = 1; @@ -247,6 +271,7 @@ message MsgSubmitBadSignatureEvidenceResponse {} // This informs the Cosmos module that a validator // set has been updated. message MsgValsetUpdatedClaim { + option (amino.name) = "peggy/MsgValsetUpdatedClaim"; option (cosmos.msg.v1.signer) = "orchestrator"; uint64 event_nonce = 1; @@ -254,7 +279,7 @@ message MsgValsetUpdatedClaim { uint64 block_height = 3; repeated BridgeValidator members = 4; string reward_amount = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; string reward_token = 6; @@ -264,6 +289,7 @@ message MsgValsetUpdatedClaim { message MsgValsetUpdatedClaimResponse {} message MsgUpdateParams { + option (amino.name) = "peggy/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. @@ -275,4 +301,36 @@ message MsgUpdateParams { Params params = 2 [ (gogoproto.nullable) = false ]; } -message MsgUpdateParamsResponse {} \ No newline at end of file +message MsgUpdateParamsResponse {} + +// MsgBlacklistEthereumAddresses defines the message used to add Ethereum +// addresses to peggy blacklist. +message MsgBlacklistEthereumAddresses { + option (amino.name) = "peggy/MsgBlacklistEthereumAddresses"; + option (cosmos.msg.v1.signer) = "signer"; + + // signer address + string signer = 1; + // Ethereum addresses to include in the blacklist + repeated string blacklist_addresses = 2; +} + +// MsgBlacklistEthereumAddressesResponse defines the +// MsgBlacklistEthereumAddresses response type. +message MsgBlacklistEthereumAddressesResponse {} + +// MsgRevokeEthereumBlacklist defines the message used to remove Ethereum +// addresses from peggy blacklist. +message MsgRevokeEthereumBlacklist { + option (amino.name) = "peggy/MsgRevokeEthereumBlacklist"; + option (cosmos.msg.v1.signer) = "signer"; + + // signer address + string signer = 1; + // Ethereum addresses to include in the blacklist + repeated string blacklist_addresses = 2; +} + +// MsgRevokeEthereumBlacklistResponse defines the MsgRevokeEthereumBlacklist +// response type. +message MsgRevokeEthereumBlacklistResponse {} diff --git a/proto/injective/peggy/v1/params.proto b/proto/injective/peggy/v1/params.proto index 8e84f61d..43c4b3a8 100644 --- a/proto/injective/peggy/v1/params.proto +++ b/proto/injective/peggy/v1/params.proto @@ -3,6 +3,7 @@ package injective.peggy.v1; import "gogoproto/gogo.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/peggy/types"; @@ -90,6 +91,7 @@ option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/mod // bootstrapping. message Params { + option (amino.name) = "peggy/Params"; option (gogoproto.stringer) = false; string peggy_id = 1; @@ -103,24 +105,24 @@ message Params { uint64 average_block_time = 9; uint64 average_ethereum_block_time = 10; bytes slash_fraction_valset = 11 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes slash_fraction_batch = 12 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes slash_fraction_claim = 13 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes slash_fraction_conflicting_claim = 14 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; uint64 unbond_slashing_valsets_window = 15; bytes slash_fraction_bad_eth_signature = 16 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string cosmos_coin_denom = 17; @@ -129,4 +131,6 @@ message Params { uint64 bridge_contract_start_height = 20; cosmos.base.v1beta1.Coin valset_reward = 21 [ (gogoproto.nullable) = false ]; + + repeated string admins = 22; } diff --git a/proto/injective/peggy/v1/pool.proto b/proto/injective/peggy/v1/pool.proto index 6853ed26..b4152a3f 100644 --- a/proto/injective/peggy/v1/pool.proto +++ b/proto/injective/peggy/v1/pool.proto @@ -11,7 +11,7 @@ message IDSet { repeated uint64 ids = 1; } message BatchFees { string token = 1; string total_fees = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; } \ No newline at end of file diff --git a/proto/injective/peggy/v1/types.proto b/proto/injective/peggy/v1/types.proto index d0593262..5ba5964e 100644 --- a/proto/injective/peggy/v1/types.proto +++ b/proto/injective/peggy/v1/types.proto @@ -17,7 +17,7 @@ message Valset { repeated BridgeValidator members = 2; uint64 height = 3; string reward_amount = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.customtype) = "cosmossdk.io/math.Int", (gogoproto.nullable) = false ]; // the reward token in it's Ethereum hex address representation diff --git a/proto/injective/permissions/v1beta1/events.proto b/proto/injective/permissions/v1beta1/events.proto index 78818bb1..7bec7e4d 100644 --- a/proto/injective/permissions/v1beta1/events.proto +++ b/proto/injective/permissions/v1beta1/events.proto @@ -6,3 +6,8 @@ import "cosmos/base/v1beta1/coin.proto"; import "cosmos/bank/v1beta1/bank.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; + +message EventSetVoucher { + string addr = 1; + cosmos.base.v1beta1.Coin voucher = 2 [ (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 0b054a07..5b731fd6 100644 --- a/proto/injective/permissions/v1beta1/params.proto +++ b/proto/injective/permissions/v1beta1/params.proto @@ -4,8 +4,14 @@ package injective.permissions.v1beta1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; // Params defines the parameters for the permissions module. -message Params {} +message Params { + option (gogoproto.equal) = true; + option (amino.name) = "permissions/Params"; + + uint64 wasm_hook_query_max_gas = 1; +} diff --git a/proto/injective/permissions/v1beta1/permissions.proto b/proto/injective/permissions/v1beta1/permissions.proto index 7d190ed5..0abb5c5c 100644 --- a/proto/injective/permissions/v1beta1/permissions.proto +++ b/proto/injective/permissions/v1beta1/permissions.proto @@ -16,8 +16,14 @@ message Namespace { bool sends_paused = 4; bool burns_paused = 5; - map role_permissions = 6; // permissions for each role - map address_roles = 7; + repeated Role role_permissions = 6; // permissions for each role + + repeated AddressRoles address_roles = 7; +} + +message AddressRoles { + string address = 1; + repeated string roles = 2; } // each Action enum value should be a power of two @@ -30,12 +36,10 @@ enum Action { // Role is only used for storage message Role { - string name = 1; + string role = 1; uint32 permissions = 2; } -message Roles { repeated string roles = 1; } - // used in storage message RoleIDs { repeated uint32 role_ids = 1; } @@ -44,4 +48,9 @@ message Voucher { (gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; +} + +message AddressVoucher { + string address = 1; + Voucher voucher = 2; } \ No newline at end of file diff --git a/proto/injective/permissions/v1beta1/query.proto b/proto/injective/permissions/v1beta1/query.proto index 0322e301..6e4d4b9c 100644 --- a/proto/injective/permissions/v1beta1/query.proto +++ b/proto/injective/permissions/v1beta1/query.proto @@ -3,6 +3,7 @@ package injective.permissions.v1beta1; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "injective/permissions/v1beta1/params.proto"; import "injective/permissions/v1beta1/genesis.proto"; @@ -108,4 +109,10 @@ message QueryAddressRolesResponse { repeated string roles = 1; } message QueryVouchersForAddressRequest { string address = 1; } -message QueryVouchersForAddressResponse { map vouchers = 1; } +message QueryVouchersForAddressResponse { + repeated cosmos.base.v1beta1.Coin vouchers = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.jsontag) = "vouchers,omitempty" + ]; +} diff --git a/proto/injective/permissions/v1beta1/tx.proto b/proto/injective/permissions/v1beta1/tx.proto index 2ea0c509..b5749aa7 100644 --- a/proto/injective/permissions/v1beta1/tx.proto +++ b/proto/injective/permissions/v1beta1/tx.proto @@ -8,11 +8,14 @@ import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "injective/permissions/v1beta1/params.proto"; import "injective/permissions/v1beta1/permissions.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/permissions/types"; // Msg defines the permissions module's gRPC message service. service Msg { + option (cosmos.msg.v1.service) = true; + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); rpc CreateNamespace(MsgCreateNamespace) returns (MsgCreateNamespaceResponse); rpc DeleteNamespace(MsgDeleteNamespace) returns (MsgDeleteNamespaceResponse); @@ -25,6 +28,7 @@ service Msg { } message MsgUpdateParams { + option (amino.name) = "permissions/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. @@ -39,6 +43,7 @@ message MsgUpdateParams { message MsgUpdateParamsResponse {} message MsgCreateNamespace { + option (amino.name) = "permissions/MsgCreateNamespace"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -48,6 +53,7 @@ message MsgCreateNamespace { message MsgCreateNamespaceResponse {} message MsgDeleteNamespace { + option (amino.name) = "permissions/MsgDeleteNamespace"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -57,6 +63,7 @@ message MsgDeleteNamespace { message MsgDeleteNamespaceResponse {} message MsgUpdateNamespace { + option (amino.name) = "permissions/MsgUpdateNamespace"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -80,15 +87,16 @@ message MsgUpdateNamespace { message MsgUpdateNamespaceResponse {} message MsgUpdateNamespaceRoles { + option (amino.name) = "permissions/MsgUpdateNamespaceRoles"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; string namespace_denom = 2; // namespace denom to which this updates are applied - map role_permissions = + repeated Role role_permissions = 3; // new role definitions or updated permissions for existing roles - map address_roles = + repeated AddressRoles address_roles = 4; // new addresses to add or new roles for existing addresses to // overwrite current roles } @@ -96,23 +104,24 @@ message MsgUpdateNamespaceRoles { message MsgUpdateNamespaceRolesResponse {} message MsgRevokeNamespaceRoles { + option (amino.name) = "permissions/MsgRevokeNamespaceRoles"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; string namespace_denom = 2; // namespace denom to which this updates are applied - map address_roles_to_revoke = - 3; // map of {"address" => array of roles to revoke from this address} + repeated AddressRoles address_roles_to_revoke = + 3; // {"address" => array of roles to revoke from this address} } message MsgRevokeNamespaceRolesResponse {} message MsgClaimVoucher { + option (amino.name) = "permissions/MsgClaimVoucher"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; - string originator = 2; // address of the original voucher sender (typically a module address, - // a key from VouchersForAddress query response) + string denom = 2; } message MsgClaimVoucherResponse {} diff --git a/proto/injective/stream/v1beta1/query.proto b/proto/injective/stream/v1beta1/query.proto index d7de75fc..66d168ed 100644 --- a/proto/injective/stream/v1beta1/query.proto +++ b/proto/injective/stream/v1beta1/query.proto @@ -110,19 +110,19 @@ message Position { string subaccount_id = 2; bool isLong = 3; string quantity = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string entry_price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string margin = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string cumulative_funding_entry = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; } @@ -130,7 +130,7 @@ message Position { message OraclePrice { string symbol = 1; string price = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string type = 3; @@ -142,17 +142,17 @@ message SpotTrade { string executionType = 3; string quantity = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string price = 5 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; // bytes32 subaccount ID that executed the trade string subaccount_id = 6; string fee = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; bytes order_hash = 8; @@ -168,11 +168,11 @@ message DerivativeTrade { string subaccount_id = 4; injective.exchange.v1beta1.PositionDelta position_delta = 5; string payout = 6 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string fee = 7 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", (gogoproto.nullable) = false ]; string order_hash = 8; diff --git a/proto/injective/tokenfactory/v1beta1/genesis.proto b/proto/injective/tokenfactory/v1beta1/genesis.proto index 9227ee2d..b8316666 100644 --- a/proto/injective/tokenfactory/v1beta1/genesis.proto +++ b/proto/injective/tokenfactory/v1beta1/genesis.proto @@ -31,4 +31,5 @@ message GenesisDenom { ]; string name = 3 [ (gogoproto.moretags) = "yaml:\"name\"" ]; string symbol = 4 [ (gogoproto.moretags) = "yaml:\"symbol\"" ]; + uint32 decimals = 5 [ (gogoproto.moretags) = "yaml:\"decimals\"" ]; } diff --git a/proto/injective/tokenfactory/v1beta1/params.proto b/proto/injective/tokenfactory/v1beta1/params.proto index 327ce69b..fb936f36 100644 --- a/proto/injective/tokenfactory/v1beta1/params.proto +++ b/proto/injective/tokenfactory/v1beta1/params.proto @@ -5,11 +5,14 @@ import "gogoproto/gogo.proto"; import "injective/tokenfactory/v1beta1/authorityMetadata.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types"; // Params defines the parameters for the tokenfactory module. message Params { + option (amino.name) = "injective/tokenfactory/Params"; + repeated cosmos.base.v1beta1.Coin denom_creation_fee = 1 [ (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.moretags) = "yaml:\"denom_creation_fee\"", diff --git a/proto/injective/tokenfactory/v1beta1/tx.proto b/proto/injective/tokenfactory/v1beta1/tx.proto index eef5a90f..7ece2944 100644 --- a/proto/injective/tokenfactory/v1beta1/tx.proto +++ b/proto/injective/tokenfactory/v1beta1/tx.proto @@ -7,11 +7,14 @@ import "cosmos/bank/v1beta1/bank.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "injective/tokenfactory/v1beta1/params.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/tokenfactory/types"; // Msg defines the tokefactory module's gRPC message service. service Msg { + option (cosmos.msg.v1.service) = true; + rpc CreateDenom(MsgCreateDenom) returns (MsgCreateDenomResponse); rpc Mint(MsgMint) returns (MsgMintResponse); rpc Burn(MsgBurn) returns (MsgBurnResponse); @@ -35,6 +38,7 @@ service Msg { // originally set to be the creator, but this can be changed later. The token // denom does not indicate the current admin. message MsgCreateDenom { + option (amino.name) = "injective/tokenfactory/create-denom"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -42,6 +46,7 @@ message MsgCreateDenom { string subdenom = 2 [ (gogoproto.moretags) = "yaml:\"subdenom\"" ]; string name = 3 [ (gogoproto.moretags) = "yaml:\"name\"" ]; string symbol = 4 [ (gogoproto.moretags) = "yaml:\"symbol\"" ]; + uint32 decimals = 5 [ (gogoproto.moretags) = "yaml:\"decimals\"" ]; } // MsgCreateDenomResponse is the return value of MsgCreateDenom @@ -54,6 +59,7 @@ message MsgCreateDenomResponse { // MsgMint is the sdk.Msg type for allowing an admin account to mint // more of a token. For now, we only support minting to the sender account message MsgMint { + option (amino.name) = "injective/tokenfactory/mint"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -68,6 +74,7 @@ message MsgMintResponse {} // MsgBurn is the sdk.Msg type for allowing an admin account to burn // a token. For now, we only support burning from the sender account. message MsgBurn { + option (amino.name) = "injective/tokenfactory/burn"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -82,6 +89,7 @@ message MsgBurnResponse {} // MsgChangeAdmin is the sdk.Msg type for allowing an admin account to reassign // adminship of a denom to a new account message MsgChangeAdmin { + option (amino.name) = "injective/tokenfactory/change-admin"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -110,6 +118,7 @@ message MsgChangeAdminResponse {} // MsgSetDenomMetadata is the sdk.Msg type for allowing an admin account to set // the denom's bank metadata message MsgSetDenomMetadata { + option (amino.name) = "injective/tokenfactory/set-denom-metadata"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1 [ (gogoproto.moretags) = "yaml:\"sender\"" ]; @@ -124,6 +133,7 @@ message MsgSetDenomMetadata { message MsgSetDenomMetadataResponse {} message MsgUpdateParams { + option (amino.name) = "injective/tokenfactory/update-params"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. diff --git a/proto/injective/types/v1beta1/account.proto b/proto/injective/types/v1beta1/account.proto index 54e6e527..f17a2a13 100644 --- a/proto/injective/types/v1beta1/account.proto +++ b/proto/injective/types/v1beta1/account.proto @@ -14,8 +14,7 @@ message EthAccount { option (gogoproto.goproto_stringer) = false; option (gogoproto.equal) = false; - option (cosmos_proto.implements_interface) = - "github.com/cosmos/cosmos-sdk/x/auth/types.AccountI"; + option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.AccountI"; cosmos.auth.v1beta1.BaseAccount base_account = 1 [ (gogoproto.embed) = true, diff --git a/proto/injective/wasmx/v1/proposal.proto b/proto/injective/wasmx/v1/proposal.proto index 64bbc8f3..3fbe2af4 100644 --- a/proto/injective/wasmx/v1/proposal.proto +++ b/proto/injective/wasmx/v1/proposal.proto @@ -4,10 +4,12 @@ package injective.wasmx.v1; import "cosmos_proto/cosmos.proto"; import "cosmwasm/wasm/v1/proposal_legacy.proto"; import "gogoproto/gogo.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; message ContractRegistrationRequestProposal { + option (amino.name) = "wasmx/ContractRegistrationRequestProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -19,6 +21,7 @@ message ContractRegistrationRequestProposal { } message BatchContractRegistrationRequestProposal { + option (amino.name) = "wasmx/BatchContractRegistrationRequestProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -30,6 +33,7 @@ message BatchContractRegistrationRequestProposal { } message BatchContractDeregistrationProposal { + option (amino.name) = "wasmx/BatchContractDeregistrationProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; @@ -81,6 +85,7 @@ message ContractRegistrationRequest { } message BatchStoreCodeProposal { + option (amino.name) = "wasmx/BatchStoreCodeProposal"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; diff --git a/proto/injective/wasmx/v1/tx.proto b/proto/injective/wasmx/v1/tx.proto index aa18b471..ac19a6f1 100644 --- a/proto/injective/wasmx/v1/tx.proto +++ b/proto/injective/wasmx/v1/tx.proto @@ -7,11 +7,14 @@ import "cosmos_proto/cosmos.proto"; import "cosmos/msg/v1/msg.proto"; import "injective/wasmx/v1/wasmx.proto"; import "injective/wasmx/v1/proposal.proto"; +import "amino/amino.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; // Msg defines the wasmx Msg service. service Msg { + option (cosmos.msg.v1.service) = true; + rpc UpdateRegistryContractParams(MsgUpdateContract) returns (MsgUpdateContractResponse); rpc ActivateRegistryContract(MsgActivateContract) @@ -28,6 +31,7 @@ service Msg { // MsgExecuteContractCompat submits the given message data to a smart contract, // compatible with EIP712 message MsgExecuteContractCompat { + option (amino.name) = "wasmx/MsgExecuteContractCompat"; option (cosmos.msg.v1.signer) = "sender"; // Sender is the that actor that signed the messages @@ -47,6 +51,7 @@ message MsgExecuteContractCompatResponse { } message MsgUpdateContract { + option (amino.name) = "wasmx/MsgUpdateContract"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -63,6 +68,7 @@ message MsgUpdateContract { message MsgUpdateContractResponse {} message MsgActivateContract { + option (amino.name) = "wasmx/MsgActivateContract"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -73,6 +79,7 @@ message MsgActivateContract { message MsgActivateContractResponse {} message MsgDeactivateContract { + option (amino.name) = "wasmx/MsgDeactivateContract"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; @@ -83,6 +90,7 @@ message MsgDeactivateContract { message MsgDeactivateContractResponse {} message MsgUpdateParams { + option (amino.name) = "wasmx/MsgUpdateParams"; option (cosmos.msg.v1.signer) = "authority"; // authority is the address of the governance account. @@ -97,6 +105,7 @@ message MsgUpdateParams { message MsgUpdateParamsResponse {} message MsgRegisterContract { + option (amino.name) = "wasmx/MsgRegisterContract"; option (cosmos.msg.v1.signer) = "sender"; string sender = 1; diff --git a/proto/injective/wasmx/v1/wasmx.proto b/proto/injective/wasmx/v1/wasmx.proto index fb501c9b..4f0436c4 100644 --- a/proto/injective/wasmx/v1/wasmx.proto +++ b/proto/injective/wasmx/v1/wasmx.proto @@ -2,11 +2,14 @@ syntax = "proto3"; package injective.wasmx.v1; import "gogoproto/gogo.proto"; +import "cosmwasm/wasm/v1/types.proto"; +import "amino/amino.proto"; import "injective/wasmx/v1/proposal.proto"; option go_package = "github.com/InjectiveLabs/injective-core/injective-chain/modules/wasmx/types"; message Params { + option (amino.name) = "wasmx/Params"; option (gogoproto.equal) = true; // Set the status to active to indicate that contracts can be executed in @@ -24,6 +27,12 @@ message Params { // min_gas_price defines the minimum gas price the contracts must pay to be // executed in the BeginBlocker. uint64 min_gas_price = 4; + + cosmwasm.wasm.v1.AccessConfig register_contract_access = 5 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.moretags) = "yaml:\"register_contract_access\"" + ]; } message RegisteredContract { diff --git a/typeddata/typed_data.go b/typeddata/typed_data.go index bff47192..f52cefd1 100644 --- a/typeddata/typed_data.go +++ b/typeddata/typed_data.go @@ -105,7 +105,7 @@ var typedDataReferenceTypeRegexp = regexp.MustCompile(`^[A-Z](\w*)(\[\])?$`) // SignTextWithValidator signs the given message which can be further recovered // with the given validator. // hash = keccak256("\x19\x00"${address}${data}). -func SignTextValidator(validatorData ValidatorData) (hexutil.Bytes, string) { +func SignTextValidator(validatorData ValidatorData) (signature hexutil.Bytes, message string) { msg := fmt.Sprintf("\x19\x00%s%s", string(validatorData.Address.Bytes()), string(validatorData.Message)) return crypto.Keccak256([]byte(msg)), msg } @@ -784,19 +784,19 @@ func (domain *TypedDataDomain) Map() map[string]interface{} { dataMap["chainId"] = domain.ChainId } - if len(domain.Name) > 0 { + if domain.Name != "" { dataMap["name"] = domain.Name } - if len(domain.Version) > 0 { + if domain.Version != "" { dataMap["version"] = domain.Version } - if len(domain.VerifyingContract) > 0 { + if domain.VerifyingContract != "" { dataMap["verifyingContract"] = domain.VerifyingContract } - if len(domain.Salt) > 0 { + if domain.Salt != "" { dataMap["salt"] = domain.Salt } return dataMap